Catalyst: recentemente il mio team è stato incaricato di portare a casa un grande progetto software su cui è stato lavorato per oltre 20 anni. Alcuni dei vecchi team di sviluppo sono ancora in circolazione, e in origine il piano era di farci da mentori e portarci a pieno regime. Dopo un'indagine rapida, è stato determinato che questo progetto soffre di quanto segue:
- Nessun framework di test. Tutto viene testato manualmente a livello di integrazione e spedito al cliente per verificare le modifiche.
- Nessuna documentazione di progettazione aggiornata.
- Materiale didattico limitato. Il codice fa un sacco di cose non standard (un sacco di uso di file di configurazione che definiscono il comportamento aziendale, l'uso di più file di configurazione per la GUI [attributi della GUI possono essere impostati nel file A.extenion_x o B.extension_y, ma non reale chiaro perché]]
Quello che sto cercando di fare è un elenco di cose che i nostri sviluppatori possono fare mentre lavorano per insegnare agli altri membri del team o ai futuri membri del team. Fondamentalmente voglio solo che loro documentino il loro apprendimento e quindi archivino quelle informazioni.
Fortunatamente il progetto ha sfruttato il software di tracciabilità dei problemi, quindi ogni bugfix o modifica delle funzionalità può essere associata a un identificativo univoco. Possiamo quindi archiviare il materiale didattico e legarlo insieme allo stesso id. Un esempio di detto materiale didattico, sarebbe una rapida descrizione del cambiamento, un piano di test e altre informazioni applicabili al cambiamento.
Al di fuori del ricorso al test delle unità (questo è l'obiettivo, ma non sarà possibile completarlo a breve termine), quali sono altri modi in cui possiamo generare documentazione di apprendimento come parte del nostro processo di sviluppo.