Merci Samuel pour ce très bon article !
La “propriété individuel du code” est évidemment une mauvaise chose, les exemples que tu donnes avec Eric, Sandrine et Thierry sont caractéristiques, parmi plein d’autres du même genre… Et comme tu le pointes à juste titre, les raisons peuvent être multiples, et on pointe trop souvent tel(le) développeur(euse) alors qu’il y a d’autres responsables : les collègues, les managers, le contexte, l’outillage, les pratiques, etc…
Pointer les problèmes et les responsabilités est une bonne chose, promouvoir les solutions comme tu le proposes est encore mieux 😀.
Le pair-programming, même à temps partiel est évidemment très important, non seulement pour produire un meilleur code et une meilleure solution, mais également pour favoriser les échanges, les montées en compétences, promouvoir les bonnes pratiques (comme le TDD 😉) et donc le partage de connaissance du code.
En amont, je pense qu’il est également très intéressant que les réflexions sur les choix techniques, technologiques et architecturaux soient menées par toute l’équipe. On fait ainsi de meilleurs choix, on gagne du temps, on part tout de suite sur une cohésion d’équipe, et là encore, on partage la connaissance et la propriété !
J’ai également expérimenté à plusieurs reprises le “MOB programming”, sorte de pair-programming mais avec toute l’équipe devant 1 seul poste, parfois pendant plusieurs jours consécutifs à temps plein, très intéressant lors du démarrage d’un nouveau développement ou module du projet, ou d’un gros refactoring.
Et enfin, comme je suppose tu le sous-entends (sans en parler explicitement), les revues de code, par exemple au moment des “Pull Requests”. Par exemple, ça peut paraitre radical, mais sur des projets, nous avions bloqué les commits et push sur le master, obligeant à faire des Pull Requests, et sauf exception, la request était mergée par un autre développeur de l’équipe après une revue du code (à différents niveaux selon les cas) et d’éventuels commentaires et ajustements. Et ça marche ! Et la connaissance et la propriété circulent !
Et bien sûr, le plus important, communiquer et expliquer les motivations pour tout cela à l’ensemble de l’équipe 😀.
