Sono uno sviluppatore relativamente nuovo in una piccola azienda (un team di 3 sviluppatori e un ramo QA altrettanto piccolo) che lavora su un sistema di medie dimensioni. L'iterazione corrente è ancora sotto 100k linee di codice (server e client combinati), ma potrei immaginare che, a lungo termine, la dimensione totale potrebbe essere di 200 kLOC o più. Stiamo tentando di utilizzare Scrum per lo sviluppo e stiamo lavorando per una valutazione di livello 2 CMMI.
Stiamo adottando metodi di revisione tra pari per verificare la nostra progettazione del software e il codice sorgente. Sollecitiamo i requisiti software durante la riunione di pianificazione sprint e documentiamo i requisiti software in un SRS principale. Questo ci dà anche un inizio nella progettazione del software, ma non abbiamo un metodo formale per rivedere i concetti di progettazione, come la progettazione OO, la progettazione dell'interfaccia utente, i modelli di progettazione riutilizzabili e altro ancora. Per il nostro codice sorgente, stiamo provando nuove tecniche, come l'utilizzo di fogli di calcolo per documentare recensioni e recensioni pass-around via e-mail, ma può essere difficile per il revisore comprendere i concetti di design semplicemente guardando il codice sorgente.
(Per favore scusami se sto travisando concetti, stiamo provando molto da zero.
Non siamo contrari all'utilizzo di UML per esprimere classi, oggetti, interfacce software, modelli di eventi o altri concetti di progettazione, ma non siamo sicuri di quando o come rivedere i nostri sforzi di progettazione. Spesso, uno sviluppatore può completare il 70% con una storia utente e realizzare che un elemento di progettazione fondamentale deve essere modificato (e, successivamente, sottoposto a peer review).
Nel tentativo di evitare discussioni aperte sull'argomento e promuovere risposte concise, proverò a proporre due domande specifiche:
- Qualcuno sa di buone risorse (libri, articoli, articoli) sulle migliori pratiche di peer review dei concetti di design?
- Ho letto che il codice stesso è la (implementazione del) design. La revisione tra pari del codice sorgente può essere utilizzata come revisione tra pari del design?
Grazie.