Objectif : un code propre et maintenable !
Un audit de code source est une analyse poussée des coulisses d'une application, afin de déterminer si la manière dont elle est développée respecte les standards et les bonnes pratiques.
L’objectif : avoir une vue globale de l’application sur ses points forts et axes d’amélioration, afin d'en extraire un plan correctif à mettre en œuvre et un plan progrès pour l'optimiser !
Chez AXOPEN, nous combinons deux approches complémentaires, automatisées et manuelles, afin de réaliser vos audits.
De multiples bugs détectés et une perte de confiance sur la qualité de l’application, c’est souvent l’origine d’une mission d’audit de code source...
Faire un état des lieux de l’application, évaluer la qualité du code
Identifier la cause des problèmes de performances
Avoir des recommandations d’optimisation
Valider la maintenabilité, la robustesse & l’évolutivité de l'application
Améliorer la durée de vie de l’application
Le but principal de l'audit de code est donc de répondre à la question suivante : est-ce que mon application est bien développée ?
Oui, mais pas seulement !
Est-ce que l'application est maintenable ?
Les performances pourraient-elles constituer un problème ?
La scalabilité de l'application pourra-t-elle se faire simplement ?
Quid des montées de version ?
La documentation est-elle suffisante ?
Dois-je investir dans cette application pour la faire évoluer ?
En tant qu’équipe de développeurs passionnés, nous pouvons intervenir sur de nombreuses technologies, langages de développement ou frameworks, côté web comme mobile.
Méthodologie
Analyser du code source, ça ne s'improvise pas ! Cet exercice peut s'avérer complexe et assez difficile à mettre en place pour avoir des résultats objectifs.
Chez AXOPEN, nous avons développé notre propre protocole d'audit, qui consiste à mixer 2 méthodes complémentaires : l'audit "manuel" avec de vrais humains, et l'audit "automatisé" qui repose sur des outils d'analyse.
Méthode #1
De nombreux outils permettent d'analyser le code source des applications.
Spécifiques à chaque langage de programmation, ces outils d'analyse révèlent des métriques en se basant sur des règles de style d'écriture de code ou de complexité.
L'avantage principal de ce type de solution est qu'elle fournit un ensemble d'indicateurs chiffrés simple à analyser.
Certains de ces outils peuvent même fournir une analyse de bugs prédictive (type findbugs).
C’est un bon début, mais attention, ça ne suffit pas !
Bien que ces solutions aient clairement des avantages en pouvant notamment être intégrées très facilement dans des plateformes d'intégration continue, elles s'avèrent être incomplètes et passent souvent à côté de l'essentiel.
Aucun de ces outils ne vous dira les yeux dans les yeux "oui, votre application vaut le coup d'être conservée".
Méthode #2
Chez AXOPEN, nous sommes plus que convaincus que la valeur d'un audit de code source est apportée par l'humain.
Bien que l'audit manuel (l'audit humain) et l'audit automatisé puissent être complémentaires, c'est l'humain qui apporte le plus de valeur dans l'analyse.
L'audit de code source à la main, comment ça se passe ?
À notre sens, la solution la plus efficace est d'analyser une fonctionnalité, ou un ensemble de fonctionnalités, en traversant l'intégralité de la chaîne applicative ; en partant des écrans jusqu'à la base de données.
L'objectif de cette démarche est de passer en revue chaque couche applicative. Pour avoir une couverture complète, il est nécessaire de faire appel à un expert, sur chaque technologie concernée.
Il nous semble également essentiel d'écouter et de conserver le ressenti des personnes qui auditent le code comme une réelle valeur ajoutée. Car oui, ouvrir un code source n'est évident pour personne...
Alors la première impression est d'autant plus importante puisqu'elle permet par exemple d'apprécier le niveau de difficulté pour une équipe de maintenance d'intégrer un nouveau développeur sur le projet.
Les points d'attention
Nos experts techniques s’attachent à regarder en priorité les points suivants :
La clarté du code source
L'organisation du projet
Les technologies utilisées (sont-elles viables?)
Les best practices des langages
Cette liste n'est bien sûr pas exhaustive et doit être adaptée à chaque audit au regard de ses objectifs, mais s'apparente comme le reflet du travail que seul un humain est en mesure de réaliser.
Chez AXOPEN, nous sommes des artisans du code et de la beauté de celui-ci.
N'oubliez pas que si un ordinateur était capable d'attester de la qualité d'un code source, c'est qu'il serait en mesure de l'écrire ! Entre nous, ça n'est pas prêt d'arriver :)
Notre démarche
Un audit cadré et rapide avec des étapes clairement définies
Un rapport d’audit complet et une soutenance pour échanger de vive voix
Un outil d’aide à la décision transparent
Nos convictions
Une application est réussie si les utilisateurs s’en servent
La qualité du code prime
Les performances doivent être surveillées
Un oeil extérieur permet d’avancer plus vite
Réaliser un audit est une très bonne manière de répondre aux questions qui se posent concernant la qualité de son application.
Bien qu'efficace, il est souvent plus intéressant de mettre en place une démarche préventive de qualité de code, avec des audits plus légers mais plus réguliers. Un audit avant la mise en production d'une application est aussi un plus non négligeable.
L'audit doit aussi se concentrer sur les points positifs du code source de l'application.
Il doit mettre en lumière les forces et les faiblesses et ne doit en aucun cas chercher des coupables et des personnes à blâmer. Évidemment, une application est toujours la résultante de nombreuses années de développement, de contraintes projets, de changements d'équipes... Il faut donc garder tout cela en tête afin de ne pas faire un audit "à charge".
L'idée principale est toujours de dégager des axes d'analyse et de fournir des clés à la prise de décision pour le responsable de l'application.
Chaque fois qu'un point positif ou négatif est détecté, il est rapporté dans le rapport de l'audit de code sous forme de tableau.
On utilise également un radar qualitatif, qui permet, en un coup d’œil, de se rendre compte des forces et des faiblesses d’une application, et de voir rapidement les points d’amélioration.
Notre méthode
#1
Identification de la problématique et du périmètre de l’audit
#2
Premières analyses
#3
Point mi-parcours : Premiers retours & échanges avec votre équipe
#4
Poursuite des analyses
#5
Restitution orale
#6
Restitution écrite : rapport d’audit
En route vers l'avenir
Il est important d'avoir une vision la plus complète possible et objective des choses. En effet, c'est un vrai état des lieux que nous cherchons à réaliser.
Une fois l'analyse du code source effectué, il est primordial de travailler à une matrice d'actions valorisées.
Cette projection permet aux décideurs d'avoir des éléments visuels clairs pour se positionner sur l'avenir de l'application et son code source.
Puis, une matrice priorité/bénéfice VS coût/investissement est une manière efficace de présenter les choses. L'audit doit fournir les clés d'une remise à niveau du code source.
Pour chacun des points analysés, le coût de l'investissement est important car il permet de mesurer l'effort d'un retour à l'état de l'art.