Les 5 raisons pour convaincre votre hiérarchie d’investir dans la qualité logicielle
Développeur, tech lead, chef de projets ou manager vous êtes convaincus de l’importance et du bienfait de la qualité logicielle, et plus particulièrement de la qualité du code source. Ayant appris les principes du développement modernes (Agilité, Clean Code, Craftmanship, Continuous Integration, etc.), vous êtes plein d’enthousiasme et voulez améliorer drastiquement l’environnement de développement de votre équipe.
Vous proposez alors plusieurs projets visant à améliorer la qualité du code (ex. revue de code sur pull request, application et configuration de linter, couverture de tests et même mutation de tests, gamification, virtualisation des tests avec Docker, etc.).
Et là… c’est le drame. Votre hiérarchie ne vous suit pas !
Fin de non-recevoir ! Aucun des projets que vous voulez apporter n’est validé. Un double argument massue tombe : « On n’a pas le temps et on n’a pas les moyens ».
Avec un message subliminal : « La qualité du code… ça sert à rien pour notre business ».
Voici 5 arguments qui vous permettront nous l’espérons de convaincre votre hiérarchie, ou à minima de faire en sorte qu’elle s’y intéresse un peu plus.
I – Investir dans la qualité et gagner (vs ne pas investir et perdre)
C’est un fait, la qualité logicielle a un prix mais ce prix est rapidement contrebalancé par un gain substantiel.
A l’inverse ne pas investir dans la qualité logicielle a un coût, beaucoup plus important que le prix à investir, et malheureusement peu d’organismes savent ce que leur coûte la non-qualité.
Plusieurs études montrent que le gain vient essentiellement sur les coûts de maintenance. Plus on investit dans la qualité logicielle moins la maintenance coûtera chère. Les gains les plus importants (83%) arrivent quand 30% de l’effort passe dans la qualité logicielle [Source: Mckinsev.com]
En d’autre termes, si vous passez au moins 1/3 de votre temps à tester et à améliorer la qualité de votre code (refactoring, clean code, etc.), il y a de fortes chances que vous réduisiez le nombre de bug de plus de la moitié.
Faites le calcul, c’est rapidement rentable !
II – Gagner en Productivité (ou voir ses concurrents aller plus vite)
Produire du code, rapidement, et que ça marche. Voici l’objectif numéro 1 de votre hiérarchie.
Pour autant, les développeurs sont plus efficaces quand le code est d’une grande qualité. En effet, rien de pire que de devoir ajouter une fonctionnalité à un code d’une mauvaise qualité ou que de devoir effectuer une évolution sur un code qui n’est pas testé !
R. C. Martin avec son livre sur le Clean Code explique très bien ce point. Il montre qu’un code d’une mauvaise qualité est beaucoup plus complexe à comprendre et de fait plus difficile à faire changer. Quant aux tests, la preuve n’est plus à faire sur leur absolue nécessité.
En moyenne, on peut dire qu’il faut deux fois plus de temps pour modifier un code d’une mauvaise qualité.
Si on veut tenir les délais, il faut alors investir sur la qualité !
III – Moins c’est propre plus c’est sale (la politique du carreau cassé)
Connaissez-vous la politique du carreau cassé ? Si on ne remplace pas une fenêtre brisée d’un immeuble, d’autres fenêtres seront rapidement brisées et la qualité de toute la ville sera bientôt détériorée.
C’est pareil avec le logiciel. Si on néglige la qualité d’un morceau de code, et qu’on ne l’améliore pas rapidement, c’est l’intégralité du logiciel qui sera bientôt d’une piètre qualité.
Les développeurs citent bien souvent la règle du boy scout (il faut rendre le camp plus propre que lorsque nous y sommes entrés) et disent qu’il faut l’appliquer au code source. Pour autant, si votre code source ressemble à woodstock alors aucun développeur ne l’améliorera.
Tout ça pour dire qu’il ne faut jamais attendre pour se préoccuper de la qualité logicielle. Plus vous attendez plus les dégâts seront importants et les coût de réparation importants.
IV – Recruter des développeurs motivés (vs ne pas réussir à recruter)
Cet argument est d’autant plus vrai depuis quelques années. Les développeurs sont devenus une ressource humaine rare. Regardez le nombre de demandes de développeurs que l’on peut voir aujourd’hui. C’est impressionnant.
De fait, devant une telle profusion d’offres, quel développeur voudrait aujourd’hui aller rejoindre une entreprise qui n’investit pas dans la qualité logicielle ? Je vous donne la réponse : aucun !
On peut comparer cela avec le métier de garagiste du siècle dernier. A l’époque il y avait deux types de garages : ceux où les outils trainaient par terre et ou le sol était recouvert d’huile, et ceux qui ressemblaient à des laboratoires de recherche avec le carrelage blanc et les outils parfaitement rangés. Aujourd’hui tous les garages ressemblent à des laboratoires de recherche. Plus aucun garagiste ne voudrait travailler dans un garage du siècle dernier!
De fait, on voit aujourd’hui plusieurs entreprises investir massivement dans la qualité logicielle l’intention d’augmenter son attractivité auprès des développeurs. Celles qui ne le font pas voient leur attractivité diminuer comme peau de chagrin, et vont au-devant de grandes difficultés en recrutement.
V – Ça va devenir obligatoire
C’est aujourd’hui le cas (ou presque) pour la sécurité. Une entreprise est responsable de la sécurité logicielle de son logiciel. Si un pirate réussi à lui voler des informations sur ses clients, c’est maintenant responsable devant la loi, et les indemnités vont être importantes !
Pour la qualité du code, on peut se dire que ça va bientôt devenir obligatoire. On entend déjà des clients se plaindre et réclamer des dédommagements causés par un bug informatique.
Ne pas investir dans la qualité logicielle sera bientôt complètement imprudent.
En résumé
Nous proposons ici 5 arguments qui, nous l’espérons, permettront de convaincre les derniers réticents à investir dans la qualité logicielle. Nous sommes en effet convaincu qu’un tel investissement permet d’obtenir de nombreux avantages !
N’hésitez pas à venir vers nous ou à échanger directement ici si vous voulez avoir plus de précision.
Cet article pourrait également vous intéresser :
https://promyze-tester.preview.strattic.io/blog-ideal-qualite-logicielle/