SlideShare une entreprise Scribd logo
Software Craftsmanship :
le chaînon manquant
de l’agilité ?
@CharlesBouttaz @NicoRuffel
Photo John Alexander Calderon
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Manifeste & Valeur
AGILE
documentation exhaustive < des logiciels opérationnels
les processus et les outils < les individus & interactions
négociation contractuelle < collaboration avec les clients
le suivi d’un plan < adaptation au changement
CRAFTSMANSHIP
+ des logiciels bien conçus
+ communauté de professionnels
+ des partenariats productifs
+ ajout constant de la valeur
12 Principes sous-jacent
1 Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
2 Accueillez positivement les changements de besoins,même tard dans le projet.
Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
3 Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus
courts.
4 Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
5 Réalisez les projets avec des personnes motivées.
Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
6 La méthode la plus simple et la plus efficace pour transmettre de l’information
à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
7 Un logiciel opérationnel est la principale mesure d’avancement.
8 Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les
utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
9 Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité.
10 La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.
11 Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées.
12 À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
Des pratiques, des techniques, des outils !
● Clean Code
● Simple Design
● Refactoring
● SOLID
● Pair programming
● Integration continue
● DevOps
● Prog fonctionnelle
● Root cause analysis
● Object Oriented Design
● Livraison continue
● Mob programming
● TDD
● ATDD
● BDD
● DDD
Les pratiques ne sont que des outils !
Notre plus haute priorité est de satisfaire le client
en livrant rapidement et régulièrement
des fonctionnalités à grande valeur ajoutée.
Tests automatisés, Test Driven Development
● Automatisé : fiabilité & gain de temps
● TDD : couverture, testable,
documentation, qualité
FEEDBACK
Les tests face à la dure réalité
● C’est difficile !
○ Code hostile
○ Besoin de bonnes notions de design
● Les mauvais tests coûtent cher
○ Instables, trop longs, trop liés a l’implémentation
● Difficile de “vendre“ le test unitaire
COURAGE
Accueillez positivement les changements de besoins, même tard
dans le projet. Les processus Agiles exploitent le changement
pour donner un avantage compétitif au client.
Intégration continue
Chaque tâche de développement terminée est automatiquement compilée, testée et
intégrée à l’application
Les plus...
Tous les tests sont repassés à chaque tâche terminée
Détection rapide des problèmes d'intégration
La version courante est toujours disponible
FEEDBACK
La dure réalité de l’intégration continue
Coût de l'automatisation
Plate-forme d’intégration et lien avec le Système de Management du Code
Déploiement en un clic !
Construction de la suite de tests
10 minutes build
Maintenir la rapidité et fiabilité du feedback
Nouvelle organisation du travail : intégration CONTINUE
COURAGE
Accueillez positivement les changements de besoins, [...]
pour donner un avantage compétitif au client.
Une attention continue à l'excellence technique et
à une bonne conception renforce l’Agilité.
Les meilleures architectures, spécifications et
conceptions émergent d'équipes auto-organisées.
La simplicité [...] est essentielle.
Architecture : Big Design Up Front
Définir l’architecture et les technologies utilisées avant la phase de développement.
BDUF + Agile = Problèmes
● Nécessite des besoins fonctionnels figés
● Choix et décisions les plus impactant au pire moment
● Les erreurs coûtent cher
Architecture : Design émergent
Minimum d’architecture au début.
Faire émerger le design lors du développement via le refactoring.
Refactoring = améliorer le code : factorisation, encapsulation, cohésion, couplage, etc.
Design souple et évolutif
● Maintenabilité
● Extensibilité
● Prendre les décisions quand on a le plus d’information
SIMPLICITÉ
Les pièges du Design émergent
Ne veut pas dire qu’on ne fait plus d’architecture !
On ne refait pas toute l’application à chaque fonctionnalité !
Difficile à faire accepter
COURAGE
Une attention continue à l'excellence technique et à une bonne
conception renforce l’Agilité.
La méthode la plus simple et la plus efficace pour transmettre de
l’information à l'équipe de développement et à l’intérieur de
celle-ci est le dialogue en face à face.
Travail en binôme (Pair Programming)
Les tâches de conception / programmation sont abordées à deux
COMMUNICATIONTransfert de connaissance
Le développeur n’est pas seul face aux problèmes
Intérêt
Meilleur design FEEDBACK
Le travail en binôme : c’est pas si simple…
Difficile à vendre
Organisation du travail
Equipe répartie / multi sites
Choc culturel
RESPECT
Être agile plutôt que faire de l’agile !
Les valeurs de eXtreme Programming ou les manifestes sont de bons refuges
FEEDBACK
COURAGE
SIMPLICITÉ
COMMUNICATION
RESPECT
Références
Manifeste Agile : http://agilemanifesto.org/iso/fr/
Principles of craftsmanship : http://blog.8thlight.com/uncle-bob/2013/02/10/ThePrinciplesOfCraftsmanship.html
Design émergent : http://software-craftsman.fr/2014/04/28/concepts-de-larchitecture-logicielle-introduction/
Intégration continue : http://referentiel.institut-agile.fr/ci.html
Pair Programming : http://www.davefarley.net/?p=261
@CharlesBouttaz @NicoRuffel

Contenu connexe

Tendances

La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?
Christa Dabilly
 
Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
Déploiement continu, l'agilité maximisée ? - Pierre-Martin TardifDéploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
Agile Montréal
 
Methodologie projet
Methodologie projet Methodologie projet
Methodologie projet
Benjamin ACHAB
 
La gestion de projet Agile
La gestion de projet AgileLa gestion de projet Agile
La gestion de projet Agile
Jonathan Roy
 
Présentation des Méthodes Agiles pour l'association AnnexEthique
Présentation des Méthodes Agiles pour l'association AnnexEthiquePrésentation des Méthodes Agiles pour l'association AnnexEthique
Présentation des Méthodes Agiles pour l'association AnnexEthique
David Brocard
 
Scrum pour les (nuls) devs
Scrum pour les (nuls) devsScrum pour les (nuls) devs
Scrum pour les (nuls) devs
Jenny Beaumont
 
Historique des méthodes agiles
Historique des méthodes agilesHistorique des méthodes agiles
Historique des méthodes agiles
azeau
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
Pyxis Technologies
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
Henri Gomez
 
Agile expliqué aux managers
Agile expliqué aux managersAgile expliqué aux managers
Agile expliqué aux managers
Pyxis Technologies
 
Comment accélérer le DevOps avec l’ATDD/BDD?
Comment accélérer le DevOps avec l’ATDD/BDD?Comment accélérer le DevOps avec l’ATDD/BDD?
Comment accélérer le DevOps avec l’ATDD/BDD?
Danka Zindovic-Dana
 
#10 convergence
#10 convergence#10 convergence
#10 convergence
agnes_crepet
 
Modèle de maturité CMMi-DEV
Modèle de maturité CMMi-DEVModèle de maturité CMMi-DEV
Modèle de maturité CMMi-DEV
Pierre
 
Introduction aux méthodes agiles
Introduction aux méthodes agilesIntroduction aux méthodes agiles
Introduction aux méthodes agiles
Guillaume Collic
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
laurent bristiel
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous Delivery
Diego Lemos
 
Agilite Scrum
Agilite Scrum Agilite Scrum
Agilite Scrum
Skander Hamza
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
Benjamin ACHAB
 
Introduction Aux MéThodes Agiles
Introduction Aux MéThodes AgilesIntroduction Aux MéThodes Agiles
Introduction Aux MéThodes Agiles
Stanyslas MATAYO
 

Tendances (19)

La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?
 
Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
Déploiement continu, l'agilité maximisée ? - Pierre-Martin TardifDéploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif
 
Methodologie projet
Methodologie projet Methodologie projet
Methodologie projet
 
La gestion de projet Agile
La gestion de projet AgileLa gestion de projet Agile
La gestion de projet Agile
 
Présentation des Méthodes Agiles pour l'association AnnexEthique
Présentation des Méthodes Agiles pour l'association AnnexEthiquePrésentation des Méthodes Agiles pour l'association AnnexEthique
Présentation des Méthodes Agiles pour l'association AnnexEthique
 
Scrum pour les (nuls) devs
Scrum pour les (nuls) devsScrum pour les (nuls) devs
Scrum pour les (nuls) devs
 
Historique des méthodes agiles
Historique des méthodes agilesHistorique des méthodes agiles
Historique des méthodes agiles
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
 
Agile expliqué aux managers
Agile expliqué aux managersAgile expliqué aux managers
Agile expliqué aux managers
 
Comment accélérer le DevOps avec l’ATDD/BDD?
Comment accélérer le DevOps avec l’ATDD/BDD?Comment accélérer le DevOps avec l’ATDD/BDD?
Comment accélérer le DevOps avec l’ATDD/BDD?
 
#10 convergence
#10 convergence#10 convergence
#10 convergence
 
Modèle de maturité CMMi-DEV
Modèle de maturité CMMi-DEVModèle de maturité CMMi-DEV
Modèle de maturité CMMi-DEV
 
Introduction aux méthodes agiles
Introduction aux méthodes agilesIntroduction aux méthodes agiles
Introduction aux méthodes agiles
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous Delivery
 
Agilite Scrum
Agilite Scrum Agilite Scrum
Agilite Scrum
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Introduction Aux MéThodes Agiles
Introduction Aux MéThodes AgilesIntroduction Aux MéThodes Agiles
Introduction Aux MéThodes Agiles
 

En vedette

Workforce Technology 2016: The Perfect Storm
Workforce Technology 2016: The Perfect StormWorkforce Technology 2016: The Perfect Storm
Workforce Technology 2016: The Perfect Storm
Human Capital Media
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)
Ulrich VACHON
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
msadouni
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
Julien Blin
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
Thibault Vlacich
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for Java
Joris De Winne
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
Nathaniel Richand
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
Francois ANDRE
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
Sandro Mancuso
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
Malk Zameth
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
agorolabs
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement Agile
Xavier Hausherr
 
Meet me Halfway: Developers and Designers Pairing for the Win
Meet me Halfway: Developers and Designers Pairing for the WinMeet me Halfway: Developers and Designers Pairing for the Win
Meet me Halfway: Developers and Designers Pairing for the Win
Thoughtworks
 
Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanship
Alexandru Bolboaca
 
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Lemi Orhan Ergin
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
David Caramelo
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
ylemoigne
 
L'outillage git sous eclipse
L'outillage git sous eclipseL'outillage git sous eclipse
L'outillage git sous eclipse
Igor Laborie
 
Presentation git
Presentation gitPresentation git
Presentation git
Noirdes
 
En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?
Guillaume Collic
 

En vedette (20)

Workforce Technology 2016: The Perfect Storm
Workforce Technology 2016: The Perfect StormWorkforce Technology 2016: The Perfect Storm
Workforce Technology 2016: The Perfect Storm
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for Java
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement Agile
 
Meet me Halfway: Developers and Designers Pairing for the Win
Meet me Halfway: Developers and Designers Pairing for the WinMeet me Halfway: Developers and Designers Pairing for the Win
Meet me Halfway: Developers and Designers Pairing for the Win
 
Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanship
 
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
L'outillage git sous eclipse
L'outillage git sous eclipseL'outillage git sous eclipse
L'outillage git sous eclipse
 
Presentation git
Presentation gitPresentation git
Presentation git
 
En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?
 

Similaire à Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?

Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
Jean Michel
 
Le scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheurLe scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheur
sebastien_fournel
 
Webinaire BluTech 02/2023 - L'agilité
Webinaire BluTech 02/2023 - L'agilitéWebinaire BluTech 02/2023 - L'agilité
Webinaire BluTech 02/2023 - L'agilité
AdrienMusserotte1
 
Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013
agnes_crepet
 
La gestion de projet agile
La gestion de projet agileLa gestion de projet agile
La gestion de projet agile
Eugène ZENGOMONA
 
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Pyxis Technologies
 
Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmse
agnes_crepet
 
Aborder la transition vers l'agilité
Aborder la transition vers l'agilitéAborder la transition vers l'agilité
Aborder la transition vers l'agilité
Christophe Addinquy
 
Gestion de projet digital
Gestion de projet digitalGestion de projet digital
Gestion de projet digital
Abdoul Kafid Toko Koutogui
 
01- Cadres et outils-Methodes agiles.pptx
01- Cadres et outils-Methodes agiles.pptx01- Cadres et outils-Methodes agiles.pptx
01- Cadres et outils-Methodes agiles.pptx
SteevePaladin
 
ppt sur la Méthode Agile (adaptative).pdf
ppt sur la Méthode Agile (adaptative).pdfppt sur la Méthode Agile (adaptative).pdf
ppt sur la Méthode Agile (adaptative).pdf
imenhamada17
 
Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops Sherbrooke
Vincent Biret
 
Méthodes agiles j certif Abidjan
Méthodes agiles j certif AbidjanMéthodes agiles j certif Abidjan
Méthodes agiles j certif Abidjan
Henri-Damien LAURENT
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
Niji
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Microsoft
 
Communaute dot net Montreal juin2010
Communaute dot net Montreal juin2010Communaute dot net Montreal juin2010
Communaute dot net Montreal juin2010
Dominic Danis
 
Bref
BrefBref
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
Adrien Blind
 
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
Étienne Garbugli
 
Management de projet 2
Management de projet 2Management de projet 2
Management de projet 2
David VALLAT
 

Similaire à Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ? (20)

Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
 
Le scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheurLe scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheur
 
Webinaire BluTech 02/2023 - L'agilité
Webinaire BluTech 02/2023 - L'agilitéWebinaire BluTech 02/2023 - L'agilité
Webinaire BluTech 02/2023 - L'agilité
 
Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013
 
La gestion de projet agile
La gestion de projet agileLa gestion de projet agile
La gestion de projet agile
 
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013
 
Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmse
 
Aborder la transition vers l'agilité
Aborder la transition vers l'agilitéAborder la transition vers l'agilité
Aborder la transition vers l'agilité
 
Gestion de projet digital
Gestion de projet digitalGestion de projet digital
Gestion de projet digital
 
01- Cadres et outils-Methodes agiles.pptx
01- Cadres et outils-Methodes agiles.pptx01- Cadres et outils-Methodes agiles.pptx
01- Cadres et outils-Methodes agiles.pptx
 
ppt sur la Méthode Agile (adaptative).pdf
ppt sur la Méthode Agile (adaptative).pdfppt sur la Méthode Agile (adaptative).pdf
ppt sur la Méthode Agile (adaptative).pdf
 
Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops Sherbrooke
 
Méthodes agiles j certif Abidjan
Méthodes agiles j certif AbidjanMéthodes agiles j certif Abidjan
Méthodes agiles j certif Abidjan
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012
 
Communaute dot net Montreal juin2010
Communaute dot net Montreal juin2010Communaute dot net Montreal juin2010
Communaute dot net Montreal juin2010
 
Bref
BrefBref
Bref
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
 
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
L’ergonomie et l’expérience utilisateur en contexte agile (Agile UX Masterclass)
 
Management de projet 2
Management de projet 2Management de projet 2
Management de projet 2
 

Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?

  • 1. Software Craftsmanship : le chaînon manquant de l’agilité ? @CharlesBouttaz @NicoRuffel Photo John Alexander Calderon
  • 3. Manifeste & Valeur AGILE documentation exhaustive < des logiciels opérationnels les processus et les outils < les individus & interactions négociation contractuelle < collaboration avec les clients le suivi d’un plan < adaptation au changement CRAFTSMANSHIP + des logiciels bien conçus + communauté de professionnels + des partenariats productifs + ajout constant de la valeur
  • 4. 12 Principes sous-jacent 1 Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. 2 Accueillez positivement les changements de besoins,même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client. 3 Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts. 4 Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet. 5 Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés. 6 La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face. 7 Un logiciel opérationnel est la principale mesure d’avancement. 8 Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant. 9 Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. 10 La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle. 11 Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées. 12 À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
  • 5. Des pratiques, des techniques, des outils ! ● Clean Code ● Simple Design ● Refactoring ● SOLID ● Pair programming ● Integration continue ● DevOps ● Prog fonctionnelle ● Root cause analysis ● Object Oriented Design ● Livraison continue ● Mob programming ● TDD ● ATDD ● BDD ● DDD
  • 6. Les pratiques ne sont que des outils !
  • 7. Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
  • 8. Tests automatisés, Test Driven Development ● Automatisé : fiabilité & gain de temps ● TDD : couverture, testable, documentation, qualité FEEDBACK
  • 9. Les tests face à la dure réalité ● C’est difficile ! ○ Code hostile ○ Besoin de bonnes notions de design ● Les mauvais tests coûtent cher ○ Instables, trop longs, trop liés a l’implémentation ● Difficile de “vendre“ le test unitaire COURAGE
  • 10. Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
  • 11. Intégration continue Chaque tâche de développement terminée est automatiquement compilée, testée et intégrée à l’application Les plus... Tous les tests sont repassés à chaque tâche terminée Détection rapide des problèmes d'intégration La version courante est toujours disponible FEEDBACK
  • 12. La dure réalité de l’intégration continue Coût de l'automatisation Plate-forme d’intégration et lien avec le Système de Management du Code Déploiement en un clic ! Construction de la suite de tests 10 minutes build Maintenir la rapidité et fiabilité du feedback Nouvelle organisation du travail : intégration CONTINUE COURAGE
  • 13. Accueillez positivement les changements de besoins, [...] pour donner un avantage compétitif au client. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. Les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées. La simplicité [...] est essentielle.
  • 14. Architecture : Big Design Up Front Définir l’architecture et les technologies utilisées avant la phase de développement. BDUF + Agile = Problèmes ● Nécessite des besoins fonctionnels figés ● Choix et décisions les plus impactant au pire moment ● Les erreurs coûtent cher
  • 15. Architecture : Design émergent Minimum d’architecture au début. Faire émerger le design lors du développement via le refactoring. Refactoring = améliorer le code : factorisation, encapsulation, cohésion, couplage, etc. Design souple et évolutif ● Maintenabilité ● Extensibilité ● Prendre les décisions quand on a le plus d’information SIMPLICITÉ
  • 16. Les pièges du Design émergent Ne veut pas dire qu’on ne fait plus d’architecture ! On ne refait pas toute l’application à chaque fonctionnalité ! Difficile à faire accepter COURAGE
  • 17. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
  • 18. Travail en binôme (Pair Programming) Les tâches de conception / programmation sont abordées à deux COMMUNICATIONTransfert de connaissance Le développeur n’est pas seul face aux problèmes Intérêt Meilleur design FEEDBACK
  • 19. Le travail en binôme : c’est pas si simple… Difficile à vendre Organisation du travail Equipe répartie / multi sites Choc culturel RESPECT
  • 20. Être agile plutôt que faire de l’agile ! Les valeurs de eXtreme Programming ou les manifestes sont de bons refuges FEEDBACK COURAGE SIMPLICITÉ COMMUNICATION RESPECT
  • 21. Références Manifeste Agile : http://agilemanifesto.org/iso/fr/ Principles of craftsmanship : http://blog.8thlight.com/uncle-bob/2013/02/10/ThePrinciplesOfCraftsmanship.html Design émergent : http://software-craftsman.fr/2014/04/28/concepts-de-larchitecture-logicielle-introduction/ Intégration continue : http://referentiel.institut-agile.fr/ci.html Pair Programming : http://www.davefarley.net/?p=261 @CharlesBouttaz @NicoRuffel