Qualité du code - le revers de la médaille

30
metrixware © Copyright Metrixware, 2009. Tous droits réservés. TMA Qualité du code : Le revers de la médaille ? Livre blanc Juin 2009

description

L’externalisation des activités de maintenance applicative séduit une large majorité de directions informatiques, en leur permettant de recentrer les investissements au profit d'autres projets. Mais quels sont les engagements pris sur la qualité du livrable lui-même, à savoir le code ? Quels sont les risques financiers de ne pas contrôler le niveau de maintenabilité, d’évolutivité ou de conformité d’une application ? Les réponses à ces questions sont examinées dans ce livre blanc qui analyse les risque d'absnece de contrôle et fait le point sur les bonnes pratiques.

Transcript of Qualité du code - le revers de la médaille

Page 1: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

1

Livre Blanc

TMA

Qualité du code : Le revers de la médaille ?

Livre blancJuin 2009

Page 2: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

2

Livre Blanc

’externalisation des activités de maintenance applicative a déjà séduit une large majorité de directions informatiques, en leur permettant de recentrer investissements et ressources au profit des nouveaux projets, source de valeur

pour l’entreprise. Flexibilité, réactivité et maîtrise des coûts sont autant d’arguments avancés par les acteurs d’un marché de plus en plus compétitif.

Mais quels sont les engagements pris sur la qualité du livrable lui-même, à savoir le code ? Quels sont les risques techniques de ne pas contrôler – et suivre dans le temps – le niveau de maintenabilité et d’évolutivité d’une application ? Quel serait l’impact financier de 4 millions de lignes de code rendues non conformes à la nouvelle architecture SOA de votre système d’information ?

Des questions essentielles pourtant trop souvent, encore aujourd'hui, laissées en suspens, et finalement sans réponse. Spécialiste de la qualimétrie et de la gouvernance des systèmes d'information depuis sa création en 1995, Metrixware décrypte dans le présent livre blanc le marché de la TMA et son évolution, analyse les risques de l'absence de contrôle qualimétrique des applications et fait le point sur les bonnes pratiques à engager entre les entreprises et leurs prestataires de tierce maintenance applicative.

Remerciements

Metrixware tient à remercier tout particulièrement Messieurs Rémy BERTHOU (Directeur du Système d’Information Voyageurs de la SNCF) et Georges MONTOYA (Directeur Outsourcing de Logica) pour leur disponibilité et aimable participation à ce livre blanc.

L

Page 3: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

3

Livre Blanc

La TMA : une solution adaptée aux besoins des DSI ................................................. 4

Encore très jeune, le marché de la TMA connaît une croissance spectaculaire de près de 10% par an. Pourquoi un tel engouement des DSI pour la TMA ? A quels enjeux des entreprises la TMA répond-elle ?

Les risques liés à la qualité du code ......................................................... 14

Évolution rapide des métiers, apparition de nouvelles technologies... Le système d'information se doit aujourd'hui d'être très agile. En quoi la qualité du code, à l'origine comme en cours de maintenance, peut-elle influer sur l'utilité fonctionnelle, les coûts de possession et la durée de vie des applications ?

Les bonnes pratiques du contrôle qualité des Tierces Maintenances Applicatives ................................................... 20

La mise en place d’un contrôle régulier à chaque phase majeure du projet améliore la gestion du risque qualité et pérennise l’application sous-traitée. Quels outils mettre en œuvre ? A quelle phase du projet ? Quels enjeux dans la relation client / fournisseur ?

Les entretiens – 3 questions à…

Georges MONTOYA, Directeur Outsourcing de Logica…......................................11 Rémy BERTHOU, DSI de SNCF Voyageurs………………….....…………………...23

Page 4: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

4

La TMA : une solution adaptée aux besoins des DSI

Apparue au début des années 1980, la Tierce Maintenance Applicative est aujourd’hui un des moteurs du marché français des services informatiques. Avec une croissance annuelle soutenue, supérieure à 10% depuis ces dernières années et qui devrait se maintenir à près de 8% dans les prochaines années selon IDC, ce marché porteur, animé par de grands acteurs de l’intégration comme de petites SSII spécialisées, attire désormais aussi bien les grands comptes que les PME-PMI. Tous voient dans la TMA une solution pour gagner en productivité, prévoir et moduler les coûts de personnel, en s’assurant contractuellement de la qualité et de la performance du service offert.

Un marché porté par la gouvernance IT

La gouvernance IT consiste à aligner l’ensemble de l’informatique d’entreprise (investissements, moyens humains, actifs technologiques, organisation) sur la stratégie et les objectifs de croissance, de rentabilité, de compétitivité ou encore d'agilité, fixés par la Direction Générale.

A ce titre, la Direction Informatique – souvent perçue par l’entreprise comme un poste coûteux (3 à 10% du CA selon les secteurs d’activités) – se doit d'optimiser sa valeur ajoutée dans l'entreprise, tout en stabilisant, voire en réduisant, les coûts qui lui sont associés. Pour cela, elle dispose de trois principaux leviers : technique, organisationnel et économique.

Investir au profit de la création de valeur

« C'est au système d'information de s'adapter aux besoins des directions métiers et non l'inverse ». Trop longtemps ignorée, volontairement ou non, cette affirmation prend, depuis quelques années, tout son sens. Les DSI ont aujourd'hui pris conscience de la nécessité de concentrer leurs investissements vers la modernisation de leurs actifs

Page 5: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

5

informatiques afin de garantir un système d'information performant, réactif et tourné vers les demandes métiers.

Dans certains secteurs, nombreuses sont les évolutions voire les révolutions de l'environnement, qu'elles soient structurelles ou conjoncturelles, qui ont mis ce besoin en lumière. C'est le cas notamment du secteur des mutuelles et assurances avec une modification sensible de la relation client depuis plusieurs années, de la banque de détail dont la plupart des services est désormais accessible sur Internet ou bien encore du secteur financier qui a subi une profonde concentration au fil de fusions/acquisitions successives.

Sur le plan technologique, ces mouvements ne sont pas sans conséquence. Outil aujourd'hui indispensable aux activités métiers, le système d'information doit savoir évoluer et s'adapter, le plus rapidement et le plus économiquement possible, aux nouveaux impératifs du marché. Une impulsion qui se traduit par de simples évolutions ou par d'importants chantiers de migrations d'applications, (Procédural vers Objet, Cobol vers Java pour plus de modularité), de migrations de données vers un ERP ou encore de mise en place d’une architecture SOA, etc.

Dans tous les cas, il s'agit de fonder des systèmes d'information agiles et fluides dans leur capacité d'adaptation aux mouvements, de plus en plus rapides et fréquents, des métiers.

Fiabiliser et pérenniser l’activité informatique

Après plusieurs décennies d'euphorie, les activités informatiques murissent et gagnent en stabilité. Fini le temps des budgets illimités, des projets qui n'aboutissent jamais et des applications « short term », l'heure est aujourd'hui à la raison et à la réflexion à long terme. Pourtant, la prise de conscience est encore toute récente : selon une étude du cabinet Loudhouse réalisée en 2007, un projet informatique sur trois dépasserait son budget de 10 à 20%, tandis qu'un sur quatre l'augmenterait allègrement de 50%, à moins d'être purement et simplement abandonné. La même étude révèle d'ailleurs que 39% des responsables informatiques ne possèderaient pas une vue d'ensemble suffisante de leurs projets et moins de la moitié (42%) ne sont pas tenus informés dans la journée des éventuels problèmes rencontrés sur les projets.

C'est la raison pour laquelle de nombreuses DSI mettent en place et appliquent désormais, à l’aide de cellules Qualité & Méthodes transverses, des référentiels de bonnes pratiques et des processus. L'objectif étant simple : assurer une amélioration continue de l’activité

Page 6: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

6

informatique afin d'endiguer les gouffres financiers et limiter la déperdition d’énergie des équipes informatiques, qu'elles soient internes ou externes.

L’industrialisation des développements (centres de services internes), les référentiels CobIT ou ITIL, l’application du modèle CMMi ou bien encore la généralisation des indicateurs clés de performance sont autant d'exemples de bonnes pratiques qui permettent d’assurer la bonne conduite, le succès et surtout la pérennité des projets informatiques.

Rationaliser et maîtriser les coûts opérationnels

Au-delà d'un simple respect des budgets, les directions informatiques doivent désormais composer, au même titre que les autres directions opérationnelles, avec des budgets plus serrés, et parfois même réduits d'une année sur l'autre. A ce titre, l'efficience, soit en d'autres termes la recherche du meilleur rapport entre la pertinence du service rendu et le coût qui lui est lié, n'est plus un vain mot. La bonne gouvernance du système d'information en général, et de l’informatique en particulier, entend ainsi une meilleure visibilité sur les dépenses liées à son fonctionnement.

C'est ainsi que le recours à la sous-traitance de toute ou partie de l’activité de maintenance du système d’information est apparu et s'est accéléré ces dernière années. La raison en est simple : chez un sous-traitant, l'activité de maintenance, dont c'est le cœur de métier, est totalement industrialisée et engendre d'importantes économies d'échelle, bénéficiant forcément au client. Sans compter une souplesse de fonctionnement appréciable en cas de variations de l'activité.

Une mise en perspective très adaptée à la maintenance applicative, qui représente 50 à 80% du budget Études selon les secteurs. Pour expliquer un tel état de fait, il suffit d'apprécier le caractère de plus en plus complexe et fortement hétérogène du parc applicatif des entreprises. Au fil des années et des évolutions, les applications ne sont plus aussi modulaires qu’à leur conception. Les corrections effectuées ne sont bien souvent pas documentées, ou peu dans le meilleur des cas.

On parle alors « software entropy » ou « vieillissement prématuré du logiciel », en raison de la difficulté croissante des équipes internes à comprendre, à corriger et à faire évoluer l'application concernée. Un phénomène renforcé ces dernières années par un taux de

Page 7: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

7

turn-over en incessante augmentation et le départ en retraite de certains profils hautement spécialisés et qualifiés, comme c'est par exemple le cas des cobolistes.

Les points à retenir

Pour une gouvernance cohérente et efficace de leur patrimoine applicatif, les DSI disposent de trois principaux leviers : la création de valeur, la maîtrise des coûts opérationnels et la fiabilisation de l’informatique. Des axes de travail très adaptés au mode de sous-traitance de la maintenance applicative :

La TMA permet de libérer des moyens humains importants, jusqu’alors mobilisés essentiellement sur la maintenance, au profit de projets alignés sur la stratégie et porteurs de valeur pour l’entreprise ;

Elle permet également d’accéder à une solution industrielle éprouvée, reposant sur une parfaite maîtrise par le sous-traitant de la maintenance logicielle (normes, processus, référentiels, etc.) ;

Enfin, la TMA permet à moyen terme de diminuer les coûts de maintenance applicative, sans pour autant limiter l’activité de correction ou d’évolution des logiciels.

Page 8: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

8

Une concurrence au profit des clients

Répondant parfaitement aux problématiques actuelles des directions informatiques, la tierce maintenance applicative est un marché encore jeune. Son potentiel de revenus est donc colossal : selon les estimations du cabinet Pierre Audoin Consultants, il aurait pesé 1 603 millions d'euros en 2006 et devrait dépasser les 2 milliards d'euros en 2010.

Naturellement, de nombreux acteurs se bousculent sur un marché aussi prometteur, comptant bien s'octroyer la plus importante part du gâteau. Parmi ces soupirants, on peut distinguer deux catégories d'entreprise :

les « mastodontes » du service IT. Ayant capitalisé sur le développement (et donc la maintenance) de leurs propres applications, ces « anciens » y voient une perspective de développement complémentaire à leur métier d’infogérance globale et d’intégration d’infrastructures. Outre une avance commerciale certaine sur leurs concurrents (ils sont déjà implantés chez les clients), leur capacité à absorber des TMA conséquentes est l'un de leurs meilleurs atouts.

Les petites SSII. Sur le marché de la TMA, elles fondent leur stratégie sur leur capacité à se spécialiser par secteur d’activité ou par technologie. Elles proposent ainsi des TMA plus pointues et en parfaite adéquation avec les besoins de leur clients en raison de leur expertise de leur métier ou des technologies qu'ils utilisent.

Très porteur, ce marché n'en est donc pas moins extrêmement concurrentiel. Pour séduire une clientèle informée et exigeante, les entreprises se sont adaptées en proposant une offre flexible ou tout autre élément différenciateur.

La souplesse de l’offre

C'est le cœur, pour ne pas dire la raison d'être, de la TMA. Et l'argument numéro un des acteurs du marché, surtout comparativement à la prise en charge en interne (par les équipes du client) de la maintenance applicative. Flexible et souple, l'offre des acteurs TMA s'adapte ainsi aux variations de périmètre et d'’intensité des activités de maintenance (notamment corrective, évolutive) sur un parc applicatif d’une année sur l’autre. Une souplesse qui permet au client de moduler sa TMA au gré de ses besoins en disposant de

Page 9: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

9

ressources additionnelles en cas de pic de charge ou d'une réduction des effectifs à sa disposition en période creuse.

Concrètement, les contrats de TMA intègrent une partie forfaitaire (support aux utilisateurs des applications, corrections, et enveloppe cadrée d’évolutions), et une partie modulable en cours de contrat. Le caractère variable de la durée de la prestation démocratisant par ailleurs la TMA auprès des PME-PMI.

Se différencier par l’engagement sur le niveau de service (SLA - PAQ)

Signe de maturité du marché de la TMA, les prestataires incluent désormais à leurs offres un engagement quant au niveau de service à atteindre. En contractualisant ces objectifs d’activité, et en les formalisant dans un Plan d’Assurance Qualité, le client s’assure que la disponibilité et la réactivité des équipes TMA seront au moins – et dans la plupart des cas supérieures – équivalentes à celles de ses ressources internes. Cette démarche, suivie tout au long de la prestation, réduit également le risque de non réversibilité, c'est-à-dire la perte de connaissance et de compétences du client si la maintenance revenait à sa charge.

Par ailleurs, le pilotage des prestations inclue systématiquement des mesures de performance (temps de traitement d’une anomalie ou d’une demande de support, nombre de corrections et d’évolutions traitées, coûts de la production, etc.) permettant aux deux parties de fixer des objectifs atteignables, et ainsi améliorer la qualité de service de manière continue.

Les points à retenir

La forte concurrence du marché de la tierce maintenance applicative profite largement aux directions informatiques :

Une prestation souple et adaptable aux besoins du client ;

Un engagement fort sur les résultats à atteindre, permettant de justifier à court terme l’investissement ;

Une amélioration incrémentale du niveau de service.

Page 10: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

10

Le paradoxe de la TMA

Ayant connu un développement très rapide, le marché de la TMA dispense aujourd'hui une offre déjà très mâture : engagements de résultats, pilotage du contrat sur des indicateurs d’activités, mise en place de plan de progrès et d’amélioration continue pour anticiper sur l’évolution du SI, etc.

Les directions informatiques sont pour l’heure satisfaites de cette solution. Et pour cause, elle leur permet de libérer des ressources internes coûteuses et peu flexibles au profit des nouveaux projets, d’exiger contractuellement une maintenance applicative performante et de qualité, et enfin de moduler plus facilement un budget IT plus pressurisé d’année en année. Mais de plus près, le tableau n'est pas aussi blanc qu'il n'y paraît.

La qualité de service ne suffit pas

De quoi parle-t-on, au juste ? Qu’y a-t-il derrière le mot « maintenance applicative » si ce n’est des instructions Cobol, des fonctions C++, des classes Java ou des requêtes SQL ? Du code… plusieurs millions de lignes de code qui, pour certaines applications « legacy », ont été maintenues en interne – tant bien que mal – pendant plusieurs dizaines d’années.

Un code qui a aussi survécu aux différentes vagues technologiques et corrections successives, certes, mais un code qui s’est complexifié et appauvri en documentation, qui ne respecte plus les derniers standards de programmation ou les nouvelles conventions de nommage. Bref un code devenu trop difficilement maintenable, moins évolutif et dont la connaissance et la maîtrise s’amenuisent au fil des départs en retraite. Ce même code que l’on demande à son prestataire de maintenir, mais dont on ne contrôle pas la qualité ni au début ni pendant la durée du contrat.

C’est ici précisément que les conventions de service actuellement mises en place atteignent leurs limites, car elles encadrent la qualité de la prestation et non la qualité du livrable lui-même. Elles engagent le prestataire à maîtriser et améliorer la production, et non le produit. Elles permettent d’établir des constats a posteriori, et non d’anticiper sur d’éventuelles dérives ou risques techniques. Un contrôle et un suivi de la qualité intrinsèque des composants applicatifs pourraient pallier ces limites. Car en fin de contrat (transfert vers un autre prestataire ou ré-internalisation de la maintenance), c’est bien au produit auquel les équipes de maintenance auront à faire au retour de l’application. Auquel cas, une dégradation de la qualité du code (conformité, maintenabilité, capacité à

Page 11: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

11

supporter de nouvelles évolutions, etc.) augmenterait sensiblement le risque de non-réversibilité. Risque qui, pour rappel, a longtemps freiné les directions informatiques dans leur volonté d’externaliser les activités de développement.

3 questions à... Georges Montoya, Directeur Outsourcing de Logica

Logica, acteur européen majeur des services informatiques, a retenu, dans le cadre de son plan industriel, la solution d’Application Portfolio Management System Code de Metrixware pour l’ensemble de ses Centres de Services, et propose à ses clients une amélioration proactive de la qualité et de la performance de ses développements applicatifs.

En quoi la qualité du code délivré est-elle un élément important pour vos clients ? Pour quelles raisons ?

Depuis plusieurs années déjà, nos clients grands comptes sont sensibilisés et informés quant à la qualité de service et des process en matière d'externalisation des activités informatiques. Ils connaissent et ont su relever le défi du CMMI (Capability Maturity Model & Integration). La qualité du code produit, qui a un impact direct sur leurs coûts de développement et de maintenance IT, est l'étape suivante. Ainsi, de plus en plus d'appels d'offre contiennent des SLAs (Service Level Agreement) impliquant directement la qualité du code.

Cette qualité technique exigée, gage de maintenabilité et d'évolutivité, vise à réduire les coûts sur le moyen et le long terme : bien « écrite », une application se montrera plus fiable, et moins coûteuse à maintenir et à faire évoluer. Pour Logica, les outils de mesure et d'analyse de la qualité du code applicatif sont aussi un élément différenciateur sur le plan concurrentiel, tant pour la fiabilisation de nos chiffrages en avant-vente que pour l'argumentation de nos actions préventives en phase d'initialisation de projets de TMA. Quels processus avez-vous mis en place pour la mesure et l'analyse de la qualité du code applicatif géré par vos centres de services ?

Début 2007, nous avons créé une cellule spécifique baptisée Software Quality Center (localisée dans notre Centre de Service Gironde), qui réalise des audits qualimétriques des projets à la demande. Ainsi, sur un projet de maintenance, l’analyse d’une application, à intervalles réguliers, permet d’identifier les dérives de qualité du code produit avant que celles-ci ne deviennent critiques. Il est alors possible d’ajuster les bonnes pratiques internes diffusées auprès des développeurs en vue d’améliorer la qualité de leur travail au quotidien.

.../...

Page 12: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

12

La charte Cigref-Syntec Informatique « Infogérance et TMA »

En 2004, le Cigref (club informatique des grandes entreprises françaises) et le Syntec Informatique (chambre syndicale des SSII, éditeurs et VAD) ont signé une charte récapitulant l’ensemble des bonnes pratiques et recommandations à adopter entre le client (membre du Cigref) et le prestataire (membre du Syntec Informatique). Cette charte « Infogérance et TMA » s’articule autour de 10 orientations fondamentales comme la transparence, le partage des connaissances ou la qualité.

En faisant le choix d'une solution APM (Application Portfolio Management), nous avons complètement modifié nos procédures de mesure de la qualité. Auparavant, nous utilisions essentiellement des Plateformes d’Intégration Continue (PIC), basées sur des outils Open Source tels que PMD ou Checkstyle, spécifiques aux nouvelles technologies. Si ces plateformes sont efficaces pour l'analyse quotidienne ou hebdomadaire de la qualité du code produit, elles sont en revanche mono-technologie et n'apportent qu'une « micro-vision » de la qualité des composants d’une application.

Multi-technologies, les solutions d'APM dispensent une vision plus globale de la qualité du code applicatif. En permettant la consolidation des métriques et la prise en compte de données exogènes, elles fournissent des données quantifiables et précises pour une véritable gouvernance des patrimoines applicatifs de nos clients dans la durée. Outre les gains de productivité immédiats par la mise en œuvre de fonctionnalités d’aide à la maintenance (cartographie, analyse d’impact, etc.), quels sont les bénéfices attendus d’un contrôle qualité en amont des livraisons logicielles ?

Dans le cadre de projets de maintenance déjà en place, le contrôle qualité en amont permet d'anticiper les dérives néfastes à la maintenabilité future et d'évaluer précisément le ratio coût / utilité des évolutions correctives et préventives.

Pour Logica, c'est aussi dans les processus d'avant-vente d'une TMA qu'une solution d'APM trouve toute sa pertinence. L'analyse du périmètre applicatif à reprendre permet en effet de quantifier précisément la qualité, la volumétrie et la complexité de celui-ci.

Réalisées par notre Software Quality Center, les analyses avant-vente offrent ainsi aux équipes répondant aux appels d'offre une vision globale du périmètre applicatif et de construire des argumentaires d'autant plus pertinents dans nos propositions commerciales. Elles permettent en outre d’extraire une liste de la complexité de tous les composants de l’application, qui sert alors d’entrant aux abaques de chiffrage pour déterminer la complexité d’un composant impacté par une modification.

Page 13: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

13

Les recommandations sur la qualité des TMA sont déclinées en deux points dans le chapitre « Suivi et Contrôle » :

Qualité de service : garantir la réactivité, la flexibilité et un reporting transparent (notions couvertes et cadrées par les Conventions de Service)

Qualité de l’application : maintenir les compétences et la documentation (cartographie, plan de formation, etc.), veiller à la maintenabilité (respect des normes, tests, actions préventive…).

La qualité du code, sujet peu évoqué par les acteurs TMA

Pourtant, les sous-traitants ne semblent pas encore être force de proposition en la matière. Sur un échantillon constitué de vingt offres de TMA (publiées sur le site internet des prestataires), une seule communique sur l’intégration en standard dans le pilotage de la maintenance une analyse et un reporting réguliers portant sur la qualité du code.

Si l’on considère ce chiffre, quelles garanties les directions informatiques ont-elles sur le maintien ou l’amélioration du niveau de maintenabilité, d’évolutivité ou de conformité du code constituant les applications qu’elles ont confiées sur un, trois voire dix ans ? Quelques sociétés, grands comptes du secteur bancaire principalement, ont anticipé et se préoccupent déjà de cette problématique, en incluant dans les conventions de services de nouvelles exigences portant sur la qualité du code. Ces indicateurs qualité conditionnant l’acceptation ou le refus des livraisons du prestataire.

Mais force est de constater que les acteurs de ce marché restent en retrait sur le sujet et peinent à proposer d’emblée dans leur offre un engagement sur la qualité du code. Peut-être n’y sont-ils pas encore prêts ? Craignent-ils de « se couper l’herbe sous le pied » ? Sans doute ont-ils aujourd’hui mangé leur pain blanc, c’est généralement le lot d’acteurs d’un marché ayant désormais atteint sa maturité : mieux informés et plus exigeants, les clients leur imposent des engagements sur les produits. Engagements qui se limitaient jusque-là une « simple » qualité de service.

Page 14: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

14

Les risques liés à la qualité du code

La qualité du code dépend de plusieurs facteurs qu'ils soient purement techniques, tels que la conformité du code aux bonnes pratiques édictées par la profession, ou annexes. C'est le cas notamment des commentaires de code ou de la documentation de développement : en leur absence, l'application « tournera » correctement mais s'ils sont présents, ils faciliteront la maintenance et les évolutions futures.

Plus largement, l’absence de contrôle de ces facteurs présente des risques techniques, métiers et financiers importants, comme la réduction de la durée de vie de l’application, la hausse des coûts de maintenance, l’allongement des délais de livraison, l’augmentation du nombre de défaillances.

Par ricochet, ces risques, s’ils ne sont pas identifiés et maîtrisés sur le projet TMA, peuvent être perçus par le client comme une dégradation des engagements de service pris par le prestataire (réactivité à une demande, rapidité de traitement d’une anomalie, hausse du risque de non réversibilité, etc.).

Maintenabilité

Alors que 60 à 80% des budgets de développements sont alloués à la maintenance, la maintenabilité d’une application est un élément prédominant de la qualité du code, et vice versa, a fortiori dans un contexte de tierce maintenance. Ainsi, de la qualité du code (et son maintien dans le temps) dépendra la facilité (ou la difficulté) des développeurs à apporter des modifications dans le code. Plus le code est complexe, plus laborieuse sera la tâche de corriger une anomalie remontée par les utilisateurs.

La maintenabilité dépend alors de plusieurs critères liés entre eux et dépendant directement des bonnes pratiques de développement.

Complexité du code

En programmation, il existe de nombreux chemins techniques pour arriver au même résultat. Et le chemin choisi dans un cas ne sera pas forcément pas le bon pour une autre

Page 15: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

15

application. Néanmoins, il est reconnu que certaines pratiques de développement ont tendance à complexifier la structure technique des applications, rendant sa maintenance plus consommatrice en ressources et en temps.

Parmi ces pratiques, on retrouve notamment :

Les conditions logiques : les opérateurs logiques de condition sont l’une des principales causes de la complexité des composants. Prévues pour orienter l’exécution d’une application en fonction d’une valeur issue d’un traitement, ces conditions, communément appelées « if », et leurs critères d’aiguillage doivent pouvoir être facilement analysées et comprises par le développeur, pour éviter tout risque de défaillance. Quant à ce qu'il est courant d'appeler les « if imbriqués » (les conditions dirigent l’exécution vers d’autres conditions), c'est le cauchemar des équipes de maintenance.

Les débranchements : ce sont des « raccourcis » permettant aux développeurs d’appeler une partie du programme et continuer le traitement de l’information. Cet usage augmente la complexité, obligeant le développeur à naviguer d’un programme à l’autre pour suivre la logique d’exécution de l’application. Les débranchements sont assez courants dans les applications « legacy », développées en langage procédural (commande « GOTO » en Cobol, C, Pacbase, etc.).

Les inclusions : elles consistent à importer une partie de code (fichiers, classes, programmes, etc.) distante du programme en cours d’exécution (ex : fonction « include » en PHP). L’intérêt de cette pratique est de pouvoir « componentizer » l’application pour réutiliser à la demande des groupes de fonctions, en évitant de devoir développer à nouveau ces fonctions. Néanmoins, ces inclusions favorisent la complexité du code : Le développeur doit vérifier si les traitements du fichier en cours de modification sont compatibles avec les fichiers inclus.

Taux de commentaire

Afin d'atténuer un code complexe, les développeurs peuvent utiliser des commentaires. Ces lignes de code non exécutées ont pour fonction d'expliciter la nature, le rôle, les fonctions des programmes développés. Ces commentaires servent de « documentation embarquée » pour le développeur.

Page 16: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

16

Ces informations servent aux développeurs pour la bonne compréhension des composants applicatifs en cours de modification (correction d’anomalies, évolutions, etc.). Sans elles, le développeur maintient « en aveugle » ou se réfère à une documentation du composant souvent obsolète et distante de son environnement de développement.

Les points à retenir

Le niveau de maintenabilité d’une application influe fortement sur la capacité des développeurs à analyser et comprendre le traitement de l’information réalisé dans le code. Ici, c’est essentiellement le facteur temps qui est en jeu. Plus le code est complexe et pauvre en documentation, plus les activités de maintenance seront longues et coûteuses, parfois source d’anomalies supplémentaire.

Les effets économiques constatés sur le patrimoine applicatif d’un faible niveau de maintenabilité du code peuvent être :

Hausse du nombre d’anomalies : une hausse de la complexité – et donc une dégradation de la maintenabilité – génère une augmentation du nombre d’anomalies. En effet, une modification du code, alors que le développeur ne peut pas intellectuellement prendre en compte toutes les dépendances techniques (conditions, débranchements, etc.), peut faire apparaître des dysfonctionnements de l’application maintenue dans le traitement de l’information.

Allongement des délais de livraison : la modification d'un code peu maintenable est une tâche délicate. Et le phénomène s’amplifie d’autant que les demandes de corrections augmentent. Les allers-retours entre le développement et le test sont plus nombreux, le cycle de livraison logicielle s’en trouve ainsi fortement ralenti.

Phase de test plus longue : la complexité du code étant mal maîtrisée en phase de développement (prolifération des conditions logiques), les cas de tests seront plus nombreux pour couvrir tous les chemins fonctionnels et ainsi détecter les défaillances possibles.

Pénalisation des maintenances évolutives : face à la hausse du nombre d’anomalies et de l’allongement des délais de leur correction, le management est souvent contraint et forcé de limiter les budgets de maintenance évolutive, la priorité actuelle étant d’abord de maintenir opérationnelles leurs applications et de garantir leur fonctionnement normal.

Page 17: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

17

Conformité du code

La conformité du code est un facteur essentiel dans la mesure de la qualité d’une application. Le respect des normes de programmation comme des règles d’architecture interne du système d’information sont des leviers significatifs influant sur le niveau de performance, de sécurité, de compatibilité d’une application avec le reste du patrimoine.

Respect des standards de programmation

Oublié le temps de l'amoncellement de briques logicielles indépendantes. Aujourd'hui, la notion de système d'information nécessite de penser l'informatique d'entreprise dans son ensemble. C'est la raison pour laquelle, quels que soient la plateforme et le langage utilisés, des standards de programmation guident les développeurs dans leur travail. Des standards qui s'entendent à deux niveaux.

D'une part, un niveau pratique, incluant notamment une convention de nommage pour l'ensemble des composants de l'application selon leur nature (classes, méthodes, etc.), mais aussi la présence d'informations de documentation embarquées (commentaires de code) et annexes précises, complètes et à jour. Ainsi construite, l'application est totalement autonome et peut être prise en main par n'importe quelle équipe de développement ou de maintenance applicative.

D'autre part, un niveau technique. Il s'agit dans ce cas, pour les développeurs, de se conformer à l'état de l'art du langage qu'ils utilisent : un ensemble de bonnes pratiques édictées au fil du temps par les concepteurs et/ou utilisateurs des langages, leur garantissant performance et sécurité.

Conformité architecturale des composants

Qu’elle soit descriptive, prescriptive, fonctionnelle ou purement technique, l'architecture applicative est l'organisation des composants, de leurs connexions et leurs dynamiques, en réponse aux besoins fonctionnels de l'application et de son évolution dans le temps.

A l'instar d'une équipe de football, dans laquelle chaque joueur, s'il dispose de ses propres caractéristiques et atouts, construit une tactique globale et cohérente dans un même but commun à toute l'équipe, chaque composant d'une application doit pouvoir s'intégrer à

Page 18: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

18

son environnement architectural afin de permettre sa compréhension et son éventuelle réutilisation dans d'autres fonctions. Tout en étant capable de s'interfacer avec d'autres applications.

Evolutivité

Agrandir une maison de campagne sur un terrain plat et spacieux serait plus aisé que réaliser une extension dans un appartement du centre historique de Paris. En informatique, c'est pareil : l’évolutivité d’une application traduit son potentiel à intégrer plus ou moins facilement de nouvelles fonctionnalités.

Cet indicateur rend compte des efforts de compréhension, de développement et de tests nécessaires pour implémenter des évolutions majeures, compte tenu de la structure et du niveau de maintenabilité de l’existant.

Maintenabilité

Au cours de la conception d'une application, développer du code purement technique et fonctionnel, nous l'avons vu, ne suffit pas. Il s'agit, avant même d'en avoir l'idée, de penser les évolutions futures des applications, y compris lors des évolutions.

En effet, une application pensée à l'origine pour faciliter sa maintenance, peut très vite se détériorer sans un effort de maintenabilité soutenu au cours des corrections et évolutions successives, engendrant alors des risques d'anomalies, une maintenance future plus délicate et plus onéreuse et, in fine, un raccourcissement conséquent de l'espérance de vie de l'application.

Intégrité de l’architecture logicielle

L’architecture d’une application logicielle définit les règles de fonctionnement et de communication entre ses composants. Elle permet de gérer le présent, et surtout d’anticiper l’avenir, en toute agilité. Sa non-conformité au niveau du code (mauvaise utilisation de frameworks, de bus de services SOA, etc.), se caractérise par une adhérence forte entre composants, la prolifération d’exceptions et de cas particuliers, impactant alors de manière notoire les efforts à fournir pour intégrer de nouvelles fonctionnalités.

Page 19: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

19

Code mort

Au cours des années de maintenance, il peut exister des portions d’application qui ne sont jamais utilisées, des programmes qui ne sont jamais appelés pendant l’exécution d’une application. Il peut s’agir, par exemple, d’un module automatisant la création et l’impression de courriers papiers à destination des employés de l’entreprise, alors que le mode de communication en interne se réalise exclusivement par e-mail depuis 5 ans.

Ce « code mort » n’est pourtant pas exclu du périmètre de l’application à maintenir, et alourdit donc inutilement l’effort de maintenance, et par conséquence le contrat de TMA conclu entre l’entreprise et son prestataire.

Une analyse du code applicatif avant son externalisation permet alors la détection des parties non utilisées. Les programmes isolés – ceux qui n’appellent aucun autre programme et qui ne sont jamais appelés par d’autres – peuvent alors être retirés du périmètre de la maintenance, allégeant sensiblement la charge de maintenance estimée souvent sur le nombre de lignes de code.

Selon le cabinet Forrester, l'élimination du code mort des applications confiées en TMA pourrait réduire jusqu'à 5% le coût total des contrats. Une économie substantielle si l'on considère la part croissante des maintenances d'applications externalisées.

Les points à retenir

La conformité du code aux normes de programmation et aux règles d'architecture du système d'information influe sur le niveau de performances, de sécurité, de compatibilité d’une application avec le reste du patrimoine ;

Le maintien d'un effort d'évolutivité tout au long du cycle de vie logiciel, y compris lors des corrections et évolutions confiées en TMA, allonge sensiblement l'espérance de vie d'une application ;

L'identification et la suppression du code mort réduit sensiblement le coût de la TMA.

Page 20: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

20

Les bonnes pratiques du contrôle qualité des Tierces Maintenances Applicatives

Les risques et les conséquences techniques et économiques d’une dégradation de la qualité du code applicatif sont nombreux. Dans un cadre contractuel de TMA, la mise en place d’un contrôle régulier à chaque phase majeure du projet a donc pour objectif l’amélioration de la gestion du risque qualité, pérennisant ainsi l’application sous-traitée et la relation client/fournisseur qui en découle.

Encore faut-il que clients et fournisseurs s’entendent sur un référentiel commun, telle par exemple la norme ISO 9126, afin de garantir la fiabilité et l’objectivité des résultats, et ainsi d’obtenir, à coup sûr, l’adhésion du prestataire.

Objectivité et neutralité des résultats

Pour une fiabilité et une efficacité sans faille du contrôle qualimétrique, les tests doivent impérativement reposer sur une série d’éléments factuels et pertinents dans le contexte de l’application, compris et validés par le client et le prestataire. Les mesures ainsi obtenues étant alors incontestables.

A ce titre, clients et fournisseurs peuvent s’appuyer sur les standards du marché pour déterminer ensemble le modèle qualité le mieux adapté à l’application et plus globalement au contexte général du système d’information.

Règles de programmation standards

C’est le niveau « le plus simple ». Concrètement, il s’agit de s’appuyer sur les règles de programmation standards définies par le marché pour chaque technologie ou langage, pour s’assurer de la qualité des développements dans le cadre d’un contrat de tierce maintenance applicative. Techniquement justifiée, cette méthode de mesure de la qualité est nécessaire mais insuffisante à la pérennité d’une application.

Page 21: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

21

Le modèle qualité ISO-9126

Incluant de facto le respect des règles de programmation standards propres à chaque technologie, le modèle ISO-9126, baptisée « Technologie de l’Information : qualité des produits logiciels », ajoute à la mesure du contrôle de la qualité un certain nombre d’éléments, et notamment en termes de fiabilité, de robustesse, d’évolutivité et de maintenabilité.

Chaque caractéristique est elle-même sous-catégorisée de façon à classer une série de métriques, identifiées sur la base de définitions standardisées, selon une arborescence structurée. Objectives et incontestables, ces mesures permettent d’identifier, de façon exhaustive, les points faibles de l’application.

Les mesures spécifiques

Que le choix du contrôle qualimétrique relève de la veille au respect des règles de programmation standards ou d’un document plus élaboré sur la base de la norme ISO-9126, la mise en place de tests spécifiques s’avère indispensable pour mesurer de façon efficiente la qualité d’une application en fonction de ses spécificités propres et de son contexte technologique et fonctionnel.

A quelle phase du projet contrôler la qualité ?

Pour des résultats pertinents et dur ables, le contrôle de la qualité doit intervenir à chaque phase du projet : avant l’appel d’offre, avant la signature du contrat, pendant l’exécution du contrat et avant le renouvellement du contrat.

Une méthode qui, si elle semble répétitive, en demeure la plus efficace en termes de leviers d’actions et de décisions qu’elle offre aux responsables informatiques dans le cadre de la mise en place, le pilotage ou le renouvellement de leurs contrats de TMA.

Avant l’appel d’offre

Préalable à toute réflexion de mise en œuvre d’un contrat de TMA, le test qualimétrique en amont revêt un double objectif : cognitif et pécuniaire. Il permet en effet aux

Page 22: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

22

propriétaires des applications à maintenir de dresser un bilan précis de leur état qualitatif et ainsi, avant même de concevoir l’appel d’offres et de qualifier les réponses inhérentes, d’estimer les charges et efforts de maintenance nécessaires.

Pour cela, les décideurs peuvent notamment s’appuyer sur la méthode des points de fonction, construite selon les recommandations de l’IFPUG (International Function Points User Group), qui propose une mesure de la production logicielle basée sur les fonctions utilisateurs, indépendantes du nombre de lignes de code.

Ce premier bilan en amont offre en outre l’avantage d’identifier et d’éliminer le code mort qui, comme évoqué précédemment, peut représenter jusqu’à 5% du code applicatif, et alourdir d’autant le coût de la maintenance.

Avant la signature du contrat

En complément du bilan préalable à l’appel d’offres, un test qualimétrique précédant la signature du contrat de TMA est un moyen efficace de négociation des conditions particulières de l’exécution du contrat, fondé sur une base technique solide.

Il permet notamment de définir précisément les objectifs généraux du prestataire mais aussi les seuils de qualité à conserver ou à atteindre pour le maintien de la qualité de l’application sur le long terme, au travers de la définition de QLA (Quality Level Agreement), mesurés tout au long du contrat par de nouveaux contrôles qualimétriques réguliers, et totalement complémentaires aux SLA « classiques ».

Pendant l’exécution du contrat

Selon le mode d’organisation du contrat, les contrôles au cours de l’exécution du contrat s’effectuent à intervalles réguliers ou lors des livraisons des packages. Ces tests permettent, outre le pilotage du prestataire par des objectifs précis, de valider la conformité des livrables par rapport au niveau de qualité défini au contrat.

En cas de non-conformité voire de « dérapage », de nouveaux objectifs à atteindre au cours d’une période donnée permettent de prioriser les actions selon un plan hiérarchisé, afin de rattraper les erreurs ou les omissions, sans risquer de se laisser dépasser par la situation ; ce qui aurait pour conséquence, rappelons le, une baisse de la qualité du code et donc de la maintenabilité et de la durée de vie de l’application à long terme.

Page 23: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

23

Avant le renouvellement du contrat

Tout comme avant la signature du premier contrat, les contrôles qualité tout au long de son exécution et un diagnostic qualité global du contrat juste avant son renouvellement sont un véritable levier de négociation pour les clients.

En fonction des tendances des indicateurs qualité depuis le début du contrat, les clients peuvent pointer du doigt les éventuels points faibles de la maintenance et insister sur les QLA correspondants dans l’avenant, voire, dans le pire des cas, changer de prestataire de TMA.

Obtenir l’adhésion du prestataire

Avant toute chose, il s’agit de ne surtout pas considérer le contrôle et le suivi de la qualité du code applicatif comme un « flicage ». Il s’agit au contraire d’assainir les relations entre clients et fournisseurs de TMA, ainsi fondées sur un référentiel commun, objectif et indiscutable de part et d’autres.

Pour le client, c’est l’assurance de préserver la maintenabilité, l’évolutivité et la durabilité de son système d’information et de son investissement à long terme, selon des critères standards ou spécifiques à chacune de ses applications.

Le prestataire quant à lui peut s’appuyer sur ces contrôles pour mesurer précisément les efforts à fournir et la charge de travail pour chaque application à maintenir, ses engagements étant parfaitement délimités, connus et –forcément- acceptés du client.

3 questions à... Rémy BERTHOU, DSI de SNCF Voyageurs La DSI Voyageurs est en charge de l'ensemble des systèmes orientés transport de personnes au sein du Groupe SNCF. Récente (2003-2004), sa démarche qualité logicielle s'est construite parallèlement au développement de la TMA.

Quels indicateurs de qualité du code intégrez-vous au sein de vos projets de TMA ?

Au-delà du périmètre des applications dont la maintenance est confiée à un tiers, la DSI Voyageurs du Groupe SNCF a développé un portail qualité global. Il prend en charge l'analyse du code des applications développées, maintenues et gérées par l'ensemble de nos centres de services, qu'ils soient internes ou externes (TMA). …/…

Page 24: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

24

Quoiqu’il en soit, le marché du logiciel en général, et de la TMA en particulier, désormais à maturité, tend inexorablement vers un contrôle systématique de la qualité des applications, tant sur le plan fonctionnel que technique. Selon un sondage international initié par Metrixware auprès de 88 décideurs informatiques via le réseau social professionnel LinkedIn, 63% d’entre eux analysent la qualité de leurs applications outsourcées à chaque livraison, quelle que soit leur motivation : approuver le livrable (40%), identifier les risques et définir les priorités (30%) ou maintenir à jour leur connaissance de l’application (30%). Une tendance qui n’est pas prêt de s’inverser,

Bâtie sur un modèle qualité définissant les bonnes pratiques de développement et de maintenance spécifiques aux besoins et contraintes du système d'information Voyageurs, l'analyse de nos éléments applicatifs fait l'objet d'un suivi très régulier, de l'ordre de deux à trois fois par an. Consignés dans un rapport, les résultats sont ensuite examinés avec les tiers mainteneurs pour identifier les points forts et les points faibles, et ainsi définir ensemble les axes de travail à prioriser dans les mois à venir.

Nous avons à ce jour atteint le niveau 2 de CMMi, avec désormais l’objectif de valider prochainement le niveau 3.

Ces indicateurs de qualité du code sont-ils contractuels avec vos prestataires TMA ?

A l'heure actuelle, les engagements de qualité de la part de nos prestataires sont informels. Nos contrats ne prévoient pas de système de bonus/malus en fonction des résultats de nos analyses qualité.

Néanmoins, les tiers mainteneurs sont informés de notre démarche visant à allonger le cycle de vie de nos applicatifs et y adhèrent assez naturellement, notamment quant aux priorités que nous fixons après chaque analyse. C'est aussi leur intérêt : plus le code reste « propre », plus l'application est simple à maintenir et à faire évoluer.

Quels sont les premiers retours de ces contrôles qualité pour la SNCF DSI-V ?

L'objectif de départ consistait, bien sûr, à nous assurer de la pérennité de nos applicatifs et, par ricochet, de nos investissements, tout en fiabilisant le service rendu.

En conséquence de quoi, les coûts de la TMA se sont stabilisés à un niveau acceptable. D'une maintenabilité et d'une évolutivité améliorées, nos éléments applicatifs réclament des besoins en jour/homme sensiblement inférieurs. Tandis qu'une meilleure facilité d'apprentissage réduit considérablement notre dépendance aux équipes de maintenance, apportant ainsi un gain de réactivité conséquent.

Page 25: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

25

l’informatique, tout comme les autres centres de coût des entreprises, voyant leur budget se réduire, ou au mieux se stabiliser, d’années en années.

Les points à retenir

La qualité du code d’une application doit s’effectuer selon des critères objectifs, compris et acceptés par les deux parties, pour garantir la neutralité des résultats ;

Connaissance de l’application, estimation de charges, conformité aux engagements : le contrôle de la qualité du code trouve sa pertinence à chaque phase du projet ;

Le contrôle de la qualité du code est un échange entre partenaires : le client garde le contrôle de son application, tandis que le prestataire s’engage sur des objectifs clairs et précis, ni plus, ni moins.

Page 26: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

26

A propos de Metrixware

Depuis 1995, Metrixware, éditeur français de suite logicielle System Code, offre à ses clients des solutions d'aide à la maintenance, de mesures de la qualité logicielle et de gouvernance leur permettant de disposer de la meilleure visibilité sur l'état de leur patrimoine applicatif, afin de fonder leur choix de management sur des éléments factuels et le piloter de manière optimale en regard des enjeux fonctionnels, économiques et techniques.

Positionnée sur le marché de l’Application Portfolio Management et de la Gouvernance IT, Metrixware met aujourd’hui en œuvre ses solutions auprès de grands comptes comme BNP Paribas, Generali, Société Générale, CNP Assurances, Banque de France, Alcatel Lucent, Orange Business Services, Caisse d’Epargne, etc.

La suite logicielle System Code

System Code est la suite logicielle dédiée à la Gouvernance et au Management du Portefeuille d’Applications. Elle permet d’analyser rapidement un patrimoine applicatif existant, et d’en mesurer la qualité et la performance pour mener les améliorations les plus pertinentes.

Sur la base des informations centralisées dans son référentiel applicatif, System Code fournit aux différents acteurs informatiques les informations capitales pour anticiper les dérives, gérer les risques et maîtriser l’évolution des applications en regard des enjeux métiers, financiers, technologiques et humains d’une DSI :

DSI, Directeur des Etudes : Tableaux de bord de gouvernance et de management du portefeuille d’applications (importance stratégique, technologies, budgets, etc.)

Responsable Qualité & Méthodes : Suivi global des objectifs de qualité et de conformité du parc applicatif (maintenabilité, évolutivité, architecture, respect des standards, etc.)

Responsable d’Applications : Pilotage des indicateurs clés de performance d’une application (qualité, budgets, satisfaction utilisateurs, criticité, etc.)

Page 27: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

27

Equipes de Développement et de Maintenance : Fonctionnalités d’aide au développement (cartographie, analyse d’impact) et de contrôle qualité (règles de programmation, qualité du code) directement intégrées dans l’environnement de travail, à travers les plugins SC for Eclipse et SC for Mainframe.

Pour plus d’information sur la solution System Code : www.metrixware.com

Le Centre d’Audit Metrixware

Le Centre d’Audit Metrixware repose sur une méthodologie outillée utilisant la solution de mesure et d’analyse de code System Code. La puissance de cet outil, associée à l’expertise de nos consultants, permet de dresser un diagnostic complet de la qualité du code d’une ou plusieurs applications, et ce, en prenant en compte leur caractère hétérogène (multi-langages, mainframe et nouvelles technologies, etc.).

Une visibilité sur la qualité et les risques applicatifs

Cette démarche industrialisée fournit aux Directions Informatiques, au Management et aux équipes opérationnelles toute la visibilité sur leur patrimoine applicatif pour identifier, mesurer et prioriser les risques et les faiblesses de leurs applications :

Maintenabilité : Facilité pour les équipes de développement à maintenir une application en conditions opérationnelles (compréhension du code par rapport à sa complexité et sa structure).

Evolutivité : Potentiel technique d’une application à supporter des évolutions majeures, de par sa structure, son niveau de maintenabilité.

Détection du code mort

Conformité du code aux standards de programmation

Page 28: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

28

Respect des règles d’architecture

Détection de mauvaises pratiques

Une démarche simple et rapide à mettre en œuvre

Autrefois complexe et onéreuse à mettre en place, la qualimétrie applicative semblait réservée aux grands groupes. Metrixware la rend désormais accessible à tous avec Insite SaaS.

Toute première solution on demand de mesure de la qualité du code applicatif, élément incontournable à la fiabilité, la maintenabilité et l'évolutivité des applications d'entreprise, Insite SaaS, présentée sous la forme d'un tableau de bord complet, est disponible depuis n'importe quel poste connecté à Internet. Elle s'appuie sur le modèle qualité standard proposé par Metrixware pour l'ensemble de ses applications ou sur un modèle spécifiquement conçu pour chaque entreprise.

Des livrables exploitables par le management et l’opérationnel

Ventilées par application, les informations recueillies par Insite SaaS sont disponibles selon plusieurs niveaux : vue d'ensemble, maintenabilité et fiabilité. En quelques clics, les DSI et responsables informatiques mais également les responsables fonctionnels prennent ainsi conscience très rapidement et très facilement de l'ensemble des risques technologiques liés à leurs applications, afin de mettre en œuvre les plans d'actions nécessaires à leur réduction.

Pour une réactivité et des échanges plus sûrs et plus simples entre les nombreux intervenants sur une même application, chaque composant des tableaux de bord dispose d'une zone de commentaire interactive. Un mode collaboratif qui sied parfaitement au mode de fonctionnement des entreprises d'aujourd'hui.

Pour plus d’information :

sur le Centre d’Audit : www.metrixware.com

sur Insite SaaS : http://insite.metrixware.com

Page 29: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

29

Copyrights

Ce document est la propriété de la société Metrixware et ne saurait être modifié ou diffusé sans son autorisation.

Page 30: Qualité du code - le revers de la médaille

metrixware

© Copyright Metrixware, 2009. Tous droits réservés.

Livre Blanc

30

Contacts

Marketing & Communication Michael MULLER | METRIXWARE [email protected] Tél: +33 1 55 69 32 24

metrixware Tél. : +33 1 55 69 32 20 | Fax : +33 1 46 69 08 32 87, Avenue François Arago | 92017 Nanterre cedex, France E-mail : [email protected] | www.metrixware.com

mesurez | maîtrisez | optimisez votre portefeuille d’applications