Ogni sviluppatore è responsabile del codice e dell’applicazione, questo si traduce con il fatto che a ogni sviluppatore è permessa la modifica di qualsiasi parte del codice.
Il Pair programming aiuta l’attuazione di questa pratica, poichè lavorando con diversi pair si ha la possibilità di vedere varie parti di codice, inoltre questa pratica velocizza il processo di sviluppo dell’applicazione, poichè se si verifica un bug, qualsiasi programmatore del team dovrebbe essere in grado di risolverlo.
Consentendo agli sviluppatori di modificare codice non da loro scritto, si potrebbe pensare che si possano introdurre altri bugs, ma in realtà questo non è così, poichè vi sono i tests di unità, ovvero prima e successivamente alla modifica vanno eseguiti e verificati i tests. Collective Ownership incoraggia ogni membro del team a contribuire con ogni nuova idea in ogni parte del progetto. Tutto il team è responsabile per il design del sistema. Quindi se tutto il team è responsabile per il design allora tutto il team è importante.
Questo si realizza sviluppando in TDD, ciascun sviluppatore scriverà test per il codice applicativo e tutto il codice di tutti gli sviluppatori viene rilasciato in un source code repository, anche i tests di unità vengono rilasciati ed eseguiti tutti. Inoltre se un bug viene risolto oppure cambia una funzionalità, il caso di utilizzo deve esserci in un nuovo test automatico. Ovviamente se si trova duplicazione di codice la si deve eliminare, se si trovano nomi non chiari o non identificativi li si devono correggere, se il design è migliorabile, lo si deve migliorare. Inoltre, per essere rilasciata una nuova versione del software, tutti i test automatici devono essere eseguiti con successo.
Questa pratica XP è molto più sicura che chiedere a una sola persona di effettuare una modifica o di risolvere un problema di un codice che ha scritto, questo perchè quella persona lasciare in futuro il team oppure non essere disponibile nel momento in cui si deve effettuare la modifica.
La Collective Code Ownership si realizza con:
-
Comunicazione nel Team
-
Aiutare gli altri
-
Chiedere aiuto
-
L’ utilizzo di un Coding Standard
-
Source code management system (ad esempio GIT o Subversion) che consente di rilevare anche eventuali conflitti di codice
-
Una suite per i test di unità
-
La pratica di Continuos Integration
Alessandro Ceseno
PS: se hai domande scrivimi pure per mezzo della sezione contatti.