SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Le contrat agile sur mon super
projet
Par Logilab, le 6 mai 2015
Niveau 0
Qu'est ce qu'on fait là ?
2
Objectif
Logilab aide les partenaires à développer un logiciel
Les partenaires sont représenté par le Comité de Projet (COPROJ) parmi
lesquel figure un Product Owner (PO)
Le logiciel consiste en un truc qui fait ceci et cela afin d'être formidable
“
3
Niveau 1
Ça commence quand ? Ça finit
quand ?
4
Ticket / User Story ?
• Une US est une définition haut-niveau d'un besoin
• Son implémentation est effectuée en une ou plusieurs tâches
mesurables, exprimées par des tickets
• Logilab et le COPROJ définissent ensemble les US et tickets
5
Ticket / User Story
» Les US sont numérotées et décrites dans des tickets du sous-projet "mon-
projet-us"
» Les tickets y sont liés via la relation est une dépendance de
6
Recette ?
• Après une livraison, il faut valider son contenu
• Le contenu a été précédemment défini dans une version, qui contient des
tickets
• La livraison est présentée par Logilab au COPROJ, qui procède ensuite à
sa recette
7
Recette -détail
Un ticket est validé (ou non) par les membres du COPROJ
» Chacun ajoute sur le ticket l'étiquette <login>_okou <login>_ko
» Le COPROJ passe le ticket dans l'état validéou rejetté(avec création
d'un nouveau ticket décrivant les points à revoir / corriger dans ce cas)
Le COPROJ peut également créer des tickets pour les idées / points à discuter
générés par la recette
8
Recette -agenda
• La livraison et sa présentation ont lieu pendant la réunion du mardi du
COPROJ
• Les membres du COPROJ sont alors invités à faire leur recette
individuelle
• Lors de la réunion du vendredi le COPROJ finalise la recette - Logilab ne
fait rien avant et n'est pas censé avoir besoin d'aller repêcher des infos
ailleurs que dans les nouveaux tickets
9
Definition of done?
• Critères objectifs devant être présents pour considérer la tâche ou une
US comme faite
• Contrat entre le développeur et le client, définissant dans l'idéal la
procédure de recette de la fonctionnalité
• Peut être établit par ticket ou par US
10
Definition of done
Logilab et le COPROJ se mettent d'accord sur la définition de fait d'une US ou
d'un ticket
» Le développeur passe le ticket dans l'état fait
» Les membres du COPROJ ajoutent une étiquette <login>_ok
11
Definition of validé
Tous les membres du COPROJ ont effectué leur revue et émis un avis positif
» Lors de la revue finale le COPROJ passe le ticket dans l'état validé
12
Niveau 2
Comment on fait ?
13
Backlog?
• Le backlog constitue la réserve de choses à faire, au cas où on
manquerait...
• Il est constitué d'US prêtes et d'autres plus ou moins bien définies
• Il est bon d'avoir une ou deux itérations de tickets/US prêtes en stock
14
Backlog
Logilab et le COPROJ alimentent en continue le backlog
Des ateliers peuvent être dédiés au travail sur le backlog
» Le backlog est constitué de l'ensemble des tickets dans l'état ouvertet
non affectés à une version
15
Definition of ready?
• Un ticket est prêt quand le périmètre fonctionnel et la définition de fait
sont assez clairement définis pour que Logilab fasse une estimation du
coût - et que c'est fait !
• Une US est prête quand l'ensemble des tickets qui la constituent sont
prêts
16
Definition of ready
Logilab et le COPROJ décident quand une US ou un ticket est prêt
» On ajoute l'étiquette readyà l'US ou au ticket
17
Sprint Planning?
• Avant le lancement du sprint d'une itération, il faut décider de son
contenu
• On sélectionne parmi les tickets prêts, selon un volume spécifié par
Logilab
18
Sprint Planning
Logilab crée une version correpondante à l'itération
» Logilab et le COPROJ sélectionnent ensemble les tickets parmi ceux avec
l'étiquette readydu backlog en les affectant à la version correspondante
19
Estimation
• Logilab évalue le coût en indice de difficulté : étiquettes size_S(1),
size_M(2), size_L(3), size_XL(5) et size_XXL(8)
• Logilab calcule en fin d'itération la vélocité en fonction du volume de
jours consommés et du nombre de tickets faits (voir les coefficients entre
parenthèses)
• Logilab pourra ainsi estimer le volume sur lequel s'engager à la
prochaine itération en fonction du volume de jours disponibles estimé
20
Sprint
• Logilab travaille à l'implémentation pendant 3 semaines consécutives
• Le PO reste à disposition pour répondre à d'éventuelles demande de
précisions
• Chaque sprint est suivi d'une semaine de recette
• Logilab reste à disposition pour répondre aux questions et corriger
d'éventuels problèmes bloquants
21
Gestion des commandes
• Lors du sprint planning, Logilab fournit le nombre de jours consommés
lors de l'itération précédente et une estimation du nombre de jours
disponibles pour l'itérations à venir (par poste)
• Une commande est passée sur la base de l'estimation et du nombre de
jours à rattraper sur l'itération précédente (positif ou négatif)
22
Suivi
Logilab fait voeux de transparence !
» État fait ou non d'un ticket
» Indicateur d'avancement de la version
» Indicateur de consommation de la commande
» Visibilité des développements
» Réunion de suivi hebdomadaire
23
Niveau 3
On oublie rien ?
24
Environnement de démonstration
Description précise de l'environnement de démonstration : version des
différents composants, configuration du serveur et qui l'héberge
25
Environnement de validation
Description précise de l'environnement de validation : version des
différents composants, configuration du serveur et qui l'héberge
26
Livrable
Description précise des livrables et des moyens de mise à disposition
27
Livraison
• La version passe dans l'état publié
• tag dans l'entrepôt de code source
• Mise à disposition des livrables : code source uniquement tant que
l'environnement de production n'est pas défini
• Installation dans l'environnement de démonstration
• Mise à disposition des livrables
28
Cycle
• Sprint ponctué par une présentation de la livraison le mardi
• Recette par les membres du COPROJ jusqu'au vendredi, où il valide la
livraison et décide des grandes lignes de l'itération suivante
• Le lundi, Logilab et le PO préparent le backlog pour l'itération suivante
• Sprint planning de l'itération suivante sur site le mardi après-midi
suivant
• C'est reparti !
29
Évènements particuliers
• Rétrospectives : on fait le point sur une période de temps passé
(réunion, itération(s)...) afin de voir ce qui s'est bien et mal passé et agir
en conséquence par la suite
• Ateliers de travail : on discute de points particuliers nécessitant un peu
plus de temps / concentration (éléments du modèle de données,
alimentation du backlog, etc.)
• Jalon : on se met d'accord sur un objectif à viser à moyen terme (5 / 6
mois)
30
Exemple contrat agile

Contenu connexe

Plus de Logilab

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017Logilab
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsLogilab
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open DataLogilab
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsLogilab
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation LogilabLogilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualiséLogilab
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerLogilab
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Logilab
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielLogilab
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du BourgetLogilab
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Logilab
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraLogilab
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Logilab
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebLogilab
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauLogilab
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Logilab
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)Logilab
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Logilab
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxLogilab
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...Logilab
 

Plus de Logilab (20)

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communs
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open Data
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instruments
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation Logilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualisé
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou docker
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industriel
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du Bourget
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - Cubicweb
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieux
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
 

Exemple contrat agile

  • 1. Le contrat agile sur mon super projet Par Logilab, le 6 mai 2015
  • 2. Niveau 0 Qu'est ce qu'on fait là ? 2
  • 3. Objectif Logilab aide les partenaires à développer un logiciel Les partenaires sont représenté par le Comité de Projet (COPROJ) parmi lesquel figure un Product Owner (PO) Le logiciel consiste en un truc qui fait ceci et cela afin d'être formidable “ 3
  • 4. Niveau 1 Ça commence quand ? Ça finit quand ? 4
  • 5. Ticket / User Story ? • Une US est une définition haut-niveau d'un besoin • Son implémentation est effectuée en une ou plusieurs tâches mesurables, exprimées par des tickets • Logilab et le COPROJ définissent ensemble les US et tickets 5
  • 6. Ticket / User Story » Les US sont numérotées et décrites dans des tickets du sous-projet "mon- projet-us" » Les tickets y sont liés via la relation est une dépendance de 6
  • 7. Recette ? • Après une livraison, il faut valider son contenu • Le contenu a été précédemment défini dans une version, qui contient des tickets • La livraison est présentée par Logilab au COPROJ, qui procède ensuite à sa recette 7
  • 8. Recette -détail Un ticket est validé (ou non) par les membres du COPROJ » Chacun ajoute sur le ticket l'étiquette <login>_okou <login>_ko » Le COPROJ passe le ticket dans l'état validéou rejetté(avec création d'un nouveau ticket décrivant les points à revoir / corriger dans ce cas) Le COPROJ peut également créer des tickets pour les idées / points à discuter générés par la recette 8
  • 9. Recette -agenda • La livraison et sa présentation ont lieu pendant la réunion du mardi du COPROJ • Les membres du COPROJ sont alors invités à faire leur recette individuelle • Lors de la réunion du vendredi le COPROJ finalise la recette - Logilab ne fait rien avant et n'est pas censé avoir besoin d'aller repêcher des infos ailleurs que dans les nouveaux tickets 9
  • 10. Definition of done? • Critères objectifs devant être présents pour considérer la tâche ou une US comme faite • Contrat entre le développeur et le client, définissant dans l'idéal la procédure de recette de la fonctionnalité • Peut être établit par ticket ou par US 10
  • 11. Definition of done Logilab et le COPROJ se mettent d'accord sur la définition de fait d'une US ou d'un ticket » Le développeur passe le ticket dans l'état fait » Les membres du COPROJ ajoutent une étiquette <login>_ok 11
  • 12. Definition of validé Tous les membres du COPROJ ont effectué leur revue et émis un avis positif » Lors de la revue finale le COPROJ passe le ticket dans l'état validé 12
  • 13. Niveau 2 Comment on fait ? 13
  • 14. Backlog? • Le backlog constitue la réserve de choses à faire, au cas où on manquerait... • Il est constitué d'US prêtes et d'autres plus ou moins bien définies • Il est bon d'avoir une ou deux itérations de tickets/US prêtes en stock 14
  • 15. Backlog Logilab et le COPROJ alimentent en continue le backlog Des ateliers peuvent être dédiés au travail sur le backlog » Le backlog est constitué de l'ensemble des tickets dans l'état ouvertet non affectés à une version 15
  • 16. Definition of ready? • Un ticket est prêt quand le périmètre fonctionnel et la définition de fait sont assez clairement définis pour que Logilab fasse une estimation du coût - et que c'est fait ! • Une US est prête quand l'ensemble des tickets qui la constituent sont prêts 16
  • 17. Definition of ready Logilab et le COPROJ décident quand une US ou un ticket est prêt » On ajoute l'étiquette readyà l'US ou au ticket 17
  • 18. Sprint Planning? • Avant le lancement du sprint d'une itération, il faut décider de son contenu • On sélectionne parmi les tickets prêts, selon un volume spécifié par Logilab 18
  • 19. Sprint Planning Logilab crée une version correpondante à l'itération » Logilab et le COPROJ sélectionnent ensemble les tickets parmi ceux avec l'étiquette readydu backlog en les affectant à la version correspondante 19
  • 20. Estimation • Logilab évalue le coût en indice de difficulté : étiquettes size_S(1), size_M(2), size_L(3), size_XL(5) et size_XXL(8) • Logilab calcule en fin d'itération la vélocité en fonction du volume de jours consommés et du nombre de tickets faits (voir les coefficients entre parenthèses) • Logilab pourra ainsi estimer le volume sur lequel s'engager à la prochaine itération en fonction du volume de jours disponibles estimé 20
  • 21. Sprint • Logilab travaille à l'implémentation pendant 3 semaines consécutives • Le PO reste à disposition pour répondre à d'éventuelles demande de précisions • Chaque sprint est suivi d'une semaine de recette • Logilab reste à disposition pour répondre aux questions et corriger d'éventuels problèmes bloquants 21
  • 22. Gestion des commandes • Lors du sprint planning, Logilab fournit le nombre de jours consommés lors de l'itération précédente et une estimation du nombre de jours disponibles pour l'itérations à venir (par poste) • Une commande est passée sur la base de l'estimation et du nombre de jours à rattraper sur l'itération précédente (positif ou négatif) 22
  • 23. Suivi Logilab fait voeux de transparence ! » État fait ou non d'un ticket » Indicateur d'avancement de la version » Indicateur de consommation de la commande » Visibilité des développements » Réunion de suivi hebdomadaire 23
  • 24. Niveau 3 On oublie rien ? 24
  • 25. Environnement de démonstration Description précise de l'environnement de démonstration : version des différents composants, configuration du serveur et qui l'héberge 25
  • 26. Environnement de validation Description précise de l'environnement de validation : version des différents composants, configuration du serveur et qui l'héberge 26
  • 27. Livrable Description précise des livrables et des moyens de mise à disposition 27
  • 28. Livraison • La version passe dans l'état publié • tag dans l'entrepôt de code source • Mise à disposition des livrables : code source uniquement tant que l'environnement de production n'est pas défini • Installation dans l'environnement de démonstration • Mise à disposition des livrables 28
  • 29. Cycle • Sprint ponctué par une présentation de la livraison le mardi • Recette par les membres du COPROJ jusqu'au vendredi, où il valide la livraison et décide des grandes lignes de l'itération suivante • Le lundi, Logilab et le PO préparent le backlog pour l'itération suivante • Sprint planning de l'itération suivante sur site le mardi après-midi suivant • C'est reparti ! 29
  • 30. Évènements particuliers • Rétrospectives : on fait le point sur une période de temps passé (réunion, itération(s)...) afin de voir ce qui s'est bien et mal passé et agir en conséquence par la suite • Ateliers de travail : on discute de points particuliers nécessitant un peu plus de temps / concentration (éléments du modèle de données, alimentation du backlog, etc.) • Jalon : on se met d'accord sur un objectif à viser à moyen terme (5 / 6 mois) 30