{"id":366,"date":"2023-10-16T22:05:21","date_gmt":"2023-10-16T20:05:21","guid":{"rendered":"https:\/\/blog.twentyeight.be\/fr\/?p=366"},"modified":"2023-11-14T14:22:00","modified_gmt":"2023-11-14T13:22:00","slug":"__trashed","status":"publish","type":"post","link":"https:\/\/blog.twentyeight.be\/fr\/2023\/10\/16\/__trashed\/","title":{"rendered":"L&rsquo;\u00e9l\u00e9ment de backlog"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Qu&rsquo;est-ce qu&rsquo;un \u00e9l\u00e9ment de backlog?<\/h2>\n\n\n\n<p>Anciennement appel\u00e9 PBI pour Product Backlog Item, la version 2020 de scrum parle d&rsquo;\u00e9l\u00e9ment de backlog (Backlog element). Nous parlons \u00e9galement de ticket, parfois de t\u00e2che, et par abus de langage, \u00ab\u00a0User Story\u00a0\u00bb.<\/p>\n\n\n\n<p>Un \u00e9l\u00e9ment de backlog est \u00e9galement:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>l&rsquo;expression d&rsquo;un besoin utilisateur<\/li>\n\n\n\n<li>Une description du produit<\/li>\n\n\n\n<li>Un \u00e9l\u00e9ment de planification<\/li>\n\n\n\n<li>Un support \u00e0 l&rsquo;\u00e9change (3c)<\/li>\n\n\n\n<li>Un m\u00e9canisme pour retarder la conversation (pour qu&rsquo;elle soit faite au bon moment, pas pour l&rsquo;\u00e9viter)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Les diff\u00e9rents \u00e9l\u00e9ments de backlog<\/h3>\n\n\n\n<p>Liste non exhaustive d&rsquo;\u00e9l\u00e9ments que nous pouvons trouver dans un backlog<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Theme<\/li>\n\n\n\n<li>\u00c9pic (Epic \/ feature)<\/li>\n\n\n\n<li>Histoire utilisateur (User story)<\/li>\n\n\n\n<li>Demande m\u00e9tier (Business requirement)<\/li>\n\n\n\n<li>T\u00e2che (Task)<\/li>\n\n\n\n<li>Activateur (Enabler)<\/li>\n\n\n\n<li>Sous t\u00e2che (sub task)<\/li>\n\n\n\n<li>Spike (et l\u00e0, je n&rsquo;ai pas la version fran\u00e7aise).<\/li>\n\n\n\n<li>Dysfonctionnement (Bug)<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size\">Le d\u00e9tail de ces \u00e9l\u00e9ments fera probablement l&rsquo;objet d&rsquo;un article dans le futur)<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"wp-block-uagb-info-box uagb-block-9b7b9858 uagb-infobox__content-wrap  uagb-infobox-icon-left-title uagb-infobox-left uagb-infobox-image-valign-top\"><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-left-title-image\"><div class=\"uagb-ifb-icon-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 192 512\"><path d=\"M160 448h-32V224c0-17.69-14.33-32-32-32L32 192c-17.67 0-32 14.31-32 32s14.33 31.1 32 31.1h32v192H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32S177.7 448 160 448zM96 128c26.51 0 48-21.49 48-48S122.5 32.01 96 32.01s-48 21.49-48 48S69.49 128 96 128z\"><\/path><\/svg><\/div><div class=\"uagb-ifb-title-wrap\"><h3 class=\"uagb-ifb-title\">Histoire utilisateur<\/h3><\/div><\/div><p class=\"uagb-ifb-desc\">Contrairement \u00e0 la croyance populaire, le r\u00e9cit utilisateur \/ User Story n&rsquo;est pas originaire de scrum, mais bien de l\u2019extr\u00eame programming (XP).<\/p><\/div><\/div>\n<cite>Merci <a href=\"https:\/\/miro.com\/app\/board\/uXjVO6PkpZU=\/?moveToWidget=3458764524137049952&amp;cot=14\">Ken Beck<\/a><\/cite><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Que dit le guide<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>L&rsquo;affinement du Product Backlog consiste \u00e0 d\u00e9composer et \u00e0 d\u00e9finir davantage les \u00e9l\u00e9ments du Backlog en \u00e9l\u00e9ments plus fins et plus pr\u00e9cis. Il s&rsquo;agit d&rsquo;une activit\u00e9 continue visant \u00e0 ajouter des d\u00e9tails, tels qu&rsquo;une description, un ordre et une taille. Les attributs varient souvent en fonction du domaine d\u2019activit\u00e9.<\/p>\n<cite><a href=\"https:\/\/scrumguides.org\/\" data-type=\"link\" data-id=\"https:\/\/scrumguides.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Scrum guide 2020<\/a><\/cite><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Ce que j&rsquo;en d\u00e9duis:<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pour une nouvelle demande, nous pourrions avoir:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un titre<\/li>\n\n\n\n<li>Une description<\/li>\n\n\n\n<li>Une taille<\/li>\n\n\n\n<li>Une valeur m\u00e9tier.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pour un bug:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Titre<\/li>\n\n\n\n<li>Description<\/li>\n\n\n\n<li>Reproduction Steps<\/li>\n<\/ul>\n\n\n\n<p>Dans tous les cas, l&rsquo;item doit \u00eatre suffisamment petit pour \u00eatre \u00ab\u00a0done\u00a0\u00bb en un sprint (\u00e9ventuellement d\u00e9velopp\u00e9 par plusieurs personnes).<\/p>\n\n\n\n<p>L&rsquo;item doit \u00eatre suffisamment d\u00e9crit et compris par l&rsquo;ensemble de l&rsquo;\u00e9quipe. Donc, l&rsquo;item en lui-m\u00eame n&rsquo;est pas suffisant, le contenu doit faire l&rsquo;objet d&rsquo;une discussion avec les membres de l&rsquo;\u00e9quipe.<br>La taille maximum de l&rsquo;item est donc relative \u00e0 la longueur du sprint. Gardons \u00e0 l&rsquo;esprit qu&rsquo;avoir un \u00e9l\u00e9ment qui prend tout le sprint n&rsquo;est absolument pas une bonne pratique.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Proposition de structure<\/h2>\n\n\n\n<p>Je compte ici m&rsquo;attarder sur le Bug et la demande de fonctionnalit\u00e9 (nouveaut\u00e9 ou changement)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un titre<\/h3>\n\n\n\n<p>Une petite phrase simple qui correspond \u00e0 ce qui est demand\u00e9 et permet de distinguer les tickets ais\u00e9ment dans une liste.<br>Ce titre doit avoir du sens, c&rsquo;est un peu comme le titre d&rsquo;un livre, d&rsquo;une histoire, il d\u00e9crit l&rsquo;activit\u00e9 qui sera cr\u00e9\u00e9e.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Une description<\/h3>\n\n\n\n<p>Elle est exprim\u00e9e sous forme d&rsquo;histoire utilisateur \/ narration<br><em>\u00ab\u00a0En tant que {role} je souhaite {une fonctionnalit\u00e9} afin de {un b\u00e9n\u00e9fice}\u00a0\u00bb<\/em>, et\/ou sous forme de texte.<br>C&rsquo;est d&rsquo;ici que tout part, c&rsquo;est sur cette base que l&rsquo;\u00e9quipe va avoir une conversation et estimer le travail \u00e0 faire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Une estimation<\/h3>\n\n\n\n<p>L&rsquo;estimation est une mani\u00e8re de repr\u00e9senter la charge n\u00e9cessaire \u00e0 la r\u00e9alisation d&rsquo;un item pour arriver au r\u00e9sultat demand\u00e9.<\/p>\n\n\n\n<p>Pour ce qui est du bug, il n&rsquo;est estimable que lorsqu&rsquo;il est bien compris, et donc que la majorit\u00e9 de la complexit\u00e9 est r\u00e9solue. Un bug n&rsquo;est donc pas toujours estimable.<\/p>\n\n\n\n<p class=\"has-small-font-size\"><a href=\"https:\/\/blog.twentyeight.be\/fr\/2022\/12\/21\/les-estimations\/\" data-type=\"post\" data-id=\"121\">Plus d&rsquo;information sur les estimations<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Des crit\u00e8res d&rsquo;acceptation<\/h3>\n\n\n\n<p>Beaucoup plus utile pour le d\u00e9veloppement d&rsquo;une fonctionnalit\u00e9, mais peuvent \u00e9galement \u00eatre repris pour un bug, apr\u00e8s tout, ce sont certainement des choses qui \u00e9taient demand\u00e9es dans le ticket d&rsquo;origine et qui ne sont plus respect\u00e9e.<\/p>\n\n\n\n<p>Les crit\u00e8res d&rsquo;acceptation sont un ensemble de crit\u00e8res d\u00e9crits du point de vue de l&rsquo;utilisateur (persona \/ machine), afin de d\u00e9terminer si une histoire utilisateur est finie (done) et fonctionne comme pr\u00e9vu.<br>Donc, un ensemble d&rsquo;exigences qu&rsquo;un ticket doit satisfaire pour \u00eatre consid\u00e9r\u00e9 comme done.<br>Ils sont uniques pour chaque ticket.<\/p>\n\n\n\n<p>Bien entendu, ils vont arriver au fur et \u00e0 mesure que la story se cr\u00e9e et se pr\u00e9cise. Ils changeront donc potentiellement jusqu&rsquo;\u00e0 ce que le ticket acc\u00e8de au statut de \u00ab\u00a0ready\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"has-small-font-size\"><a href=\"https:\/\/blog.twentyeight.be\/fr\/2022\/12\/20\/les-criteres-dacceptation\/\" data-type=\"post\" data-id=\"78\">Plus d&rsquo;information sur les crit\u00e8res d&rsquo;acceptation<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tests cases<\/h3>\n\n\n\n<p>Bas\u00e9 sur les crit\u00e8res d&rsquo;acceptation pour le Happy et cr\u00e9\u00e9 de toute pi\u00e8ce pour le unhappy flow, ils vont aider le codeur \u00e0 g\u00e9rer directement tous les cas possibles et orienter au mieux l&rsquo;utilisateur du syst\u00e8me quand il sort du chemin attendu.<br>La pr\u00e9sence des tests case avant le d\u00e9veloppement participe \u00e0 la qualit\u00e9 du produit et \u00e0 un d\u00e9veloppement plus rapide, car ils vont \u00e9viter des aller-retour.<br>Nous parlons ici d&rsquo;un shift left des tests.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">R\u00e9solution technique<\/h3>\n\n\n\n<p>Le r\u00e9sultat des conversations entre les dev pour r\u00e9aliser l&rsquo;item. Ceci aide \u00e0 \u00e9tablir le plan n\u00e9cessaire \u00e0 tous les sprints. Ceci est \u00e9galement n\u00e9cessaire quand le dev en charge de l&rsquo;analyse technique n&rsquo;est pas la personne qui d\u00e9veloppera effectivement la fonctionnalit\u00e9.<\/p>\n\n\n\n<p class=\"has-small-font-size\">Pour rappelle, l&rsquo;output d&rsquo;un sprint sont l&rsquo;objectif de sprint, le contenu du sprint et un plan de r\u00e9alisation du dit contenu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Des liens<\/h3>\n\n\n\n<p>Et oui, il est peu probable que ce ticket ne soit pas li\u00e9 \u00e0 un autre de l&rsquo;application, il ajoute une fonctionnalit\u00e9 accessible depuis telle partie de l&rsquo;application, il am\u00e9liore telle autre, c&rsquo;est la version 1 de tel \u00ab\u00a0truc\u00a0\u00bb &#8230;<br>Il est \u00e9galement possible que ce ticket soit le r\u00e9sultat de la d\u00e9coupe d&rsquo;un plus gros, et donc, bien entendu, le tout est li\u00e9.<\/p>\n\n\n\n<p>C&rsquo;est d&rsquo;autant plus important pour un bug qui cherche \u00e0 r\u00e9cup\u00e9rer la valeur perdue (puisque \u00e7a ne fonctionne pas) d&rsquo;un \u00e9l\u00e9ment du backlog.<\/p>\n\n\n\n<p>Et enfin, \u00e7a ajoute du contexte \u00e0 ce qui doit \u00eatre d\u00e9velopp\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Des documents<\/h3>\n\n\n\n<p>Un graphique eml, un document technique, une maquette, la liste des composants d\u00e9j\u00e0 cr\u00e9\u00e9s \u00e0 r\u00e9utiliser, une r\u00e9f\u00e9rence vers un wiki, peut importe, tout ce qui aide \u00e0 la r\u00e9alisation du ticket.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-uagb-info-box uagb-block-9282c10f uagb-infobox__content-wrap  uagb-infobox-icon-above-title uagb-infobox-image-valign-top\"><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-icon-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M240.5 224H352C365.3 224 377.3 232.3 381.1 244.7C386.6 257.2 383.1 271.3 373.1 280.1L117.1 504.1C105.8 513.9 89.27 514.7 77.19 505.9C65.1 497.1 60.7 481.1 66.59 467.4L143.5 288H31.1C18.67 288 6.733 279.7 2.044 267.3C-2.645 254.8 .8944 240.7 10.93 231.9L266.9 7.918C278.2-1.92 294.7-2.669 306.8 6.114C318.9 14.9 323.3 30.87 317.4 44.61L240.5 224z\"><\/path><\/svg><\/div><div class=\"uagb-ifb-title-wrap\"><h3 class=\"uagb-ifb-title\">Attention<\/h3><\/div><p class=\"uagb-ifb-desc\">Si vous mettez un lien vers un document et non le document lui-m\u00eame, le syst\u00e8me de backlog (jira, azure, &#8230;) ne va pas traquer la modification, de plus si vous faites \u00e9voluer la cible du lien pour des r\u00e9alisations futures, mais que l&rsquo;\u00e9l\u00e9ment de backlog n&rsquo;est pas encore r\u00e9alis\u00e9 (done), vous allez vous retrouver avec un d\u00e9phasage. Le corolaire est \u00e9galement ennuyant, quand vous devez utiliser le m\u00eame document pour plusieurs tickets, vous devez les changer dans tous ces tickets &#8230;<\/p><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pour conclure<\/h2>\n\n\n\n<p>Tous les \u00e9l\u00e9ments de backlog sont \u00e0 contextualiser \u00e0 leur fonction (histoire utilisateur, bug &#8230;), les attributs changeront donc sensiblement.<\/p>\n\n\n\n<p>Chaque \u00e9quipe doit \u00e9tablir son propre mod\u00e8le, sa liste d&rsquo;attribut par type d&rsquo;\u00e9l\u00e9ment de backlog.<\/p>\n\n\n\n<p><strong>Last but not least<\/strong>, il ne faut pas remplir un attribut parce qu&rsquo;il existe, si il n&rsquo;y a pas de plus value, ignorons le. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Construire mes \u00e9l\u00e9ments de backlog<\/h2>\n\n\n\n<p>Voici un <a href=\"https:\/\/blog.twentyeight.be\/fr\/category\/atelier\/\" data-type=\"category\" data-id=\"3\">atelier<\/a> pour d\u00e9terminer avec ton \u00e9quipe ce qui est n\u00e9cessaire dans vos \u00e9l\u00e9ments de backlog.<br><a href=\"https:\/\/blog.twentyeight.be\/fr\/2023\/10\/26\/que-mettre-dans-un-element-de-backlog\/\" data-type=\"post\" data-id=\"357\">Que mettre dans un \u00e9l\u00e9ment de backlog<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un \u00e9l\u00e9ment de backlog est compos\u00e9 de tout ce qui est n\u00e9cessaire \u00e0 sa r\u00e9alisation<\/p>\n","protected":false},"author":1,"featured_media":380,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[4],"tags":[],"class_list":["post-366","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-theorie"],"uagb_featured_image_src":{"full":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier.jpg",1000,560,false],"thumbnail":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier-150x150.jpg",150,150,true],"medium":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier-300x168.jpg",300,168,true],"medium_large":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier-768x430.jpg",640,358,true],"large":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier.jpg",640,358,false],"1536x1536":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier.jpg",1000,560,false],"2048x2048":["https:\/\/blog.twentyeight.be\/fr\/wp-content\/uploads\/sites\/2\/2023\/10\/backlog_papier.jpg",1000,560,false]},"uagb_author_info":{"display_name":"pierre","author_link":"https:\/\/blog.twentyeight.be\/fr\/author\/pierre\/"},"uagb_comment_info":3,"uagb_excerpt":"Un \u00e9l\u00e9ment de backlog est compos\u00e9 de tout ce qui est n\u00e9cessaire \u00e0 sa r\u00e9alisation","_links":{"self":[{"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/posts\/366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/comments?post=366"}],"version-history":[{"count":18,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/posts\/366\/revisions"}],"predecessor-version":[{"id":443,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/posts\/366\/revisions\/443"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/media\/380"}],"wp:attachment":[{"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/media?parent=366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/categories?post=366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.twentyeight.be\/fr\/wp-json\/wp\/v2\/tags?post=366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}