Améliorer l'implémentation du feature flippingDorra BARTAGUIZ
Vous utilisez peut-être le feature flipping dans vos projets et vous considérez cette technique indispensable.
Mais les devs s'arrachent les cheveux à la moindre évolution avec toutes les combinaisons de feature flips à gérer. Tout ça combiné fait que le feature flipping devient dur à maintenir voire détesté par les devs.
On finit par avoir des if/else envahissants dans le code, sans prendre le temps de faire le ménage pour éliminer les feature flips devenus inutiles.
Je vous propose d'autres alternatives au feature flipping traditionnel, comme une priorisation différente, un design par l'injection ou un design pour un slicing plus malin.
Retour sur les conférences du BreizhCamp, l'événement tech rennais annuel.
Alexandre, Antonin, Olivier et Pierre nous présentent quelques sujets choisis. Des sujets techniques qu'ils souhaitent nous faire partager, ceux qui leurs donnent des idées à mettre en place et à creuser ou tout simplement des sujets qui les ont particulièrement marqués :
- Urbaniser un SI pour 10 ans
- Les bases du Service Mesh
- Arch Unit, le test unitaire de l'architecture
- Fast API, aperçu du framework python
- OAuth 2.1 : Principes et nouveautés
- Rust : Pourquoi l'envisager ?
- REX Lean : Créer un SaaS et être rentable en 6 mois
- Retour sur la Keynote Sécurité
- La théorie de la vitre brisée appliquée à nos métiers
Améliorer l'implémentation du feature flippingDorra BARTAGUIZ
Vous utilisez peut-être le feature flipping dans vos projets et vous considérez cette technique indispensable.
Mais les devs s'arrachent les cheveux à la moindre évolution avec toutes les combinaisons de feature flips à gérer. Tout ça combiné fait que le feature flipping devient dur à maintenir voire détesté par les devs.
On finit par avoir des if/else envahissants dans le code, sans prendre le temps de faire le ménage pour éliminer les feature flips devenus inutiles.
Je vous propose d'autres alternatives au feature flipping traditionnel, comme une priorisation différente, un design par l'injection ou un design pour un slicing plus malin.
Retour sur les conférences du BreizhCamp, l'événement tech rennais annuel.
Alexandre, Antonin, Olivier et Pierre nous présentent quelques sujets choisis. Des sujets techniques qu'ils souhaitent nous faire partager, ceux qui leurs donnent des idées à mettre en place et à creuser ou tout simplement des sujets qui les ont particulièrement marqués :
- Urbaniser un SI pour 10 ans
- Les bases du Service Mesh
- Arch Unit, le test unitaire de l'architecture
- Fast API, aperçu du framework python
- OAuth 2.1 : Principes et nouveautés
- Rust : Pourquoi l'envisager ?
- REX Lean : Créer un SaaS et être rentable en 6 mois
- Retour sur la Keynote Sécurité
- La théorie de la vitre brisée appliquée à nos métiers
Vous entendez partout parler d'agilité, de Scrum, de PO et ... vous en venez à vous demander si on parle d'un jeu de rôle ou d'une compétition de gymnastique !
Les méthodes agiles révolutionnent la gestion de projet. Fini le célèbre cycle en V ou il convient de définir précisément au début d'un projet ce que sera le produit final (alors qu'on ne connait justement pas encore les usages!). Avec les méthodes agiles vous travaillez par petits cycles en lien fort avec l'utilisateur final pour lui créer un produit utile et opérationnel.
http://www.openska.com/
Venez profiter de l'expertise de l'un des experts Scrum de MyAgile Partner qui donne les formations Scrum d'Openska. Venez échanger le 27 Avril dans les locaux d'Openska, en face du futur plus grand incubateur Européen: Station f.
Présentation de l'Agilité, conférence au Cara le 5 septembre 2017, à Lyon.
Introduction aux Scrum, Kanban, Lean Startup, Définition des Rôles Scrum Product Owner, Scrum Master, des cérémonies Daily Meeting, Démonstration, Product Backlog, Sprint, Coach, User Stories, Sprint Backlog, Increment, Sprint review, retrospective, sprint planning
Présentation effectuée par Charles-André Bouchard, dans le cadre du cours LOG3000 conduit par Mathieu Lavallée, à Polytechnique, mardi le 22 novembre 2016.
Agile Tour Bordeaux - Octobre 2012 - Des mots, des maux ? Demo !Caroline Damour-Nobi
Session présentée avec Emilie Franchomme lors de l'Agile Tour Bordeaux en octobre 2012 : les facettes de la revue de sprint.
Une version avec les commentaires des diapos accessibles est disponible sur Google Drive
https://docs.google.com/presentation/pub?id=159kHS33Dh454HW8Efy1C7HOQXFPEoxwlnBbS1s6gK1A&start=false&loop=false&delayms=3000
Les slides de mon talk à la Kiwiparty 2014 sur la logique Responsive : comment appréhender les différentes problématiques que pose le Responsive Design tout en conservant une bonne maintenabilité
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesFrederic Leger
Slides du meetup du 08/12/17 montrant un workflow d'intégration et déploiement continue basé sur gitlab et les nouvelles fonctionnalités autodevops intégrées depuis la version 10.0
This presentation is devided in 3 major topics:
1. Overview of IT projects over the world
2. Reminder about Agile contexte and principales
3. presentation of Scrum Framework and practices (Roles, artefacts and ceremonials).
http://chtijug.org/session-spring-batch-avec-ekino-le-29-novembre/
Nous avons le plaisir de vous annoncer que la prochaine session du Ch’ti JUG est prévue le 29 novembre 2011. Elle aura lieu à l’IUT A de Lille 1, boulevard Paul Langevin, à Villeneuve d’Ascq. Plan d’accès
Le thème de cette session est Spring Batch : un framework pour implémenter des traitements de masse en Java.
Cette présentation sera animée par Olivier Bazoud / @obazoud et Julien Jakubowski / @jak78.
Cette session est rendue possible grâce à Ekino / @3k1no.
Les données transitoires (transients) vous veulent du bienBoiteaweb
Je parle bien sûr des transients, cette fameuse API qui ne vous veut que du bien. Voyons des cas concrets d’utilisation pour réduire les requêtes distances et ainsi gagner en performances de temps de chargement. L’auditoire apprendra à utiliser l’API “transient” de WordPress dans le but dé gagner en performances.
Vous entendez partout parler d'agilité, de Scrum, de PO et ... vous en venez à vous demander si on parle d'un jeu de rôle ou d'une compétition de gymnastique !
Les méthodes agiles révolutionnent la gestion de projet. Fini le célèbre cycle en V ou il convient de définir précisément au début d'un projet ce que sera le produit final (alors qu'on ne connait justement pas encore les usages!). Avec les méthodes agiles vous travaillez par petits cycles en lien fort avec l'utilisateur final pour lui créer un produit utile et opérationnel.
http://www.openska.com/
Venez profiter de l'expertise de l'un des experts Scrum de MyAgile Partner qui donne les formations Scrum d'Openska. Venez échanger le 27 Avril dans les locaux d'Openska, en face du futur plus grand incubateur Européen: Station f.
Présentation de l'Agilité, conférence au Cara le 5 septembre 2017, à Lyon.
Introduction aux Scrum, Kanban, Lean Startup, Définition des Rôles Scrum Product Owner, Scrum Master, des cérémonies Daily Meeting, Démonstration, Product Backlog, Sprint, Coach, User Stories, Sprint Backlog, Increment, Sprint review, retrospective, sprint planning
Présentation effectuée par Charles-André Bouchard, dans le cadre du cours LOG3000 conduit par Mathieu Lavallée, à Polytechnique, mardi le 22 novembre 2016.
Agile Tour Bordeaux - Octobre 2012 - Des mots, des maux ? Demo !Caroline Damour-Nobi
Session présentée avec Emilie Franchomme lors de l'Agile Tour Bordeaux en octobre 2012 : les facettes de la revue de sprint.
Une version avec les commentaires des diapos accessibles est disponible sur Google Drive
https://docs.google.com/presentation/pub?id=159kHS33Dh454HW8Efy1C7HOQXFPEoxwlnBbS1s6gK1A&start=false&loop=false&delayms=3000
Les slides de mon talk à la Kiwiparty 2014 sur la logique Responsive : comment appréhender les différentes problématiques que pose le Responsive Design tout en conservant une bonne maintenabilité
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesFrederic Leger
Slides du meetup du 08/12/17 montrant un workflow d'intégration et déploiement continue basé sur gitlab et les nouvelles fonctionnalités autodevops intégrées depuis la version 10.0
This presentation is devided in 3 major topics:
1. Overview of IT projects over the world
2. Reminder about Agile contexte and principales
3. presentation of Scrum Framework and practices (Roles, artefacts and ceremonials).
http://chtijug.org/session-spring-batch-avec-ekino-le-29-novembre/
Nous avons le plaisir de vous annoncer que la prochaine session du Ch’ti JUG est prévue le 29 novembre 2011. Elle aura lieu à l’IUT A de Lille 1, boulevard Paul Langevin, à Villeneuve d’Ascq. Plan d’accès
Le thème de cette session est Spring Batch : un framework pour implémenter des traitements de masse en Java.
Cette présentation sera animée par Olivier Bazoud / @obazoud et Julien Jakubowski / @jak78.
Cette session est rendue possible grâce à Ekino / @3k1no.
Les données transitoires (transients) vous veulent du bienBoiteaweb
Je parle bien sûr des transients, cette fameuse API qui ne vous veut que du bien. Voyons des cas concrets d’utilisation pour réduire les requêtes distances et ainsi gagner en performances de temps de chargement. L’auditoire apprendra à utiliser l’API “transient” de WordPress dans le but dé gagner en performances.
4. KANBAN POUR AMÉLIORER
SCRUM
Visualisez, en partant de Scrum
Limitez le travail à finir (TAF)
Gérez le flux
Rendez les règles explicites
Implémentez des boucles de feedback
Améliorez en collaborant, évoluez en
expérimentant
Les 6 principes
Kanban
de David J. Anderson
5. LE CONTEXTE D’UTILISATION DE
SCRUM AU DÉPART
Equipe 7+-2
Déploiement à
la fin de la
release
Sprint 3 ou 4
semaines
Engagement sur
des features
Release de 4-6
sprints soit 3-5
mois
Périmètre
connu au début
de la release
8. LE TABLEAU SCRUM TYPIQUE
à faire
tâche
tâche
tâche
tâche
StoryB
StoryC
tâche
fini
tâche
StoryA
en cours
tâche
tâche
tâche
Les stories ne
sont pas finies
parce que les
tests ne sont
pas faits assez
rapidement
9. LA 5ÈME COLONNE ?
à faire
en cours
tâche
StoryA
tâche
tâche
tâche
tâche
tâche
StoryB
StoryC
tâche
tâche
à tester
fini
12. GROS BACKLOG AU DÉBUT ?
Le PO rédige des User
Stories (US) qui sont les
spécifications.
L’ensemble de ces US
constitue le Product
Backlog.
Juliette, dans son mémoire
sur les méthodes agiles
13. LE BACKLOG N’EST PAS UN DOCUMENT
LA STORY N’EST PAS UNE EXIGENCE
Raconter une histoire
plutôt que de
s’échanger des
documents
14. POUR PASSER DU GROS BACKLOG
AUX PETITS BACS : TRI SÉLECTIF
15. LE CYCLE DE VIE DE LA STORY
! ?
Extrait de Jeff Patton :
Agile Requirements
& Product Management
! !
* Ron Jeffries coined the 3 C’s in
Extreme Programming Installed
16. DES 3C AUX 5 BACS
carte
idée
conversation
confirmation
conversation
confirmation
cultiver
story prête
construire
story finie
17. BAC DE DÉPART
L’endroit où l’on place les stories
prêtes pour le sprint
C’est l’équipe qui décide si une
story est prête, en conservant
l’ordre défini par le Product Owner
L’équipe se base sur sa capacité à
la développer (conditions de
réalisation) et à la finir (conditions
d’acceptation et critères de
finition) dans le prochain sprint
Cette définition de prêt peut être
commune à plusieurs stories
Source Wikipedia, Starting blocks
tableatny à l'adresse http://flickr.com/photos/53370644@N06/4976490816
18. STORY PRÊTE POUR LE DÉPART
Story 23
Conditions de départ
• Conditions de réalisation vérifiées
• Critères d’acceptation et de
finition jugés suffisants par
l’équipe
Attributs
• Ajouter photo
• En tant que Maitre
j’ajoute la photo de
mon chien
• Type : user story
• 3 points
Conditions d’arrivée
• Conditions d’acceptation vérifiées
par le PO
• Critères de finition jugés
acceptables par l’équipe
Conditions de réalisation
Critères de finition
Conditions d’acceptation
• Bob l’expert du jpeg dispo 2 jours
• Une photo limitée à 1 Mo. On utilise le
composant de téléchargement XZ
• Définition de fini générique
pour user story
• La photo apparaît comme vignette
dans la page de l’animal
Déf. de fini gen. user story
Test d’acceptation
• Texte en anglais
• Test unitaire passé
•…
• Etant donné …
• Quand …
• Alors …
Définition de prêt générique
• Taille inférieure à 1/3 de la capacité
19. BAC DE RÉCOLTE
L’endroit où l’on place les stories finies
Une story est finie quand elle satisfait à
ses conditions d’acceptation et à ses
critères de finition
Les critères de finition sont communs à
plusieurs stories du même type (c’est ce
qu’on appelle la définition de fini)
C’est généralement le Product Owner
qui statue sur la terminaison de la story
La story reste dans le bac jusqu’à ce qu’à
la fin de la release ou avant si le
déploiement est plus fréquent
20. BAC À SABLE
L’endroit où tout le monde peut semer des
idées
Le Product Owner décide de la suite à
donner, après une éventuelle conversation
avec les parties prenantes et l’équipe
La « story » possède juste un titre et un bref
descriptif
Le nombre d’éléments du bac à sable ne
peut pas être limité, on essaie plutôt de
limiter la durée de séjour
Source Wikipedia
21. BAC DE CULTURE
L’endroit où on fait pousser les
idées semées dans le bac à sable,
jusqu’à ce qu’elles soient prêtes
La culture repose essentiellement
sur de la conversation
La story est complétée avec de
nouvelles informations : par
exemple le template, une
estimation, des conditions sur sa
réalisation, son type…
22. EN QUOI CONSISTE LA CULTURE
DES STORIES ?
Ordonner
Décomposer ce qui est prioritaire et trop gros pour le sprint
Détailler, préciser
• Identifier les dépendances pour la réalisation
• Associer la story à un type (user story avec du code, bug, support
client, story d’analyse, doc, refactoring, infra…) pour connaître les critères
de finition
• Avoir une idée d’une condition d’acceptation
(Estimer)
Placer dans le bac de départ les stories prêtes
23. QUAND EST FAITE LA CULTURE
DES STORIES ?
La culture du backlog représente environ 10% de la durée du sprint :
• Revues de backlog (conversations formelles)
• Stories de culture (avec conversations informelles)
Culture
du sp.1+
Release
Culture
du sp.2+
Sprint1
Culture
du sp.3+
Sprint2
Culture
du sp.4+
Sprint3
Sprint4
24. LES ÉVÈNEMENTS DU SPRINT
Culture du
backlog
Revues de backlog (2h)
Revue de sprint
(1h-2h)
Sprint (3 semaines)
Planification de sprint
(2h)
Rétrospective
(1h-1h30)
25. LA STORY PASSE DE BAC EN BAC
Des idées
Rejet possible
Pas d’ordre
bac à
sable
Souhait du
ProductOwner
Ordre strict
bac de
culture
Pré-accord de l’équipe
Vidé au début du
sprint
bac de
départ
Attente déploiement
Vidé selon la cadence
de release
bac de sprint
bac de
récolte
26. CE N’EST PAS UN LONG FLEUVE
TRANQUILLE
poubelle
idées
bac à
sable
engagement
options
bac de
culture
bac de
départ
sprint
bac de
récolte
27. LIMITER LE TRAVAIL À FINIR
DANS LE BAC DE SPRINT ?
Une limite sur les
tâches ?
4
Stories
prêt
à finir
L’objectif premier est de
finir des stories
fini
31. LIMITE SUR LES STORIES DU BAC
DE SPRINT
3
∞
bac à
sable
bac de
culture
bac de
départ
bac de sprint
bac de
récolte
32. IMPACT DE CETTE LIMITE SUR LE
SPRINT
Permet de mieux
réagir aux
changements
pendant le sprint
Planification de
sprint modifiée :
• au début du sprint
jusqu’à la limite
• ensuite sur
demande, dès
qu’une story est
finie
• pas d’engagement
sur les stories
33. LIMITE SUR LES STORIES PRÊTES
Limite
haute
6
Limite
basse
bac à
sable
bac de
culture
3
∞
3
bac de
départ
bac de
sprint
bac de
récolte
34. DIMINUER LA TAILLE DU BAC DE
CULTURE
bac à glace
Release
suivante
Release
courante
bac à
sable
bac de
culture
bac de
départ
35. LE BAC À GLACE PEUT SERVIR
Il va falloir
« déscoper » des
stories
36. LIMITER LE BAC DE CULTURE ?
Contenu
au début
Burndown chart
de release
Taille du bac
Temps qui passe
Fin de la
release
38. BACS DE FEATURES
On ne décompose
en stories que les
features en cours
2
à faire
en cours
fini
39. FEATURE MINIMALE
Cela est
suffisant
Feature sur laquelle
on s’est engagé
pour la release
Feature
décomposée
story
story
story
story
story
1
2
Feature minimale
livrable
story
finition
story
story
Le reste, mis dans le
bac à glace
story
story story
story
3
Release
courante
Release
suivante
40. bac à glace
BIG PICTURE
2
feature livrable
qui contient des
stories finies
en cours
à faire
Bac de features
2
3
bac à
sable
bac de
récolte
bac de culture
bac de
départ
bac de sprint
41. DIAGRAMME DE BAC CUMULÉ
60
50
40
bac de culture
30
bac de départ
sprint
20
bac de récolte
10
0
Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5
Ou mieux, toutes
les semaines
42. LES ÉVÈNEMENTS DU SPRINT
REVISITÉS
Revue de backlog
sur demande
Planification de sprint
au début (1/2h)
Planification sur demande
43. KANBANISATION
Visualisez, en partant de Scrum
• Les bacs de stories
• Les features
Limitez le travail à finir (TAF)
• Limite haute
• Limite basse
Gérez le flux
• Conversations
• Essaimage
• Mesures
Rendez les règles explicites
• Définition de prêt
• Définition de fini
44. LA CARTE DES IMPACTS
But
Acteurs
Impacts
Nouvelles
pratiques
45. ALLER PLUS LOIN EN DÉPLOYANT
PLUS SOUVENT
Temps de cycle
∞
bac à
sable
bac de culture
#noEstimates
#noProjects
…mais c’est une
autre histoire
bac de
départ
bac de sprint
bac de
récolte