Travailler avec l'existant - Calendrier de l'avent 13 décembre 2018

Travailler avec l'existant - Calendrier de l'avent 13 décembre 2018

L’existant, dans un projet informatique, c’est la vie quotidienne de tout développeur. Il est plutôt rare quand l’on travaille sur un projet qui vient de démarrer, qui n’a pas d’historique. Souvent on se retrouve à travailler sur un projet qui existe depuis des années, voire des décennies. Le code a été touché et retouché par plusieurs développeurs, tous avec des compétences et des motivations différentes. Alors, comment faire pour aborder un tel problème ?

Heureusement que ce problème n’est pas nouveau et que l’on réfléchit depuis fort longtemps sur ce problématique.

Il existe plusieurs niveaux d’existant. Il y a déjà le code, mais il y a aussi l’équipe, sans oublier la culture. Commençons par le code.

Dorodangos Le code existant peut se résumer souvent à une belle ‘dorodango’. Là, vous vous demandez, c’est quoi une dorodango ?!? C’est une boule de boue soigneusement poli jusqu’à ce qu’elle brille comme une perle. C’est un forme d’art japonais. Le rapport est que bien souvent, le code existant est documenté, archivé et il y a souvent quelqu’un prêt à nous expliquer la suite logique de son passé. Néanmoins, il reste indigeste, impossible à modifier sans tout casser, et surtout sans tests.

Comment aborder un tel ‘dorodango’ ? Il y existe déjà plein de bons conseils. Il est possible de commencer par mettre des tests autour de la boule. Des tests de style boite noire : les entrées et des sorties toutes bêtes. Après, on peut commencer à refactoriser le code, afin de le rendre plus testable.

L’équipe existante est une toute autre histoire. D’abord, elle est constituée de personnes. Certaines ont peut-être contribué à la création, certains sont juste des contributeurs au hasard, mais personne n’est responsable, ou, du moins, ne veut reconnaître sa responsabilité. Et ce n’est pas grave, parce qu’on ne veut pas chercher les responsable, on veut améliorer la situation. On peut commencer par créer une ambiance de confiance, faire comprendre à tout le monde qu’on ne cherche pas la coupable, on souhaite juste rendre la situation meilleure, plus vivable.

5 dysfunctions of a team Alors, comment soigner une équipe existante ? On peut commencer par la pyramide de dysfonctionnement d’une équipe, pour mieux cerner la situation et nous donner des pistes. Est-ce que l’équipiers se font confiance ? Est-ce qu’ils se mettent d’accord sur la façon de travailler ? Est-ce qu’il y a une cohésion d’équipe et un alignement vers l’objectif. Commençons avec une rétrospective.

Finalement, l’entreprise existante est souvent la cause racine de nos deux problèmes précédents. Si la culture de l’entreprise n’est pas propice à l’agilité, il est fort probable que tous les problèmes viennent de son dysfonctionnement. Un problème majeur dans une entreprise informatique est lié à sa façon de voir le travail de l’informaticien. Car le vrai travail de l’informaticien est un travail créatif intellectuel. Cependant, souvent les entreprises sont organisées sur le modèle d’une usine. Hélas, l’usine ne fonctionne guère bien pour créer de nouvelles choses (innover) mais pour fabriquer ce qui est déjà défini.

Le vrai travail pour améliorer une entreprise existante est d’introduire du changement et de le faire adhérer par la direction. Heureusement notre historique de succès nous soutient dans la proposition de changement.

Pour en savoir plus sur le sujet, voici un video d’une présentation que j’ai fait sur le sujet il y a quelques années. Et n’oubliez pas les 16 C’s…