Come dovrei implementare la revisione del codice in questa situazione?

7

La mia domanda riguarda come mettere in pratica la revisione del codice in un posto di lavoro dove nessuno lo ha mai chiesto, non l'ho mai fatto prima e non sono del tutto sicuro che valga la pena per questo tipo di programmazione.

Sono un appaltatore per un incarico che riguarda principalmente l'ingegneria degli strumenti, l'analisi dei dati, il codice di correzione quando un modello di Excel cambia le interruzioni di una macro, ecc. È la codifica del cowboy totale: le richieste sono più "fai ciò che devi fare per hackerare insieme qualcosa che funziona al più presto, ne abbiamo bisogno in produzione domani mattina e ne avremo solo bisogno per un paio di mesi "che" fare un'applicazione ben strutturata che sarà facile da mantenere e sviluppare in tutte le circostanze prevedibili. "

Il team di ingegneria del software sono io e un altro ragazzo che supervisiono. Al momento non seguiamo alcun tipo di metodologia di sviluppo del software oltre a "fare qualcosa che soddisfi i requisiti funzionali", e nessuno di noi ha mai lavorato in nessun luogo che abbia avuto alcuna revisione del codice o principi di progettazione. Tutto ciò che realizziamo è app desktop VBA o C # e ognuno di noi di solito lavora su un compito separato piuttosto che costruire in modo collaborativo lo stesso programma. Non esiste un sistema di controllo della versione installato e non abbiamo accesso al server per l'installazione di tali sistemi.

Quello che sto cercando di capire è, dato che il lavoro è molto ad hoc, che tipo di revisione del codice, se del caso, dovrei mettere in atto? O è addirittura necessario per il tipo di lavoro che stiamo facendo?

    
posta sigil 24.04.2013 - 19:21
fonte

4 risposte

6

Stai facendo anche il tuo QA? La tua situazione assomiglia molto agli ultimi 3 in cui sono stato, e sospetto che sia molto più comune di quanto sembrerebbe implicare tutta la documentazione sulle migliori pratiche (recensioni di codici, documentazione, SCM, ecc.)

Il mio contributo è che almeno hai l'altro ragazzo! Meglio di essere tutto su di te. Suggerirei a ognuno di voi di fare il QA sul codice degli altri ragazzi e di dargli una rapida lettura per essere sicuro che ognuno di voi possa capire ciò che l'altro ha scritto. Questo ti darà un codice migliore perché l'altro ragazzo che fa il QA potrebbe non fare le stesse supposizioni dell'autore e potrebbe catturare più bug di quanto lo sarebbe l'autore, e dal momento che ognuno potrebbe finire a lavorare sulle cose dell'altro ragazzo, si vuole garantire almeno un livello minimo di leggibilità / manutenibilità. Ho ereditato roba che era ottusa e appena documentata e l'unico modo per capirlo era di passare dolorosamente attraverso il debugger. Il codice leggibile / gestibile non è un lusso, è un investimento.

Sono d'accordo anche con gli altri ragazzi - la programmazione delle coppie potrebbe essere una buona idea e sicuramente ottenere almeno un SCM.

    
risposta data 24.04.2013 - 22:26
fonte
7

La prima cosa è ottenere un SCM di qualche tipo, anche se è semplicemente condiviso tra di voi senza alcuna forma di repo server centrale / dorato.

Quindi direi di installare Redmine e usarlo per tenere traccia delle richieste di modifica che ricevi, perché puoi puntare il redmine al tuo repository git e vedere le modifiche che sono state commesse, ma per far funzionare bene hai bisogno di un golden repo e un server per installare redmine on! Naturalmente, puoi farla franca con il tuo PC per questo compito, ma uno di voi dovrà essere il ragazzo che lo ospita - e quindi essere il ragazzo che "possiede" il repository definitivo. Presumo che questo tizio ti sia come te che ti interessa, e raccomanderei davvero questo approccio. Se hai paura di usare git, o non ti fidi abbastanza di gestirlo bene (dato che all'inizio potrebbe essere complicato e complesso), installa VisualSVN Server e fai in modo che l'altro si impegni a farlo - l'impostazione di SVN è più facile sia dagli strumenti PoV che concettualmente. Puoi sempre passare a git più tardi se ti rendi conto dei vantaggi e puoi forzare i flussi di lavoro richiesti all'altro ragazzo.

Questo ti consentirà di iniziare con le basi degli strumenti SCM, e forse in futuro potrai ottenere un server e fare qualcosa di più organizzato e "ufficiale".

Oh sì ... recensione del codice ... fino a quando non avrai più personale, fai revisioni manuali del codice - guarda il log delle modifiche di Redmine, fai doppio clic e ti mostrerà una bella differenza grafica delle modifiche da rivedere . Non c'è bisogno di uno strumento più formale che ti invi un messaggio di posta elettronica, di un bug ticket o di qualsiasi altra cosa con un link al diff in questo caso.

    
risposta data 24.04.2013 - 19:57
fonte
4

Requests are more "do what you need to do to hack together something that works ASAP, we need it in production tomorrow morning and we're only going to need it for a couple months

In base a questo, l'obiettivo delle revisioni del codice probabilmente non è un codice stabile e gestibile. Tuttavia, puoi comunque trarre profitto dalle recensioni del codice come mezzo per sviluppare ulteriormente le e le capacità di programmazione del tuo collega e per sviluppare una comprensione comune del problema. Come suggerisce @Mike, la programmazione della coppia sui specifici problemi potrebbe rivelarsi un modo molto efficace di utilizzare una sorta di revisione del codice nel tuo scenario. La programmazione delle coppie ti porterà a discutere gli approcci per risolvere un problema e quindi potrebbe aiutarti a "hackerare insieme qualcosa" con meno bug ancora più velocemente, il che è qualcosa che si traduce direttamente in valore aziendale.

    
risposta data 24.04.2013 - 21:28
fonte
0

Sono d'accordo con il suggerimento sulla coppia, tuttavia, se non puoi permettertelo, trovo che le recensioni di codici one-on-one pre-commit siano un buon compromesso in termini di collaborazione. Se non hai un sistema di controllo del codice sorgente e quindi non commetti, bene prima di tutto dovrebbe ottenerne uno (un DVCS nel tuo caso?) :) e nel frattempo tu è possibile eseguire queste revisioni di codici subito prima della versione, ovvero prima di pubblicare l'applicazione di installazione su un server, passare il modello di Excel con la macro aggiornata all'utente, ecc.

Ogni volta che un aggiornamento significativo e complesso di un programma è stato scritto e deve essere pubblicato, l'autore dovrebbe di sua iniziativa richiedere una revisione collaborativa completa di quel codice. Questo richiede tempo, ma ci vuole per diffondere la conoscenza tra tutti i membri del team, stabilire la proprietà collettiva del codice ed eseguire una prima verifica del controllo di qualità interno su ciò che viene prodotto.

    
risposta data 25.04.2013 - 14:24
fonte

Leggi altre domande sui tag