{"id":86,"date":"2011-11-29T10:10:23","date_gmt":"2011-11-29T09:10:23","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=86"},"modified":"2013-01-04T10:12:23","modified_gmt":"2013-01-04T09:12:23","slug":"amelioration-continue-de-la-qualite","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/amelioration-continue-de-la-qualite\/","title":{"rendered":"Am\u00e9lioration continue de la qualit\u00e9"},"content":{"rendered":"<p>Dans le post pr\u00e9c\u00e9dent <a title=\"Mesurer et contr\u00f4ler la qualit\u00e9 des applications\" href=\"http:\/\/qualilogy.com\/fr\/mesurer-et-controler\/\" target=\"_blank\">Mesurer et contr\u00f4ler<\/a>, je disais que les m\u00e9triques quantitatives telles que le nombre de lignes de code (LOC) ou la mesure de la complexit\u00e9 cyclomatique \u00e9taient : <a href=\"http:\/\/vicken.deviantart.com\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-125\" title=\"QualContImprov\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/11\/QualContImprov.jpg\" width=\"180\" height=\"269\" \/><\/a><\/p>\n<ul>\n<li>facilement disponibles \u2013 tous les outils d\u2019analyse de code les proposent ;<\/li>\n<li>exactes \u2013 ces mesures ne varient (presque) pas selon les outils ;<\/li>\n<li>facilement compr\u00e9hensible pour le management.<\/li>\n<\/ul>\n<p>Est-ce \u00e1 dire que les mesures qualitatives seraient difficiles, inexactes et peu utiles ? En fait, tout d\u00e9pend ce que vous voulez faire, donc du cas d\u2019utilisation. Aujourd\u2019hui, nous verrons un cas id\u00e9al : l&rsquo;am\u00e9lioration continue de la qualit\u00e9 (Continuous Improvement). <!--more--><\/p>\n<p>Elisez 12 ou 15 m\u00e9triques consid\u00e9r\u00e9es comme critiques et pour lesquelles vous &#8211; votre \u00e9quipe de projet &#8211; visez le z\u00e9ro d\u00e9faut. Chaque nuit (ou chaque fin de semaine) le code de l\u2019application est analys\u00e9 et les violations pour ces m\u00e9triques critiques sont identifi\u00e9es. Chaque matin (ou chaque d\u00e9but de semaine) l\u2019\u00e9quipe de projet passe en revue les d\u00e9fauts nouvellement introduits et d\u00e9cide de ses rem\u00e9diations. Si l\u2019outil d\u2019analyse est plugu\u00e9 avec l&rsquo;outil de d\u00e9veloppement, ces rem\u00e9diations appara\u00eetront dans la task list de chaque d\u00e9veloppeur. Vous avez un exemple d\u2019un tel processus ici : <a title=\"Effective Code Review with Sonar\" href=\"http:\/\/www.sonarsource.org\/effective-code-review-with-sonar\/\" target=\"_blank\">Effective Code Review with Sonar<\/a>.<\/p>\n<p>Quels sont les avantages d\u2019un processus d&rsquo;am\u00e9lioration continue :<\/p>\n<ul>\n<li>Co\u00fbt de correction de la non-qualit\u00e9 le plus bas, puisque le plus en amont possible dans le cycle de d\u00e9veloppement. Sooner is cheaper.<\/li>\n<li>Am\u00e9lioration continue des comp\u00e9tences : l&rsquo;\u00e9quipe de projet se familiarise avec les bonnes pratiques les plus importantes.<\/li>\n<li>Dette technique contr\u00f4l\u00e9e : les d\u00e9rives de maintenabilit\u00e9 sont contenues.<\/li>\n<\/ul>\n<p>Cependant, afin de limiter la charge de travail additionnelle (analyse du code source, exploitation des r\u00e9sultats, r\u00e9partition des corrections \u00e1 effectuer, \u2026), il est souhaitable de disposer d\u2019un outillage ad\u00e9quat :<\/p>\n<ul>\n<li>Un serveur de gestion de versions qui permette de partager le code source entre les d\u00e9veloppeurs et d\u2019alimenter l\u2019outil d\u2019analyse de code.<\/li>\n<li>Si possible, un outil de gestion des tests pour valider chaque version (build).<\/li>\n<li>Un outil d\u2019int\u00e9gration qui se charge d\u2019automatiser les t\u00e2ches de compilation (build), d\u2019analyse de code et de test.<\/li>\n<\/ul>\n<p>Id\u00e9alement, ces outils doivent pouvoir communiquer entre eux, notamment afin de :<\/p>\n<ul>\n<li>Remonter (upload) dans l\u2019outil d\u2019analyse de code les r\u00e9sultats des tests et identifier, par exemple, les composants les plus \u2018dangereux\u2019 pour l\u2019application : composants avec une Complexit\u00e9 Cyclomatique (CC) \u00e9lev\u00e9e ou tr\u00e8s \u00e9lev\u00e9e et insuffisamment test\u00e9s. Parce qu\u2019ils sont complexes, ces composants pr\u00e9sentent un risque \u00e9lev\u00e9 d\u2019introduire un d\u00e9faut en cas d\u2019\u00e9volution, et donc doivent \u00eatre test\u00e9s prioritairement.<\/li>\n<li>Descendre (download) dans l\u2019outil de d\u00e9veloppement la liste des corrections \u00e1 effectuer, pour chaque d\u00e9veloppeur.<\/li>\n<\/ul>\n<p>Il s\u2019agit l\u00e1 d\u2019un processus complet d\u2019int\u00e9gration continue, qui suppose des outils compl\u00e8tement int\u00e9gr\u00e9s mais \u00e9galement un niveau de maturit\u00e9 suffisant des \u00e9quipes de d\u00e9veloppement. L\u2019int\u00e9gration est importante afin d\u2019automatiser au mieux les diff\u00e9rentes phases du processus et limiter la charge de travail additionnelle, notamment pour les d\u00e9veloppeurs, et donc faciliter l\u2019acceptation de ce nouveau mode de travail.<\/p>\n<p>Je recommanderais \u00e9galement de commencer avec un nombre limit\u00e9 de m\u00e9triques, afin de ne pas submerger les d\u00e9veloppeurs de bonnes pratiques \u00e1 tol\u00e9rance z\u00e9ro. Il sera possible d\u2019\u00e9largir la cible par la suite, lorsque les d\u00e9veloppeurs auront gravi cette premi\u00e8re marche et adh\u00e9r\u00e9 pleinement \u00e1 cette nouvelle organisation. D\u2019o\u00fa l\u2019importance de disposer d\u2019un outillage compl\u00e8tement int\u00e9gr\u00e9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le post pr\u00e9c\u00e9dent Mesurer et contr\u00f4ler, je disais que les m\u00e9triques quantitatives telles que le nombre de lignes de code (LOC) ou la mesure de la complexit\u00e9 cyclomatique \u00e9taient : facilement disponibles \u2013 tous les outils d\u2019analyse de code les proposent ; exactes \u2013 ces mesures ne varient (presque) pas selon les outils ; [&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-86","post","type-post","status-publish","format-standard","hentry","category-qualite-des-applications"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/86"}],"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=86"}],"version-history":[{"count":2,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":88,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/86\/revisions\/88"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}