Trascrizione
|
| Ciao sono Aurora Tiffany-Davis, uno sviluppatore di software sul |
| Il team JMP Live e vorrei parlarti oggi di |
| come sviluppiamo il software nel team JMP Live. |
| Per prima cosa, vorrei che tu immaginassi che aspetto ha lo sviluppo del software |
| come te. Se non sei uno sviluppatore tu stesso e il |
| l'immagine che hai in mente è probabilmente colorata dalla TV e |
| film che hai visto. |
| Potresti immaginare un genio stravagante che lavora da solo, |
| e il processo per lo sviluppo del software è molto semplice. Essi |
| pensa davvero a un problema. Scrivono del codice |
| e poi si assicurano che funzioni. E probabilmente lo fa, |
| perché, in fondo, sono a |
| genio. Se fossimo tutti geni come Hollywood dice che lo siamo, |
| questo processo potrebbe funzionare per noi, ma in realtà siamo solo umani, |
| e quindi abbiamo bisogno di un po' più di |
| Quello. Prima di tutto, non lavoriamo da soli. Lavoriamo molto |
| in modo collaborativo e abbiamo un processo che ci aiuta a farlo |
| produrre software di qualità. Preciso qui che non c'è |
| un processo corretto per lo sviluppo del software. Tuo |
| il processo sarà diverso tra le aziende e spesso anche |
| all'interno delle aziende. Ma quello che farò oggi è guidarti attraverso |
| cosa farei se dovessi sviluppare una nuova funzionalità in |
| JMP in diretta. |
| Prima di tutto, prima di sedermi a scrivere codice, devo farlo |
| hanno una reale necessità di farlo. Ci deve essere una persona reale |
| là fuori chi ha trovato qualcosa in JMP Live che |
| non funziona proprio nel modo in cui pensano che dovrebbe funzionare, il che è |
| un bel modo per dire che hanno trovato un bug o hanno un |
| richiesta di una nuova funzionalità. Teniamo traccia di questi problemi in un |
| sistema interno, e quindi la prima cosa che farei è andare |
| quel sistema e trovare un problema ad alta priorità che è positivo |
| corrisponde al mio set di abilità, inizia a pensarci e inizia |
| parlandone. La prossima cosa che farei è cercare di capire |
| il bisogno parlando con le persone. Che tipo di utenti stanno andando |
| hai bisogno di questa funzione? Come stanno |
| lo userai? Quindi eseguirei JMP Live sulla mia macchina, |
| e inizia a dare un'occhiata a dove potrebbe adattarsi la nuova funzionalità |
| in JMP Live come già |
| esiste oggi. Quindi vorrei aprire il codice e iniziare a pensare |
| attraverso come il nuovo codice si inserirà nella nostra base di codice. |
| Una volta che penso di avere una buona comprensione del bisogno, io |
| passerebbe alla fase di progettazione. E di nuovo qui, il mio primo |
| il passo sarà parlare con le persone. Parlerò con l'utente |
| esperti di esperienza che abbiamo all'interno di JMP e parlerò con il mio |
| colleghi e chiedi: "Hai lavorato su una funzione simile a |
| questo prima? Hai già lavorato in questa parte del codice?" |
| Quindi inizierò a dare corpo al design. Potrei scrivere articoli |
| e disegna diagrammi e condividili in modo che io possa creare |
| sicuro che gli altri membri della squadra lo siano generalmente |
| a proprio agio con la direzione |
| Mi sto trasferendo. Adesso mi siedo e comincio a scriverne un po' |
| codice. E per questo userò lo sviluppo integrato |
| ambiente, che è un programma che ha molto |
| caratteristiche progettate per aiutarci a fare meglio il nostro lavoro. |
| Ora che ho scritto del codice, il mio primo passo è trovare il file |
| problemi che ho appena creato. Sono solo umano, quindi le possibilità |
| che ho scritto un codice impeccabile al 100% al primo tentativo sono piuttosto scarsi. |
| Il mio primo passo sarà quello di |
| utilizzare l'analisi statica. L'analisi statica non esegue il codice, |
| sembra come se fosse scritto su un pezzo di |
| carta. Un'analogia potrebbe essere il controllo ortografico in Microsoft Word. Controllo ortografico |
| non può dirmi se ho scritto o meno un avvincente |
| romanzo, ma può dirmi se ho perso una virgola da qualche parte. |
| L'analisi statica lo fa per il codice. |
| Ora che ho trovato e risolto quei problemi molto evidenti, il mio |
| il prossimo passo sarà cercare problemi meno evidenti, |
| e per questo userò una suite di test automatizzata. abbiamo |
| scritto una vasta gamma di test contro il nostro codice. Automatizzato |
| test esegue il codice, o meglio esegue un sottoinsieme di |
| codice, ha fornito un determinato input e si aspetta un determinato output. |
| Sedersi e scrivere questi è un esercizio davvero prezioso |
| test, perché a volte quando mi siedo per scrivere un nuovo test |
| qualsiasi caratteristica, mi costringe a chiarire davvero il mio pensiero |
| come dovrebbe funzionare il software in primo luogo. |
| Fornisce anche una protezione davvero cruciale contro |
| colleghi interromperanno accidentalmente questa funzione in futuro. Così |
| è un ottimo modo per trovare |
| problemi in anticipo. Una volta che ho scritto ed eseguito questi automatizzati |
| test, passerò ad alcuni test manuali. Potrei eseguire JMP |
| Dal vivo sulla mia macchina locale o su uno dei numerosi server che abbiamo |
| in ufficio e curiosare e provare cose e assicurati |
| che funziona nel modo in cui io |
| pensa che dovrebbe. Potrei anche guardare nel database che |
| si trova dietro JMP Live e tiene traccia dei record |
| utenti, post, gruppi, commenti e assicurati che i record lo siano |
| scritte nel modo in cui mi aspetto che siano. |
| Ora sono cautamente ottimista di aver scritto qualcosa di buono |
| codice e ho creato un utile |
| caratteristica. Il passo successivo è chiedere la loro opinione ai miei colleghi. Malato |
| sottoponilo alla revisione tra pari. Ora in JMP Live, mettiamo il 100% di |
| il codice che scriviamo attraverso la revisione tra pari e il motivo è |
| che lo troviamo così prezioso. |
| Potrebbe esserci qualcosa che mi è sfuggito perché in qualche modo |
| avere i paraocchi su qualcosa. O potrebbe essere il |
| caso in cui qualcun altro nella mia squadra sia semplicemente a conoscenza che io |
| la mancanza. In una recensione capita spesso che anche il recensore |
| ottiene molto valore dall'esercizio perché potrebbero |
| conoscere alcune nuove tecniche. |
| Ora che la squadra è piuttosto ottimista che abbiamo creato |
| un buon codice, finalmente commetterò il mio codice o lo controllerò |
| un repository di codice sorgente. |
| Abbiamo un sistema di build continuo che ci controlla |
| codice di commit e, quando lo facciamo, lo facciamo |
| lo analizza. Cerca cose davvero basilari come i file |
| chiamato nel modo giusto e nel posto giusto? Verrà anche eseguito nuovamente |
| analisi statica ed eseguirà nuovamente il nostro intero test automatizzato |
| suite. Lo fa nel caso qualcuno si sia dimenticato di farlo |
| all'inizio del processo. O più spesso, potrebbe essere così |
| qualcosa di piccolo e sottile è cambiato dall'ultima volta |
| è stata eseguita la suite di test automatizzata. |
| Quindi fa tutte queste analisi e quando ce la fa |
| questo passaggio, il codice è ora disponibile per le persone esterne a |
| il team di sviluppo per prendere a |
| guardarlo. Le prime persone che se ne accorgono sono i test |
| esperti di cui disponiamo all'interno di JMP Live e del team JMP |
| più in generale. Questi sono professionisti del test. È quello che fanno |
| per tutta la loro carriera, e sono davvero bravi a farlo. |
| Potrebbero rieseguire la suite di test automatizzata. Potrebbero aggiungere più test |
| alle nostre suite. Potrebbero eseguire JMP Live manualmente e curiosare |
| in genere. Potrebbero eseguire JMP Live localmente e fingere di farlo |
| cose come utenti che sarebbero assolutamente pazzi. Qual è il |
| cosa più pazza che l'utente può fare? E vediamo come il software |
| risponde ad esso. Sono davvero creativi con questi test |
| scenari. Potrebbero anche eseguire il software su vari |
| diversi browser e sistemi operativi per assicurarsi che il nostro |
| il software è flessibile e robusto. |
| Una volta che hanno firmato questa nuova funzionalità, è ora |
| disponibile per essere ritirato nella nostra prossima versione del software. |
| Permettimi di rimpicciolire ora e mostrarti il processo nel suo insieme. |
| Sono molti i passaggi. Facciamo davvero tutto questo per tutti |
| delle nostre modifiche al software? Che ci crediate o no, lo facciamo. Tuttavia, questo |
| il processo scala molto, a seconda della complessità di |
| il lavoro. Se abbiamo un bug ovvio davvero semplice, faremo un passo |
| attraverso questo processo, ma lo faremo dannatamente rapidamente. |
| D'altra parte, se abbiamo una nuova funzionalità molto complessa, a |
| in ogni fase del processo, rallenteremo. |
| Ci prenderemo il nostro tempo e ci prendiamo molta cura per assicurarci che |
| abbiamo capito bene. |
| Ora, tutto ciò che richiede tempo costa denaro, quindi perché è così |
| JMP è disposta a investire questi soldi nella qualità del software? |
| Un motivo è davvero semplice. Siamo orgogliosi del nostro lavoro e di noi |
| vogliono produrre un buon prodotto. |
| Il motivo successivo è piuttosto meno idealistico. Lo sappiamo |
| qualunque problema esista nel nostro |
| processo, e nel nostro prodotto, se non li troviamo, il nostro |
| i clienti lo faranno e questo non è ottimo per gli affari. Quindi noi |
| vorrei minimizzarlo. |
| Ora nessun processo può fornire |
| perfezione assoluta. E quindi ti invitiamo davvero a farne parte |
| della comunità JMP. Vai su community.jump.com e lasciaci |
| sapere se c'è qualcosa su JMP Live se non funziona il |
| nel modo in cui pensi che dovrebbe, o qualsiasi cosa di nuovo che vorresti |
| da vedere in futuro. |
| Questo tipo di feedback nel mondo reale è immensamente prezioso per noi e |
| lo accogliamo davvero con favore. |
| Questo è tutto ciò che ho per te oggi, ma lo spero davvero |
| ti godi il resto della tua esperienza Discovery. Ringraziare |
| voi. |