Audit de code : quels enjeux pour les DSI ?

Les avantages de l’audit de code
En analysant les bonnes pratiques liées au codage (nombre de commentaires, quantité de doublons, complexité des algorithmes etc.), l’audit de code permet d’évaluer la qualité d’écriture d’une application. Il est ainsi possible d’anticiper et de limiter certaines dérives, notamment sur la gestion des évolutions et de la maintenance d’une application. Un code non audité peut progressivement devenir complexe, sans que ses gestionnaires en soient alertés. L’ajout de nouvelles fonctionnalités demande alors plus d’efforts, au risque de perturber l’ensemble du code. De même, l’identification des causes d’une anomalie devient plus difficile et nécessite l’apport de ressources supplémentaires, engendrant une élévation des coûts de maintenance. Un code mal écrit ralentit également les phases de réversibilité entre les équipes de développement, l’appropriation du code par l’équipe entrante étant beaucoup plus longue.
En donnant de la visibilité sur les parcs applicatifs, l’analyse de code favorise les prises de décisions rapides. Le développement puis la gestion du code d’une application sont souvent externalisés et l’utilisateur n’y a pas accès. Pour les DSI, leurs codes deviennent de véritables « boites noires » sur lesquelles elles n’ont aucune maitrise. Les outils d’audit permettent de générer des rapports offrant une vue synthétique sur la santé des applications qui composent des portefeuilles applicatifs parfois complexes. Les rapports sont composés de graphiques filtrant sur plusieurs types d’indicateurs comme le risque en production ou le risque en adaptabilité. Ces derniers, comparés avec la valeur métier de chaque application, sont une aide importante pour les DSI puisqu’en un coup d’œil, il devient presque facile de savoir sur quelles applications il est nécessaire d’investir ou non.
Les populations concernées par l’audit de code
L’analyse du code s’adresse à deux populations. D’une part aux opérationnels (développeurs, chefs de projets et pilotes d’applications) qui veulent évaluer et suivre l’évolution de la taille et qualité du code de leurs applications. D’autre part, aux décideurs (DSI) qui souhaitent avoir une vision globale et synthétique sur la santé de leur portefeuille applicatif afin de répartir au mieux leur budget.
Pour s’inscrire dans une démarche d’amélioration continue, l’audit de code doit être réalisé dès la première phase projet, puis régulièrement après chaque montée de version. Cette configuration permet aux pilotes d’applications de challenger la MOE : en comparant par exemple le nombre de points de fonctions entre deux montées de version, ils peuvent contrôler si la version livrée par les développeurs est bien réelle et conforme aux attendus.
Pour effectuer un audit, il faut avoir accès au code source de l’application. C’est donc généralement la MOE qui s’en charge, sur la demande de la MOA. Les règles régissant ces audits doivent être claires et partagées par les deux acteurs. Définir les dates et périodicités des audits en amont est particulièrement essentiel. Il faut aussi disposer d’un outil adapté qui peut analyser de multiples types de langages. Le fournisseur de référence dans ce domaine est CAST avec ses solutions CAST AIP qui permet des analyses approfondies et CAST HIGHLIGHT qui propose des analyses plus surfaciques. La plateforme open source SonarQube est également largement répandue sur le marché.

L’audit de code est aujourd’hui un outil incontournable pour les chefs de projets et pilotes d’applications mais aussi pour les décideurs au niveau DSI. Ces derniers peuvent évaluer et limiter la dette technique de leurs applications et visualiser de façon rapide la santé d’un parc applicatif complexe afin de prendre les bonnes décisions.