{"id":222,"date":"2012-09-23T11:08:55","date_gmt":"2012-09-23T10:08:55","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=222"},"modified":"2013-01-05T11:09:32","modified_gmt":"2013-01-05T10:09:32","slug":"le-futur-de-la-qualite-logicielle","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/le-futur-de-la-qualite-logicielle\/","title":{"rendered":"Le futur de la Qualit\u00e9 logicielle"},"content":{"rendered":"<p title=\"Estimation de l'effort\"><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-2321\" title=\"FutureOfQuality\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/09\/FutureOfQuality.jpg\" alt=\"\" width=\"240\" height=\"360\" \/><\/a>Je repensais au <a title=\"Estimation de l'effort\" href=\"http:\/\/qualilogy.com\/fr\/estimer-leffort-avant-le-debut-du-projet\" target=\"_blank\">post pr\u00e9c\u00e9dent<\/a> sur la mesure de l\u2019effort de projet \u2013 estimer les charges de d\u00e9veloppement et de QA avant le d\u00e9but du projet quand on dispose de peu d\u2019\u00e9l\u00e9ments de chiffrage \u2013 lorsque je suis tomb\u00e9 sur une annonce dans un forum sur la mesure de la Qualit\u00e9 logicielle, pour une conf\u00e9rence sur ce m\u00eame sujet.<\/p>\n<p title=\"Estimation de l'effort\">Vous savez, un de ces \u00e9v\u00e8nements dans lequel diff\u00e9rents orateurs effectuent un expos\u00e9 sur des th\u00e8mes comme \u2018quelles m\u00e9triques pour \u00e9valuer les projets\u2019 ou des tables rondes pour discuter de \u2018m\u00e9thodes d\u2019estimation des co\u00fbts de d\u00e9veloppement et de maintenance\u2019.<\/p>\n<p>L\u2019auteur de cette annonce a demand\u00e9 aux membres du forum quels th\u00e8mes de r\u00e9flexion et sujets d\u2019actualit\u00e9 ils souhaiteraient voir aborder lors de cette conf\u00e9rence, ce qui a d\u00e9clench\u00e9 toute une s\u00e9rie de r\u00e9ponses et de r\u00e9actions assez insolites, mais que je vous r\u00e9sume bri\u00e8vement :<\/p>\n<ul>\n<li>Halte, stop, assez, fini, arr\u00eatez les pr\u00e9sentations et les \u2018papers\u2019 sur \u2018Comment mesurer la productivit\u00e9 en mati\u00e8re de maintenance logicielle ?\u2019, \u2018Mesures effectives du risque\u2019 ou \u2018Utilisation des Points de Fonction dans l\u2019industrie a\u00e9ronautique\u2019.<\/li>\n<li>Cela fait maintenant plus de 35 ans que nous disposons de m\u00e9triques et pourtant les directions IT continuent d\u2019ignorer les mesures de qualit\u00e9 logicielle et le nombre de projets en \u00e9chec ou en retard est toujours plus important.<!--more--><\/li>\n<\/ul>\n<p class=\"MsoNormal\"><span lang=\"FR\">Et quelqu\u2019un de commenter que \u00ab l\u2019industrie de la mesure logicielle est dans un triste \u00e9tat \u00bb et que \u00ab nous pourrions en apprendre de la communaut\u00e9 Agile qui a int\u00e9gr\u00e9 ces mesures dans leurs pratiques \u00bb.<\/span><\/p>\n<p lang=\"FR\"><span lang=\"FR\">Je suis compl\u00e8tement d\u2019accord avec cette constatation, et cela m\u2019a rappel\u00e9 une pr\u00e9sentation r\u00e9alis\u00e9e par Olivier Gaudin, co-fondateur et CEO de Sonarsource, que vous trouverez ici <\/span>: <a title=\"Continuous Inspection with Sonar\" href=\"http:\/\/www.sonarsource.com\/company\/events\/webinar-take-continuous-inspection-to-your-enterprise-with-sonar-3-0\/\" target=\"_blank\">Webinar: Take Continuous Inspection to Your Enterprise with Sonar 3.0.<\/a><\/p>\n<p class=\"MsoNormal\"><span lang=\"FR\">J\u2019ai extrait de cette pr\u00e9sentation le slide qui me para\u00eet le plus important quant \u00e0 la vision de notre march\u00e9 de la mesure logicielle, et qui va compl\u00e8tement dans le sens des remarques pr\u00e9c\u00e9dentes :<\/span><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/09\/QualFuture.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2328\" title=\"QualFuture\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/09\/QualFuture.jpg\" alt=\"\" width=\"469\" height=\"349\" \/><\/a>Remarque : la colonne de gauche indique ce qu&rsquo;est aujourd&rsquo;hui ce march\u00e9 et la colonne de droite ce qu&rsquo;il devrait \u00eatre.<\/p>\n<p>Analyse de code, analyse de la qualit\u00e9 des applications, mesure de la qualit\u00e9 logicielle, mesure de la qualit\u00e9 du code, \u2026 Il y a pratiquement autant d\u2019appellations diff\u00e9rentes que d\u2019outils, merci \u00e0 l\u2019inventivit\u00e9 des d\u00e9partements marketing. Et m\u00eame si ces-derniers s\u2019en d\u00e9fendent, tous ces outils ex\u00e9cutent les m\u00eames fonctions, analyser le code pour identifier les violations aux bonnes pratiques de programmation et assembler diff\u00e9rentes m\u00e9triques pour les pr\u00e9senter \u00e0 travers un tableau de bord.<\/p>\n<p>Il y a 5 ans, il existait beaucoup moins d\u2019outils sur le march\u00e9, ils \u00e9taient chers, g\u00e9n\u00e9ralement limit\u00e9s \u00e0 l\u2019analyse de deux ou trois technologies, difficiles \u00e0 mettre en \u0153uvre et leur utilisation r\u00e9serv\u00e9e \u00e0 des \u00e9quipes Qualit\u00e9 transverses. Celles-ci tentaient de mettre en \u0153uvre des processus d\u2019audit d\u2019applications, mais ces initiatives restaient souvent vaines en l\u2019absence de volont\u00e9 marqu\u00e9e du management pour g\u00e9n\u00e9raliser ces processus sur les projets, mais \u00e9galement, il faut bien le dire, de la m\u00e9fiance des d\u00e9veloppeurs \u00e0 se voir contr\u00f4ler.<\/p>\n<p>Aujourd\u2019hui, il m\u2019arrive r\u00e9guli\u00e8rement de rencontrer des responsables Qualit\u00e9, dont certains que j\u2019ai connu comme anciens clients, et de les voir me confier, avec un air tr\u00e8s emb\u00eat\u00e9, que l\u2019outil d\u2019analyse de code qu\u2019ils ont achet\u00e9 \u00e0 prix fort n\u2019est pas utilis\u00e9, mais que les \u00e9quipes de projet ont mis en \u0153uvre elles-m\u00eames un processus d\u2019Int\u00e9gration Continue bas\u00e9 sur des outils Open Source comme Sonar et Jenkins.<\/p>\n<p>Premi\u00e8re le\u00e7on importante : la qualit\u00e9 des applications provient des d\u00e9veloppeurs. Vouloir contr\u00f4ler les d\u00e9veloppeurs et mesurer la qualit\u00e9 de leur production n\u2019a que peu de chances de r\u00e9ussir si ceux-ci ne sont pas compl\u00e8tement persuad\u00e9s de l\u2019int\u00e9r\u00eat de cette d\u00e9marche et associ\u00e9s \u00e0 celle-ci. Il est \u00e9videmment plus facile de contr\u00f4ler le code fourni par une soci\u00e9t\u00e9 de services, mais cela ne donnera de r\u00e9sultats que si ce provider met lui-m\u00eame en place un processus d\u2019Int\u00e9gration Continue au sein de ses propres \u00e9quipes de projet. Ou sinon, il vous faudra vous pr\u00e9parer \u00e0 changer de provider, ce qui n\u2019est pas si facile lorsque celui-ci est le seul \u00e0 poss\u00e9der la connaissance de votre code, connaissance que vous avez perdu lorsque vous avez d\u00e9cid\u00e9 d\u2019outsourcer vos applications.<\/p>\n<p>Donc premi\u00e8re conclusion : les d\u00e9veloppeurs sont les premiers utilisateurs d\u2019un outil d\u2019analyse de code et celui-ci doit s\u2019int\u00e9grer dans une cha\u00eene logicielle, depuis l\u2019outil de d\u00e9veloppement jusqu\u2019\u00e0 un r\u00e9f\u00e9rentiel de gestion de configuration. Tant que les consultants Qualit\u00e9 voudront rester seuls aux commandes d\u2019un outil d\u2019analyse de code pour contr\u00f4ler les d\u00e9veloppeurs, leurs efforts seront vains et ils resteront isol\u00e9s. Leur r\u00f4le doit \u00eatre de pousser les outils et processus Qualit\u00e9 au sein des \u00e9quipes.<\/p>\n<p>Cela nous am\u00e8ne \u00e0 la seconde question importante : pourquoi le travail des \u00e9quipes et cellules Qualit\u00e9 est-il ignor\u00e9 par les directions TI ? Parce que les consultants Qualit\u00e9, dans leur grande majorit\u00e9, ne savent pas vendre la valeur des informations et du support qu\u2019ils peuvent apporter aux directions TI et aux utilisateurs.<\/p>\n<p>Les consultants Qualit\u00e9 s\u2019int\u00e9ressent plus souvent \u00e0 la m\u00e9trique elle-m\u00eame qu\u2019\u00e0 son utilisation. J\u2019en fais l\u2019exp\u00e9rience constamment, chaque fois que je parle de LOC \u2013 la m\u00e9trique Lines Of Code \u2013 sur un forum : imm\u00e9diatement, nombre d\u2019experts me r\u00e9torquent que l\u2019usage de cette m\u00e9trique est une \u2018malpractice\u2019 et que seuls les Points de Fonction permettent de mesurer la taille d\u2019une application. Et je dois alors d\u00e9ployer des tr\u00e9sors de diplomatie et de longues explications pour justifier mon utilisation de cette m\u00e9trique : non pas pour mesurer la taille fonctionnelle de l\u2019application, simplement pour mesurer le nombre de lignes de code.<\/p>\n<p>Lorsque vous rencontrez une personne pour la premi\u00e8re fois, quelle est la premi\u00e8re chose que vous remarquez ? Sa taille. Est-elle petite, moyenne ou grande ? Il en va de m\u00eame avec une application, je commence par regarder sa taille. Ensuite, je peux utiliser des mesures de poids fonctionnel afin de v\u00e9rifier si cette personne, pardon cette application, est ou non en surpoids.<\/p>\n<p>Mais les consultants Qualit\u00e9 pr\u00e9f\u00e8rent souvent se perdre dans des querelles d\u2019experts sur l\u2019utilit\u00e9 ou non de telle ou telle m\u00e9trique que de r\u00e9fl\u00e9chir \u00e0 l\u2019utilisation qu\u2019il peut en \u00eatre faite, et \u00e0 sa valeur pour les \u00e9quipes de projet, les stakeholders ou les managers informatiques. Combien de \u2018papers\u2019 pour expliquer les variantes complexes du calcul de Points de Fonction sur telle application ou sur tels types de programme ? Combien de directeurs informatiques sont capables de comprendre de tels calculs et quelle utilit\u00e9 pour eux ?<\/p>\n<p>Je connais des directeurs de production qui ont en permanence devant eux un \u00e9cran avec le tableau des alertes sur toutes les applications pr\u00e9sentes dans l\u2019infrastructure dont ils ont la responsabilit\u00e9. Si une application critique \u2013 par exemples, de paiements bancaires \u2013 rencontre un probl\u00e8me \u2013 par exemple, sur les fichiers avec les donn\u00e9es de paiement \u2013 celle-ci appara\u00eetra alors en rouge sur son \u00e9cran, ce qui lui permettra de r\u00e9agir imm\u00e9diatement, avant m\u00eame que les utilisateurs n\u2019aient connaissance du probl\u00e8me.<br \/>\nCombien de directeurs informatiques, combien de responsable Etudes, combien de managers responsables d\u2019un portefeuille d\u2019applications poss\u00e8dent-ils un tel tableau de bord sur leur \u00e9cran ?<\/p>\n<p>Je n\u2019en connais aucun. Pourquoi ? Parce que la plupart des outils sont compliqu\u00e9s \u00e0 utiliser, avec des m\u00e9triques complexes \u00e0 comprendre, et surtout ne permettent pas de personnaliser le tableau de bord en fonction des souhaits de l\u2019utilisateur (\u00e0 l\u2019exception de Sonar). Donc il faut un consultant Qualit\u00e9 pour interpr\u00e9ter ces m\u00e9triques afin de d\u00e9livrer une information de valeur aux managers.<\/p>\n<p>On trouve aujourd\u2019hui plus d\u2019outils que par le pass\u00e9, mais je n\u2019en vois que tr\u00e8s peu qui :<\/p>\n<ol>\n<li>S\u2019int\u00e8grent efficacement \u00e0 la cha\u00eene de production logicielle, depuis le poste de travail du d\u00e9veloppeur.<\/li>\n<li>Permettent d\u2019am\u00e9liorer l\u2019efficacit\u00e9 des d\u00e9veloppeurs pour la production d\u2019un code de qualit\u00e9, sans surco\u00fbt\/surcharge de travail.<\/li>\n<li>Pr\u00e9sentent une interface suffisamment conviviale et customisable, qui permette \u00e0 diff\u00e9rents types d\u2019utilisateurs de disposer de son propre tableau de bord et des indicateurs qu\u2019il jugera utiles \u00e0 sa fonction.<\/li>\n<\/ol>\n<p>Au contraire, je continue \u00e0 voir des \u00e9diteurs logiciels expliquer les techniques complexes mises en \u0153uvre par leurs outils pour d\u00e9tecter encore plus de d\u00e9fauts et d\u00e9rouler la liste des m\u00e9triques que seuls leurs outils savent produire, mais qui ne seront utiles que pour un architecte J2EE ou un consultant Qualit\u00e9. Tant qu\u2019il en sera ainsi, le march\u00e9 pour ces outils restera, comme le fait remarquer Olivier Gaudin, un march\u00e9 de niche avec des logiciels chers.<\/p>\n<p>Et les consultants Qualit\u00e9 continueront \u00e0 se demander pourquoi on ne fait pas appel \u00e0 eux alors que tant de projets sont en \u00e9chec ou en retard.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je repensais au post pr\u00e9c\u00e9dent sur la mesure de l\u2019effort de projet \u2013 estimer les charges de d\u00e9veloppement et de QA avant le d\u00e9but du projet quand on dispose de peu d\u2019\u00e9l\u00e9ments de chiffrage \u2013 lorsque je suis tomb\u00e9 sur une annonce dans un forum sur la mesure de la Qualit\u00e9 logicielle, pour une conf\u00e9rence [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-222","post","type-post","status-publish","format-standard","hentry","category-qualite-des-applications"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/222"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":223,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/222\/revisions\/223"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}