Situazione:
C'è un team remoto di 6 sviluppatori in 4 diversi paesi. Usa CI, controllo versione, Slack e ha una chiamata di stato settimanale. Eseguono revisioni del codice su ogni richiesta pull (sempre lo stesso revisore). Tuttavia non ci sono regole formali sull'organizzazione del codice, lo stile e il layout. Alcuni membri del team lavorano part-time, quindi una soluzione giornaliera non è un'opzione.
Il problema:
La conoscenza delle funzionalità sviluppate è 'siled' - ogni sviluppatore è generalmente a conoscenza di una parte isolata del codice base su cui sta lavorando. Le attività sono definite in un tracker dei problemi e il team discute ciò che ogni sviluppatore fa sulla chiamata settimanale. Tuttavia, le caratteristiche sono di natura complessa ed è difficile capire veramente cosa sta succedendo senza guardare il codice. Di conseguenza, il team ha rilevato che alcune funzionalità sono state duplicate 3-4 volte. Poiché diversi sviluppatori hanno stili di codifica diversi (ad esempio la profondità di ereditarietà, la lunghezza della linea e così via), alcune funzionalità sono difficili da mantenere e l'evoluzione della base di codice viene trascinata in direzioni ortogonali.
La domanda:
Quali sono alcune procedure specifiche che questo team può implementare, in modo che ci sia una comprensione condivisa del codice base e dell'architettura?