Ok, gang, la prossima domanda: cosa pensate che siano i migliori processi migliorare la qualità del codice prodotto dal team (aziendale)?
( culto della qualità domanda era buona, ma sto cercando suggerimenti specifici su ciò che possiamo fare.)
Sfondo: la squadra è diversa, nel solito modo:
There's the brilliant coder whose code is impenetrable and undocumented and whose ability to communicate isn't as good, which manifests itself as impatience or excuses of busy-ness.
There's the middle-of-the-road developer who just wants to get his/her work done and go home. New methodologies would be ok, but he/she won't initiate.
There's the person who really doesn't want to change (i.e., is hostile to change, for whatever reason), satisfied with their current level (the old way).
There's the person who really doesn't know what the possibilities are, they're just copying everybody else's code (and that works, too).
There's me, of course, the handsome, charming, brilliant developer who takes the time to write good, clear documentation and unit tests and just wants the best for the group and isn't satisfied with the status quo (technologically) and couldn't possibly be the problem.
Ci sono tutti questi meravigliosi principi là fuori: OOP (altamente programmazione coerente, liberamente accoppiata), funzionale (quello che vedo per lo più qui c'è / senza effetti collaterali o parametri in-out /), strong tipizzazione statica (nessun errore di tipo runtime, metodo non trovato, ecc.), separazione di dubbi (logica aziendale separata dall'interfaccia utente e dal database).
E c'è la vecchia scuola di enormi quantità di codice che fanno più cose cose di ogni sorta intrecciate insieme, e variabili globali e i loro cugini, i singleton e le enormi classi con molti dati membri.
Quindi, come si ottiene dal punto A al punto B? Suggerimenti di base essere ignorato [modifica: beh, per essere più precisi, un singolo sviluppatore che va in giro a dire alle persone che cosa stanno facendo male non è il modo migliore, dal punto di vista di entrambi i manager e dei pari. Non lo faccio perché non voglio essere Cassandra.]
Possiamo fare recensioni abbreviate del codice? Come ... chiama solo quello che sei nuove classi e metodi sono (ignorando le implementazioni). O chiama (in inglese) dove hai aggiunto nuove funzionalità (ad esempio, quale metodo ha fatto aggiorni per fare cosa)?
Che cosa succede se la persona (s) che ha bisogno di rivedere tali cose sono costantemente in incontri (sai come va: nuove funzionalità, partnership, pazzi bug profondi che hanno clienti importanti che urlano [2])? Sarebbe un wiki o una sorta di cosa sociale funziona, per avere più occhi sui nuovi progetti? Come facciamo a coinvolgere coloro che non vogliono essere coinvolti?
Quindi ... processi leggeri, sostenibili ed efficaci? Qualche idea? Che cosa lavora per tutti? (So che le persone diranno la programmazione delle coppie. Ok, garantito, ma non volerà qui.)
Grazie.
[2] Ok, linguaggio overblown. s / urlando / incentrato su particolari bug /