Trascrizione
|
| Ciao sono Aurora Tiffany-Davis, una sviluppatrice di software su |
| Il team di JMP Live e di cui vorrei parlarvi oggi |
| come sviluppiamo il software nel team di JMP Live. |
| Innanzitutto, vorrei che immaginaste come appare lo sviluppo del software |
| piace a te. Se non sei uno sviluppatore tu stesso e il file |
| l'immagine che hai in mente è probabilmente colorata da 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 molto a un problema. Scrivono del codice |
| e poi si assicurano che funzioni. E probabilmente lo fa |
| perché, dopo tutto, sono a |
| genio. Se fossimo tutti dei 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 'di più |
| quello. Prima di tutto, non lavoriamo da soli. Lavoriamo molto |
| in modo collaborativo e abbiamo un processo che ci aiuta a |
| produrre software di qualità. Faccio notare qui che non c'è |
| un processo corretto per lo sviluppo del software. Il tuo |
| processo sarà diverso tra le aziende e spesso anche |
| all'interno delle aziende. Ma quello che farò oggi è guidarti |
| cosa farei se sviluppassi una nuova funzionalità in |
| JMP Live. |
| Prima di tutto, prima che mi sieda a scrivere codice, devo farlo |
| hanno qualche effettiva necessità di farlo. Deve esserci una persona reale |
| là fuori chi ha trovato qualcosa in JMP Live che |
| non funziona proprio nel modo in cui pensano che dovrebbe, ovvero |
| un bel modo per dire che hanno trovato un bug o che hanno un file |
| richiesta di una nuova funzionalità. Teniamo traccia di questi problemi in un file |
| sistema interno, quindi la prima cosa che vorrei fare è andare a |
| quel sistema e trova un problema ad alta priorità che sia positivo |
| corrispondere alle mie capacità, iniziare a pensarci e iniziare |
| parlarne. La prossima cosa che farei è cercare di capire |
| la necessità parlando con le persone. Che tipo di utenti andranno |
| hai bisogno di questa funzione? Come stanno |
| lo userai? Quindi eseguivo 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 avrei tirato fuori il codice e avrei iniziato a pensare |
| attraverso come il nuovo codice si adatterà alla 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 a una funzione simile a |
| questo prima? Hai già lavorato in questa parte del codice? " |
| Quindi inizierò a rimpolpare il design. Potrei scrivere articoli |
| e disegna diagrammi e condividili in modo che io possa fare |
| sicuro che gli altri membri della squadra lo siano generalmente |
| a mio 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 molti file |
| funzionalità 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 mio primo tentativo sono piuttosto sottili. |
| Il mio primo passo sarà quello di |
| utilizzare l'analisi statica. L'analisi statica non esegue il codice, |
| lo guarda 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 file |
| il prossimo passo sarà cercare problemi meno evidenti, |
| e per questo userò una suite di test automatizzata. Abbiamo |
| ha scritto un'ampia gamma di test rispetto al nostro codice. Automatizzato |
| i test eseguono il codice, o meglio esegue un sottoinsieme di |
| codice, ha fornito un determinato input e si aspettava un determinato output. |
| È un esercizio davvero prezioso sedersi e scriverli |
| test, perché a volte quando mi siedo per scrivere un nuovo test per |
| 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 che interrompono accidentalmente questa funzione in futuro. Così |
| è un ottimo modo per trovare |
| problemi in anticipo. Una volta che ho scritto ed eseguito questi file automatizzati |
| test, passerò ad alcuni test manuali. Potrei eseguire JMP |
| Vivi sulla mia macchina locale o su uno dei tanti server che abbiamo |
| in ufficio e curiosare e provare cose e assicurarsi |
| che funziona nel modo in cui io |
| penso che dovrebbe. Potrei persino esaminare il database |
| si trova dietro JMP Live e tiene traccia dei record |
| utenti, post, gruppi, commenti e assicurati che i record siano |
| scritto nel modo in cui mi aspetto che siano. |
| Ora sono cautamente ottimista sul fatto di aver scritto qualcosa di buono |
| codice e ho creato un utile file |
| caratteristica. Il passo successivo è chiedere ai miei colleghi la loro opinione. Malato |
| sottoporlo a revisione tra pari. Ora in JMP Live, mettiamo il 100% di |
| il codice che scriviamo tramite peer review e il motivo è |
| che lo troviamo così prezioso. |
| Potrebbe esserci qualcosa che mi sono perso perché è solo una specie di |
| hanno i paraocchi su qualcosa. Oppure potrebbe essere il file |
| caso in cui qualcun altro della mia squadra sappia semplicemente che io |
| mancanza. Spesso accade in una recensione che anche il revisore |
| ottiene molto valore dall'esercizio perché potrebbe |
| conoscere alcune nuove tecniche. |
| Ora che la squadra è abbastanza ottimista che abbiamo creato |
| un buon codice, finalmente eseguirò il commit del mio codice o lo controllerò |
| un repository di codice sorgente. |
| Abbiamo un sistema di costruzione continuo che ci guarda |
| eseguire il commit del codice e, quando lo facciamo, esso |
| lo analizza. Cerca cose davvero di base come, sono i file |
| chiamato nel modo giusto e nel posto giusto? Inoltre verrà rieseguito |
| analisi statica e rieseguirà il nostro intero test automatizzato |
| suite. Lo fa nel caso in cui 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 che il file |
| è stata eseguita la suite di test automatizzata. |
| Quindi fa tutte queste analisi e quando le riesce |
| questo passaggio, il codice è ora disponibile per le persone al di fuori di |
| il team di sviluppo per prendere un file |
| guardarlo. Le prime persone che se ne accorgono sono i test |
| esperti che abbiamo in JMP Live e nel team di JMP |
| più in generale. Questi sono professionisti dei test. È quello che fanno |
| per tutta la loro carriera e sono davvero bravi. |
| Potrebbero rieseguire la suite di test automatizzata. Potrebbero aggiungere altri test |
| alle nostre suite. Potrebbero eseguire manualmente JMP Live e curiosare |
| in genere. Potrebbero eseguire JMP Live localmente e fingere di farlo |
| cose come utenti che sarebbero assolutamente folli. Qual è il file |
| cosa più pazza che l'utente possa fare? E vediamo come funziona il software |
| risponde ad esso. Sono davvero creativi con questi test |
| scenari. Potrebbero anche eseguire il software su vari file |
| browser e sistemi operativi diversi per assicurarsi che il nostro |
| il software è flessibile e robusto. |
| Una volta che hanno firmato questa nuova funzione, è ora |
| disponibile per essere ritirato nella nostra prossima versione del software. |
| Lascia che esegua lo zoom indietro e ti mostri il processo nel suo insieme. |
| Sono molti passaggi. Facciamo davvero tutto questo per tutti |
| delle nostre modifiche al software? Che tu ci creda 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 abbastanza rapidamente. |
| D'altra parte, se abbiamo una nuova funzionalità molto complessa, in |
| ogni fase del processo rallenteremo. |
| Ci prenderemo il nostro tempo e faremo molta attenzione per assicurarci che ciò avvenga |
| lo facciamo bene. |
| Ora, tutto ciò che richiede tempo costa denaro, quindi perché è così |
| JMP è disposto a investire questi soldi nella qualità del software? |
| Uno dei motivi è davvero semplice. Siamo orgogliosi del nostro lavoro e di noi |
| vuoi produrre un buon prodotto. |
| Il motivo successivo è un po '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 è eccezionale per il business. Quindi noi |
| vorrei minimizzarlo. |
| Ora nessun processo può fornire risultati |
| perfezione assoluta. E quindi ti invitiamo davvero a rimanere una parte |
| della comunità JMP. Vai su community.jump.com e lasciaci |
| sapere se c'è qualcosa su JMP Live se non funziona il file |
| nel modo in cui pensi che dovrebbe, o qualcosa di nuovo che vorresti |
| da vedere in futuro. |
| Questo tipo di feedback dal mondo reale è immensamente prezioso per noi e |
| lo accogliamo davvero. |
| Questo è tutto quello che ho per te oggi, ma lo spero davvero |
| ti godi il resto della tua esperienza con Discovery. grazie |
| voi. |