cara - software craftsmanship : le chaînon manquant de l’agilité ?
TRANSCRIPT
![Page 1: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/1.jpg)
Software Craftsmanship : le chaînon manquant
de l’agilité ?@CharlesBouttaz @NicoRuffel
Photo John Alexander Calderon
![Page 2: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/2.jpg)
Méthodes AgilesManagement de projet
● Scrum
● Crystal Clear
● SAFe
● ...
Développement
● Agile Unified Process - Disciplined Agile Delivery
● eXtreme Programming
● ...
![Page 3: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/3.jpg)
Les manifestesAGILE
les individus & leurs interactions > les processus et les outils
collaboration avec les clients > négociation contractuelle
adaptation au changement > le suivi d’un plan
des logiciels opérationnels > documentation exhaustive
CRAFTSMANSHIP
communauté de professionnels +
des partenariats productifs +
l'ajout constant de la valeur +
des logiciels bien conçus +
![Page 4: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/4.jpg)
12 Principes1. 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.
![Page 5: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/5.jpg)
Des pratiques, des techniques !● Clean Code
● Simple Design
● Refactoring
● SOLID
● Pair programming
● Integration continue
● DevOps
● Prog fonctionnelle
● Root cause analysis
● Conception Objet
● Livraison continue
● Mob programming
● TDD
● ATDD
● BDD
● DDD
![Page 6: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/6.jpg)
Les pratiques ne sont que des outils !
● Un outil est efficace dans dans un contexte donné
● “LA” solution parfaite n’existe pas
● Pragmatisme : “capacité à s’adapter aux contraintes de la réalité”
● Les valeurs & principes comme guide
![Page 7: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/7.jpg)
Notre plus haute priorité est de satisfaire le client
en livrant rapidement et régulièrement des fonctionnalités
à grande valeur ajoutée.
![Page 8: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/8.jpg)
Tests automatisés, Test First, Test Driven DevelopmentTDD:
1/ écrire un test qui échoue pour ma fonctionnalité
2/ écrire l’implementation minimale qui fait passer le test
3/ refactoring -> GOTO 1
Intérêt
● Code testable
● Meilleur design*
● Documentation
FEEDBACK
![Page 9: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/9.jpg)
TDD façe a la dure réalité● C’est difficile !
○ Code Legacy hostile
○ Besoin de bonnes notions de design
● Les mauvais tests coûtent cher
○ pas expressifs, trop longs, trop liés a l’implémentation
● Les tests unitaires ne sont pas suffisants
● Difficile de “vendre“ le test unitaire
COURAGE
![Page 10: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/10.jpg)
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.
![Page 11: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/11.jpg)
Intégration continueChaque tâche de développement terminée est automatiquement compilée, testée et
intégrée à l’application
Les plus...
● Détection rapide des problèmes d'intégration
● La version courante est toujours disponible
● Tous les tests sont repassés à chaque tâche terminée
FEEDBACK
![Page 12: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/12.jpg)
La dure réalité de l’intégration continueNouvelle organisation du travail
Coût de l'automatisation
● Plateforme d’intégration
● Lien entre SCM et la plateforme
● Déploiement en un clic
Construction de la suite de tests
● 10 minutes build
● Rapidité et fiabilité du feedback
COURAGE
![Page 13: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/13.jpg)
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 autoorganisées.
La simplicité [...] est essentielle.
![Page 14: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/14.jpg)
Architecture“Big Design Up Front” :
Avant le début du projet
l’architecte prend toutes les décisions d’architecture et des technologies a utiliser.
Ensuite les développeurs implémentent la vision de l’architecte.
BDUF + Agile = Problèmes
● Nécessite des besoins fonctionnels figés
● Choix et décisions les plus impactants au pire moment
● Les erreurs coûtent cher
![Page 15: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/15.jpg)
Design émergentStrict minimum d’architecture avant de commencer (macro & micro).
Faire émerger le design au cours du dévelopement par des refactorings successifs.
Refactoring = améliorer le code. ex: nommage, factorisation, cohésion, couplage, etc.
Intérêt
● Maintenabilité
● Extensibilité
● Prendre les décisions quand on a le plus d’information
SIMPLICITÉ
![Page 16: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/16.jpg)
Design émergent face a la dure réalité● Ne veut pas dire qu’on ne fait plus d’architecture !
● Ne veut pas dire qu’on refait toute l’application a chaque feature !
● Refactoring difficile à “vendre” : temps qui n’apporte pas de nouvelle feature
COURAGE
![Page 17: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/17.jpg)
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.
![Page 18: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/18.jpg)
Travail en binômeLes tâches de conception / programmation sont abordées à deux
FEEDBACK
COMMUNICATION
● Transfert de connaissance
● Le développeur n’est pas seul face aux problèmes rencontrés
Intérêt
● Meilleur design
![Page 19: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/19.jpg)
La vérité sur le travail en binôme● Difficile à vendre
● Organisation du travail si travail en binôme à la demande
● Choc culturel
● Equipe répartie / multi sites
RESPECT
![Page 20: CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?](https://reader033.vdocuments.mx/reader033/viewer/2022042907/587b3ad31a28ab9c0e8b49d9/html5/thumbnails/20.jpg)
Être agile plutôt que faire de l’agile !Les valeurs de eXtreme Programming ou les manifestes sont de bons refuges
FEEDBACK
COURAGE
COMMUNICATION
SIMPLICITÉ
RESPECT