{"id":143,"date":"2012-02-01T18:33:42","date_gmt":"2012-02-01T17:33:42","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=143"},"modified":"2013-01-04T18:34:25","modified_gmt":"2013-01-04T17:34:25","slug":"cas-dutilisation-ensemble-et-sans-heurts","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/cas-dutilisation-ensemble-et-sans-heurts\/","title":{"rendered":"Cas d&rsquo;utilisation &#8211; Ensemble et sans heurts"},"content":{"rendered":"<p>Nous avons vu dans les deux posts pr\u00e9c\u00e9dents qu\u2019un certain nombre de cas d\u2019utilisation \u2013 assez fr\u00e9quents \u2013 ne n\u00e9cessitaient qu\u2019un nombre restreint de m\u00e9triques. Ces cas d\u2019utilisation sont les suivants :<\/p>\n<ul>\n<li>Valider la livraison d\u2019une nouvelle version de l\u2019application (Quality Gate).<\/li>\n<li>Disposer de donn\u00e9es objectives pour les SLAs des fournisseurs.<\/li>\n<li>G\u00e9rer les processus d\u2019Int\u00e9gration \/ Am\u00e9lioration continue des \u00e9quipes de d\u00e9veloppement.<\/li>\n<\/ul>\n<p>La question pos\u00e9e en commentaires du premier post est la suivante : quelles sont ces 10 ou 20 m\u00e9triques les plus importantes ? <!--more--><\/p>\n<p>Voyons tout d\u2019abord les cas d\u2019utilisation qui peuvent vous concerner.<\/p>\n<h3><span style=\"text-decoration: underline\">Quality Gate<\/span><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1050\" title=\"QualBeaubourgVicken\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/01\/QualBeaubourgVicken2.jpg\" alt=\"\" width=\"423\" height=\"144\" \/><\/a><\/h3>\n<p>Processus de v\u00e9rification et de validation de la qualit\u00e9 d\u2019une livraison applicative.<\/p>\n<p>Pourquoi ce nom de \u2018Gate\u2019 ?<\/p>\n<p>Parce qu\u2019il s\u2019agit d\u2019une porte entre deux phases, qui laisse passer \u2013 ou non \u2013 les d\u00e9livrables de la phase ant\u00e9rieure \u00e0 la phase suivante.<\/p>\n<p>Nous rencontrerons le plus souvent deux types de Quality Gate :<\/p>\n<ul>\n<li>Pr\u00e9-QA: inutile de perdre du temps (et donc de l\u2019argent) en tests s\u2019il est possible de rencontrer de mani\u00e8re simple et facile des d\u00e9fauts avec une analyse automatique du code source. Et si ces d\u00e9fauts sont trop nombreux, le code fait demi-tour en direction de l\u2019\u00e9quipe de projet pour qu\u2019elle les corrige. On peut mettre en place cette Quality Gate au niveau des \u00e9quipes internes (de d\u00e9veloppement ou de QA) d\u2019un client final ou d\u2019un provider.<\/li>\n<li>Pr\u00e9-production: avec pour objectif de v\u00e9rifier s\u2019il reste des bugs. Vous voulez que vos utilisateurs rencontrent ces bugs ? Bien s\u00fbr que non: le co\u00fbt est trop \u00e9lev\u00e9 pour votre image et celle du d\u00e9partement informatique.<\/li>\n<\/ul>\n<p>Laquelle de ces Quality Gate impl\u00e9menter ? Tout d\u00e9pend du contexte. Si l\u2019application est d\u00e9velopp\u00e9e en interne :<\/p>\n<ul>\n<li>Quality Gate pr\u00e9-QA fortement recommand\u00e9e.<\/li>\n<li>Quality Gate pr\u00e9-production afin de v\u00e9rifier que les corrections de d\u00e9fauts rencontr\u00e9s lors de la QA n\u2019ont pas provoqu\u00e9es de nouvelles \u2018bad practices\u2019.<\/li>\n<\/ul>\n<p>Si l\u2019application est d\u00e9velopp\u00e9e par un provider (Outsourcing) :<\/p>\n<ul>\n<li>Quality Gate pr\u00e9-production obligatoire.<\/li>\n<\/ul>\n<p>Il est souhaitable que le provider poss\u00e8de sa propre QA.<\/p>\n<h3><span style=\"text-decoration: underline\">Integration continue \/ Am\u00e9lioration continue<\/span><\/h3>\n<p>Processus d\u2019analyse de code au niveau des \u00e9quipes de d\u00e9veloppement, afin de d\u00e9tecter les d\u00e9fauts le plus t\u00f4t possible.<\/p>\n<p>Il est souhaitable d\u2019automatiser ce processus afin d\u2019\u00e9viter une charge de travail suppl\u00e9mentaire, ce qui n\u00e9cessite un outillage appropri\u00e9 :<\/p>\n<ul>\n<li>Un outil de gestion de version pour la tra\u00e7abilit\u00e9 des modifications et pouvoir construire une nouvelle version de l\u2019application \u00e0 tout moment.<\/li>\n<li>Un outil de g\u00e9n\u00e9ration de \u2018build\u2019 (compilation) de la version de l\u2019application qui puisse lancer automatiquement une analyse de code. Nous en avons vu un exemple : <a title=\"Permalink to Sonar \u2013 Analyse Cobol avec Jenkins\" href=\"http:\/\/qualilogy.com\/fr\/analyse-de-code-cobol-avec-sonar-et-jenkins\" rel=\"bookmark\" target=\"_blank\">Sonar \u2013 Analyse avec Jenkins<\/a>.<\/li>\n<\/ul>\n<p>Les b\u00e9n\u00e9fices d\u2019un tel processus sont multiples :<\/p>\n<ul>\n<li>Int\u00e9gration continue : correction des d\u00e9fauts au plus t\u00f4t.<\/li>\n<li>Am\u00e9lioration continue : la r\u00e9p\u00e9tition fr\u00e9quente des analyses favorise l\u2019efficacit\u00e9 des \u00e9quipes de projet dans le respect des bonnes pratiques de programmation et d\u2019architecture.<\/li>\n<li>Il est beaucoup plus facile de r\u00e9ussir une Quality Gate.<\/li>\n<\/ul>\n<p>L\u2019\u00e9quipe de projet peut pr\u00e9senter \u00e0 l\u2019\u00e9quipe de QA un rapport avec les r\u00e9sultats de la derni\u00e8re analyse du code source. De nouveau, selon le contexte :<\/p>\n<ul>\n<li>D\u00e9veloppement interne : l\u2019\u00e9quipe de QA peut d\u00e9cider de passer \u00e0 la phase suivante simplement en approuvant le rapport.<\/li>\n<li>Developpement externe : l\u2019\u00e9quipe de QA examine le rapport fourni par le provider. Elle peut d\u00e9cider qu\u2019il reste trop de d\u00e9fauts et demander une nouvelle version de meilleure qualit\u00e9, ce qui n\u00e9cessitera d\u2019ajuster le planning. Ou elle peut approuver le rapport et r\u00e9aliser une Quality Gate dans son propre environnement.<\/li>\n<\/ul>\n<h3><span style=\"text-decoration: underline\">G\u00e9rer les SLAs<\/span><\/h3>\n<p>Un Service Level Agreement (SLA) ou Accord de Niveau de Service est un contrat entre un fournisseur de services (SSII) et son client, ayant pour objectif de d\u00e9finir le niveau de qualit\u00e9 dudit service. La difficult\u00e9 r\u00e9side dans l\u2019obtention de donn\u00e9es fiables et objectives pour mesurer la qualit\u00e9 de l\u2019application et c\u2019est l\u00e0 qu\u2019un outil d\u2019analyse de code se r\u00e9v\u00e8le pr\u00e9cieux.<\/p>\n<p>Le contexte ici est uniquement d\u2019Outsourcing. Bien s\u00fbr, il est possible d\u2019utiliser des SLAs pour mesurer la performance d\u2019\u00e9quipes de projet internes, mais cela ne se rencontre habituellement qu\u2019au niveau d\u2019organisations tr\u00e8s importantes avec de nombreuses \u00e9quipes agissant en mode client-fournisseur comme SSII internes.<\/p>\n<p>Un accord de niveau de service se v\u00e9rifie \u00e0 chaque livraison d\u2019une version applicative avec les r\u00e9sultats de la Quality Gate. Le client peut choisir entre 3 diff\u00e9rentes possibilit\u00e9s, normalement d\u00e9finies dans l&rsquo;accord :<\/p>\n<ul>\n<li>OK : acceptation de la livraison, lorsque tous les objectifs de qualit\u00e9 sont atteints.<\/li>\n<li>OK avec r\u00e9serves : acceptation de la livraison, mais certains objectifs n\u2019ont pas \u00e9t\u00e9 atteints et le fournisseur devra livrer au plus t\u00f4t une nouvelle version avec les corrections demand\u00e9es. Cela arrive fr\u00e9quemment, afin d\u2019\u00e9viter tout retard dans la mise en production de l\u2019application, mais seulement si les d\u00e9fauts restants sont mineurs ou n\u2019impactent pas l\u2019utilisateur final (nous verrons ce point avec les m\u00e9triques qui accompagnent ce processus).<\/li>\n<li>KO : il reste trop de d\u00e9fauts dans la nouvelle version, ou ceux-ci sont trop graves. Rejet de la livraison.<\/li>\n<\/ul>\n<p>Un processus de SLA est conseill\u00e9 pour les clients qui travaillent avec diff\u00e9rents fournisseurs, car il devient possible de r\u00e9aliser un benchmarking de providers, avec pour cons\u00e9quence de cr\u00e9er une certaine \u00e9mulation, pour ne pas dire une franche comp\u00e9tition entre eux. Vous savez, pouvoir dire :    \u00ab Vous \u00eates en derni\u00e8re position dans le ranking de nos fournisseurs \u00bb. Ceci explique pourquoi qu\u2019il n\u2019est pas facile d\u2019imposer quelque chose \u00e0 un provider unique : dans ce cas, le client n\u2019a que peu de poids.<\/p>\n<p>Il est conseill\u00e9 de mettre en marche ces 3 processus afin d\u2019obtenir une meilleure synergie et d\u2019en  maximiser les b\u00e9n\u00e9fices, mais cela d\u00e9pend une nouvelle fois du contexte :<\/p>\n<ul>\n<li>D\u00e9veloppement interne : int\u00e9gration continue fortement recommand\u00e9e, Quality Gate plus simple et moins co\u00fbteuse, pas de SLAs mais les donn\u00e9es en mati\u00e8re de qualit\u00e9 peuvent \u00eatre int\u00e9gr\u00e9es dans un un tableau de bord de pilotage des projets, notamment pour les grands d\u00e9partements informatiques.<\/li>\n<li>Outsourcing : Quality Gate indispensable et SLAs souhaitables. Il est recommand\u00e9 que le provider mette en place un processus d\u2019int\u00e9gration continue au niveau de ses \u00e9quipes.<\/li>\n<\/ul>\n<p>Le b\u00e9n\u00e9fice principal d\u2019un outil d\u2019analyse de code au niveau des SLAs provient des m\u00e9triques de qualit\u00e9, qui permettent d\u2019objectiver et donc de faciliter la relation avec le fournisseur.<\/p>\n<p>Comme tous ces processus fonctionnent ensemble, ils vont s\u2019appuyer sur un \u00e9ventail de m\u00e9triques assez semblables. Nous verrons celles-ci dans notre prochain post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons vu dans les deux posts pr\u00e9c\u00e9dents qu\u2019un certain nombre de cas d\u2019utilisation \u2013 assez fr\u00e9quents \u2013 ne n\u00e9cessitaient qu\u2019un nombre restreint de m\u00e9triques. Ces cas d\u2019utilisation sont les suivants : Valider la livraison d\u2019une nouvelle version de l\u2019application (Quality Gate). Disposer de donn\u00e9es objectives pour les SLAs des fournisseurs. G\u00e9rer les processus d\u2019Int\u00e9gration [&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-143","post","type-post","status-publish","format-standard","hentry","category-qualite-des-applications"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/143"}],"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=143"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/143\/revisions"}],"predecessor-version":[{"id":144,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/143\/revisions\/144"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=143"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}