|
Trascrizione
|
| Ciao, sono Aurora Tiffany-Davis, una sviluppatrice di software su |
| Il team di JMP Live e io vorremmo parlarvi oggi di |
| come sviluppiamo software nel team JMP Live. |
| Per prima cosa, vorrei che immaginassi come appare lo sviluppo del software |
| come a te. Se non sei uno sviluppatore e il |
| l'immagine che hai nella tua mente è probabilmente colorata dalla TV e |
| film che hai visto. |
| Potresti immaginare un genio eccentrico che lavora da solo, |
| e il processo per lo sviluppo del software è molto semplice. |
| pensano molto attentamente a un problema. Scrivono del codice |
| e poi si assicurano che funzioni. E probabilmente funziona, |
| perché, dopotutto, sono un |
| genio. Se fossimo tutti dei geni come Hollywood dice che siamo, |
| questo processo potrebbe funzionare per noi, ma in realtà siamo solo umani, |
| e quindi abbiamo bisogno di un po' più di |
| che. 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 |
| il processo varierà da azienda a azienda e spesso anche |
| all'interno delle aziende. Ma quello che farò oggi è guidarvi attraverso |
| cosa farei se stessi sviluppando una nuova funzionalità in |
| JMP in diretta. |
| Prima di tutto, prima di sedermi a scrivere codice, devo |
| avere un bisogno reale di farlo. Ci deve essere una persona reale |
| là fuori chi ha trovato qualcosa in JMP Live che |
| non funziona esattamente come pensano che dovrebbe, ovvero |
| un modo carino per dire che hanno trovato un bug o che hanno un |
| richiesta di una nuova funzionalità. Teniamo traccia di questi problemi in un |
| sistema interno, e quindi la prima cosa che farei è andare a |
| quel sistema e trova un problema di alta priorità che sia una buona |
| corrisponde al mio set di competenze, e inizia a pensarci, e inizia |
| parlandone. La prossima cosa che farei è cercare di capire |
| la necessità parlando con le persone. Che tipo di utenti andranno |
| hanno bisogno di questa funzionalità? Come sono |
| intendi usarlo? Allora eseguirei JMP Live sulla mia macchina, |
| e iniziare a dare un'occhiata a dove potrebbe inserirsi la nuova funzionalità |
| in JMP Live come già |
| esiste oggi. Poi vorrei tirare fuori il codice e iniziare a pensare |
| attraverso il modo in cui il nuovo codice si adatterà alla nostra base di codice. |
| Una volta che penso di aver capito bene la necessità, |
| passerei alla fase di progettazione. E qui di nuovo, il mio primo |
| il passo successivo sarà parlare con le persone. Parlerò con l'utente |
| esperti esperti che abbiamo all'interno di JMP e parlerò con il mio |
| colleghi e chiedi: "Hai lavorato su una funzionalità simile a |
| questo prima? Hai già lavorato su questa parte del codice prima?" |
| Poi inizierò a dare corpo al design. Potrei scrivere articoli |
| e disegnare diagrammi e condividerli in modo che io possa creare |
| assicurarsi che gli altri membri del team siano generalmente |
| a mio agio con la direzione |
| Mi sto trasferendo. Ora mi siederò e comincerò a scrivere qualcosa |
| codice. E per questo userò lo sviluppo integrato |
| ambiente, che è un programma che ha un sacco di |
| funzionalità progettate per aiutarci a svolgere meglio il nostro lavoro. |
| Ora che ho scritto un po' di codice, il mio primo passo è trovare il |
| problemi che ho appena creato. Sono solo un essere umano, quindi le probabilità |
| di aver scritto un codice impeccabile al 100% al primo tentativo sono piuttosto scarse. |
| Il mio primo passo sarà quello di |
| usa 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 puoi dirmi se ho scritto qualcosa di avvincente o meno |
| romanzo, ma può dirmi se ho dimenticato una virgola da qualche parte. |
| L'analisi statica fa lo stesso per il codice. |
| Ora che ho trovato e risolto quei problemi molto evidenti, il mio |
| il passo successivo sarà quello di cercare problemi meno evidenti, |
| e per questo userò una suite di test automatizzata. Abbiamo |
| scritto un'ampia gamma di test sul nostro codice. Automatizzato |
| i test eseguono il codice, o meglio, eseguono un sottoinsieme del |
| codice, fornito un certo input e atteso un certo output. |
| È un esercizio davvero prezioso sedersi e scrivere queste cose |
| test, perché a volte quando mi siedo per scrivere un nuovo test per |
| qualsiasi caratteristica, mi costringe a chiarire davvero il mio pensiero su |
| come dovrebbe funzionare il software in primo luogo. |
| Fornisce inoltre una salvaguardia davvero cruciale contro |
| colleghi che in futuro interromperanno accidentalmente questa funzione. Quindi |
| è 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 |
| Vivi sul mio computer locale o su uno dei vari server che abbiamo |
| in ufficio e curiosare e provare cose e assicurarmi solo |
| che funziona nel modo in cui lo faccio io |
| penso che dovrebbe. Potrei anche guardare nel database che |
| si trova dietro JMP Live e tiene traccia dei record su |
| utenti, post, gruppi, commenti e assicurati che i record siano |
| scritti 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 ai miei pari la loro opinione. Io |
| sottoponiamolo a revisione paritaria. Ora in JMP Live, mettiamo il 100% di |
| il codice che scriviamo attraverso la revisione paritaria e il motivo è |
| che lo troviamo così prezioso. |
| Forse mi è sfuggito qualcosa perché ho semplicemente... |
| avere i paraocchi su qualcosa. O potrebbe essere il |
| caso in cui qualcun altro nel mio team abbia semplicemente conoscenza che io |
| mancanza. Capita spesso che in una recensione il recensore anche |
| ottiene molto valore dall'esercizio perché potrebbe |
| conoscere alcune nuove tecniche. |
| Ora che il team è abbastanza ottimista sul fatto che abbiamo creato |
| un po' di buon codice, alla fine commetterò il mio codice o lo controllerò |
| un repository di codice sorgente. |
| Abbiamo un sistema di build continuo che ci controlla |
| commettere il codice, e quando lo facciamo, |
| lo analizza. Cerca cose davvero basilari come, sono i file |
| nominato nel modo giusto e nel posto giusto? Verrà anche ripetuto |
| analisi statica e rieseguirà l'intero test automatizzato |
| suite. Lo fa nel caso in cui qualcuno abbia dimenticato di farlo |
| prima nel processo. O più spesso, potrebbe essere il caso che |
| qualcosa di piccolo e sottile è cambiato dall'ultima volta che l' |
| è stata eseguita una suite di test automatizzata. |
| Quindi esegue tutte queste analisi e quando le esegue |
| questo passaggio, il codice è ora disponibile per le persone esterne |
| il team di sviluppo per prendere una |
| guardalo. Le prime persone che se ne accorgono sono i tester |
| esperti che abbiamo all'interno di JMP Live e all'interno del team JMP |
| più in generale. Questi sono professionisti dei test. È quello che fanno |
| per tutta la loro carriera, e sono davvero bravi a farlo. |
| Potrebbero rieseguire la suite di test automatizzata. Potrebbero aggiungere altri 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 folli. Qual è il |
| cosa più pazza che l'utente possa 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 assicurarci che il nostro |
| il software è flessibile e robusto. |
| Una volta che hanno approvato questa nuova funzionalità, è ora |
| disponibile nella prossima versione del nostro software. |
| Ora vorrei allargare la visuale e mostrarvi il processo nel suo complesso. |
| Sono un sacco di passaggi. Facciamo davvero tutto questo per tutti? |
| delle modifiche del nostro software? Che ci crediate o no, lo facciamo. Tuttavia, questo |
| il processo è molto scalabile, a seconda della complessità di |
| il lavoro. Se abbiamo un bug ovvio e semplice, faremo un passo avanti |
| attraverso questo processo, ma lo faremo molto velocemente. |
| D'altra parte, se abbiamo una nuova funzionalità molto complessa, a |
| ad ogni passo del processo rallenteremo. |
| Ci prenderemo il nostro tempo e faremo molta attenzione per assicurarci che |
| ci riusciamo. |
| Ora, tutto ciò che richiede tempo costa denaro, quindi perché è così? |
| JMP è disposta a investire questi soldi nella qualità del software? |
| Una ragione è davvero semplice. Siamo orgogliosi del nostro lavoro e |
| vogliono produrre un buon prodotto. |
| La ragione successiva è un po' meno idealistica. Sappiamo che |
| qualunque problema esista nel nostro |
| processo, e nel nostro prodotto, se non li troviamo, il nostro |
| i clienti lo faranno e questo non è un granché per gli affari. Quindi noi |
| vorrei minimizzarlo. |
| Ora nessun processo può fornire |
| perfezione assoluta. E quindi vi invitiamo davvero a rimanere parte |
| della comunità JMP. Vai su community.jump.com e facci sapere |
| sapere se c'è qualcosa su JMP Live se non funziona |
| nel modo in cui pensi che dovrebbe essere, o qualsiasi cosa nuova che ti piacerebbe |
| da vedere in futuro. |
| Questo tipo di feedback dal mondo reale è immensamente prezioso per noi e |
| ne siamo davvero lieti. |
| Questo è tutto quello che ho per voi oggi, ma spero davvero che |
| ti godi il resto della tua esperienza Discovery. Grazie |
| Voi. |