3 variables impactent la valeur économique d’un projet d’application logicielle.
- Flux de trésorerie entrant et sortant : c’est à dire l’argent qui entre et sort des caisses du projet. Plus il entre d’argent et moins il en sort pour le même résultat, et mieux c’est !
- Taux d’intérêts : l’argent coûte de l’argent, que ce soit du capital, argent immobilisé, ou des taux d’intérêt, argent liquide.
- Durée de vie du projet : plus le projet dure longtemps et plus on maximise le potentiel de revenus. Si tant est que les coûts restent raisonnables…
Valeur = Revenus - Dépenses
En partant d’une définition simple de la valeur créée comme étant la différence entre les produits et les coûts d’exploitation, on peut en déduire que pour maximiser la valeur, on peut chercher à :
- Dépenser moins
Dépenser moins, ça ne veut pas dire rogner sur les salaires et exiger des heures sups non payées. Dépenser moins intelligemment, c’est se concentrer sur ce qui apporte de la valeur et ne pas développer ce qui sert à rien. C’est mettre en oeuvre des techniques de développement qui permettent de garder les coûts d’évolutions raisonnables. C’est mettre en place tout un filet de protection qui permettra d’aller plus vite sans risquer de compromettre la qualité.
Dans cette logique de dépenser moins, il faut y intégrer les deux rythmes d’un projet que sont le développement et la maintenance en opération.
Il faut optimiser les deux ! C’est bien d’avoir un développement frugal, mais si le fait de maintenir l’application en activité est onéreux, cela risque de compromettre le projet. - Gagner plus.
Pour aider à gagner plus, il faut se concentrer sur ce qui apporte vraiment de la valeur aux clients. Il est tellement tentant d’en ajouter pour le principe d’en ajouter. Ok la nouveauté est utile pour garder les clients en haleine, leur montrer que ça bouge et communiquer. Mais je vois trop d’applications qui perdent leur simplicité des premières versions pour devenir des usines à gaz. J’aime particulièrement la manière de faire de basecamp : ils respectent leur utilisateurs en les laissant choisir le moment où ils changent de version du logiciel.
Pour gagner plus il faut aussi reconnaître que c’est le business qui mène la barque. Je sais que cela n’a pas toujours été facile pour moi de l’admettre et pourtant la réalité s’impose vite : on peut avoir la meilleure tech au monde, pas de biz, pas de chocolat. - Différer les dépenses et avancer les revenus.
En priorisant les fonctionnalités qui apportent le plus de valeur et en livrant rapidement les premières versions, on peut réduire au maximum les délais avant de voir entrer du cash sur les comptes.
Différer les dépenses, c’est remettre à plus tard les décisions coûteuses et n’investir que lorsque les idées sont claires sur les tenants et aboutissants.
Pour faire ces deux choses, il faut encore une fois adopter des pratiques techniques qui le permettent. - Augmenter la durée de vie du projet.
C’est avant tout veiller à ce que les évolutions restent possibles. Et quand je dis possible, c’est autant sur le plan technique qu’économique. Si c’est techniquement possible mais que ça coûte trop cher, cela n’aura pas lieu.
C’est aussi veiller à la qualité du code : si tu passes la moitié de ton temps à corriger des bugs, c’est non seulement coûteux, mais en plus cela compromet à terme le projet.
C’est pour ça que j’aime les approches agiles. Car la gestion de projet optimisera d’autant plus la valeur générée que l’avenir est incertain si elle permet de :
- Faire un feedback régulier sur l’avancement des travaux
- D’adapter la feuille de route régulièrement
- Investir progressivement
- Accélérer si besoin
Le moins que l’on puisse dire c’est que notre monde est devenu imprévisible. On est entré dans un ère inconnue face à des défis auxquels l’humanité n’a jamais été confrontée et dans laquelle tout est devenu possible.
L’agilité n’est pas un effet de mode. C’est une réponse à cette complexité.
Mais on oublie trop souvent que l’agilité sans excellence technique est un allé simple pour l’échec.
Quand je parle d’excellence, je ne le définis pas comme un état, mais comme une démarche empreinte d’amélioration continue.
C’est pour cela que j’accorde autant d’importance aux pratiques comme le TDD, le binomage, l’intégration continue ou le refactoring. Elles sont les outils qui me permettent de garder les coûts les plus bas possibles, d’ouvrir au maximum les possibilités de revenus, de différer les investissements onéreux et maximiser la durée de vie des projets.