Sur quelle courbe êtes-vous ?
Tous les projets informatiques se trouvent sur une courbe, avec en abscisse, la complexité du projet, et en ordonnée, la quantité de travail nécessaire pour continuer à le faire avancer.
Plus un projet avancera, plus il sera complexe.
Plus il sera complexe et plus la quantité de travail nécessaire pour continuer à le faire avancer augmentera.
Il arrivera inévitablement un moment où la complexité d'un projet sera telle que n'importe quel changement demandera une quantité de travail exorbitante.
Et quand les changements sont couteux, le projet devient rigide, empêtré dans ses choix passés, avec un champ des possibles qui se réduit.
Pour amener un projet loin avec peu de ressources, se trouver sur une courbe qui croît le plus lentement possible est fondamental.
Le faire demande un effort initial important et une vision de long terme, or trop souvent, nous préférons la facilité et le court-termisme.
La vitesse de cette croissance dépend de nombreux facteurs comme :
- le nombre de fonctionnalités
- la quantité, la qualité et la cohérence du code
- les méthodes de gestion de projet et de management
- la structure de communication entre les parties prenantes
- l'adéquation entre les langages de programmation utilisés et l'équipe
- la taille de l'équipe et sa densité de compétence
- le niveau de couplage et d'enchevêtrement du système
- l'architecture du projet
Imprégniez vous de quelques principes de conception, vous vous mettrez dans de bonnes conditions.
Malheureusement, il existe des situations où nous n'avons pas la capacité d'agir pour sauver un projet qui s'effondre sous son propre poids, sans sortir du cadre et renverser la table.
Aux échecs, on appelle ça le zugzwang. Quand le seul coup valable pour s'en sortir serait de ne pas jouer.