Les projets informatiques… De la création d’un site vitrine au développement d’un logiciel complexe, leur conduite est rarement simple !
Une analogie courante, qui a influencé l’adoption des méthodes séquentielles (cycle en V, Waterfall) en gestion de projets informatiques, est celle de la construction d’un bâtiment. Généralement, quand on débute un projet informatique, l’équipe va souhaiter mettre en place de bonnes fondations, quelque chose de solide :
- « Il faut absolument implémenter ce nouvel ORM sinon notre stack sera rapidement obsolète »
- « Nous devons mettre en place Kubernetes, au cas où 100 000 utilisateurs s’inscrivent la première semaine »
- « Il faut systématiquement mettre en place des tests unitaires sinon l’application sera instable ! »
Certes. Questionnons ces affirmations :
- « Avons nous suffisamment de recul sur cette technologie et quelle valeur apporte-t-elle ? »
- « Le produit est en phase de lancement, notre objectif est d’atteindre 1000 utilisateurs d’ici 3 mois »
- « Les tests sont pertinents pour des algorithmes critiques mais connaissez vous le concept de dette technique ? »
L’idée générale « tout doit être parfait » pousse les équipes à passer beaucoup de temps sur des éléments qui ne permettent pas de découvrir la valeur de ce qu’ils développent pour les utilisateurs. Pire encore, une équipe peut passer des mois à bâtir des services, APIs et éléments techniques sans avoir le moindre retour concret. Protégée par un argumentaire essentiellement technique, elle repousse le début du développement des fonctionnalités clefs au motif de construire de superbes fondations, quitte à passer à côté du besoin des utilisateurs.
IT/BTP, et si c’était une mauvaise analogie ?
Faire pousser une application, mode d’emploi
En développement logiciel, la notion de croissance me semble plus appropriée que celle de construction. Un applicatif est un organisme complexe en interaction avec son environnement, c’est un organisme vivant. Même à un stade préliminaire, un organisme vivant comme une plante est complet à tout instant, de la première feuille à la première racine.
Avec cette analogie, l’équipe ne va donc pas construire fondations puis étages, elle va favoriser la croissance d’un organisme complet à chaque instant. Elle livre graduellement de nouvelles fonctionnalités. Elle fait grandir le logiciel par l’intérieur en le maintenant opérationnel. Peu à peu, le feuillage s’étoffe, les branches se multiplient, le tronc s’épaissit et les racines s’enfoncent plus profondément. La petite pouce (comprenez MVP) deviendra peut être un arbre majestueux qui aura était façonné par son environnement. Si il y a la bonne terre, suffisamment d’eau et de soleil, il s’épanouira dans son environnement et vous donnera ses fruits.
Je m’égare un peu, revenons au développement logiciel !
En approche agile, la création de valeur doit commencer au premier jour. Bien sûr, un certain nombre de tâches techniques sont obligatoires au démarrage du projet. La création d’un environnement de développement, la mise en place d’un déploiement automatique… mais ces tâches doivent avant tout faciliter la mise à disposition de l’application aux parties prenantes du projet. Elles ne doivent pas viser la mise en œuvre de la stack « parfaite » car cette idée est paralysante.
Dès la fin du premier sprint, l’équipe doit livrer des premiers éléments qui permettent d’obtenir du feedback des parties prenantes et utilisateurs. Un premier truc qui marche, même un tout petit formulaire ou une première page seront plus utiles pour recueillir le besoin utilisateur que la mise en place d’un nouveau SGBD très performant (et non maîtrisé) pour 1000 lignes de données dans votre base.
L’analogie avec la botanique permet de conserver cette idée : votre projet, votre logiciel, doivent rester vivants ! Une version alpha ou bêta doit être complète dans le périmètre fonctionnel donné. En adoptant cette approche, vous favoriserez le recueil du feedback tant essentiel à la création d’applications utiles et utilisées !
Cet article est inspiré des précieux enseignements de la chaîne Youtube Scrum Life. Merci à Jean-Pierre et Constantin pour l’énergie et les nombreux éclairages qu’ils apportent à la communauté agile francophone !