Slide 1

Slide 1 text

@yot88 #ATN21 Vendredi 5 novembre à 9h Partageons ensemble nos pratiques du quotidien pour devenir encore plus efficient, livrer plus de valeur et apprendre en continu. 50 nuances de pratiques de dév Yoan THIRION

Slide 2

Slide 2 text

@yot88 #ATN21 Agile Tour Nantais 2021 #ATN21

Slide 3

Slide 3 text

Who am I ? Technical Agile coach, Software craftsman I’m Yoan THIRION (freelance) • design software since more than 12 years • fundamental to succeed in that area : agility and technical excellence • help teams deliver well crafted software • implementation of agile and technical practices (eXtreme programming, Refactoring, DDD, Mob programming, …) Let’s connect My services https://www.yoan-thirion.com/ Technical agile coaching Communities of practice Cultural change devops Brown bags Serious games

Slide 4

Slide 4 text

@yot88 #ATN21 Question Selon vous, quels sont les ingrédients secrets qui permettent à une équipe de développement d'atteindre ses objectifs ? • En pair – 5’ • En groupe, échangez et regroupez vos idées – 5’ • Tous ensemble - 5'

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

@yot88 #ATN21 Accelerate • Un développement logiciel efficace est important pour le succès de l'organisation • Vous pouvez mesurer objectivement l'efficacité du développement • Certains comportements et pratiques techniques permettent d'obtenir de meilleurs résultats. Type Metric Elite Low THROUGHPUT Deployment Frequency Multiple per day 1 - 6 months Lead Time for Changes Less than 1 day 1 - 6 months STABILITY Mean Time to Restore Less than 1 hour 1 - 4 weeks Change Failure Rate 0 - 15 % 46 - 60 %

Slide 7

Slide 7 text

Accelerate Capabilities Continuous Delivery (8) Architecture (2) Product & Process (4) Lean Management & Monitoring (5) Cultural (5) Metrics Success

Slide 8

Slide 8 text

@yot88 #ATN21 Accelerate results Continuous Delivery (CD) Automated deployment Continuous Integration (CI) Continuous Testing Loosely-Coupled Architecture Automated security Database agility Less Burnout Less Deployment Pain Reach Organizational Goals Technical Practices https://cloudplatformonline.com/2018-state-of-devops.html

Slide 9

Slide 9 text

@yot88 #ATN21 Accelerate results Continuous Delivery (CD) Automated deployment Continuous Integration (CI) Continuous Testing Loosely-Coupled Architecture Trunk-Based Development Monitoring & Observability Less Burnout Less Deployment Pain Reach Organizational Goals

Slide 10

Slide 10 text

@yot88 #ATN21 Quel est le rapport avec XP ?

Slide 11

Slide 11 text

@yot88 #ATN21 eXtreme programming Méthodeagile née en 95 / 96 Kent beck majoritairement 5 valeurs Des Pratiques (d’ingénieurie) Boucles de feedback

Slide 12

Slide 12 text

@yot88 #ATN21 eXtreme programming 5 valeurs Communication Courage Feedback Respect Simplicité Méthodeagile née en 95 / 96 Kent beck majoritairement Pratiques associées Boucles de feedback

Slide 13

Slide 13 text

@yot88 #ATN21 XP : 1 source d’inspiration https://www.linkedin.com/posts/maurostrione_scrum-agile-devops-activity-6650103984235298819-Zb5a

Slide 14

Slide 14 text

Xp et Accelerate Source : https://www.slideshare.net/OCTOTechnology/accelerate-la-vitesse-conditionne-lexcellence

Slide 15

Slide 15 text

Xp et Accelerate Source : https://www.slideshare.net/OCTOTechnology/accelerate-la-vitesse-conditionne-lexcellence Coding Standard Refactoring Continuous Integration Test Driven Development Pair Programming Customer Tests Planning game Small Releases Metaphor Simple Design Whole team Collective ownership Sustainable pace

Slide 16

Slide 16 text

@yot88 #ATN21 Qu’est ce qu’on y ajouterait en 2021 ? Sûrement quelques pratiques techniques

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

@yot88 #ATN21 Mob programming • renforcer le collective ownership / s’aligner • diffuser la connaissance • apprendre ensemble

Slide 19

Slide 19 text

@yot88 #ATN21 approval testing • Aussi appelé : Snapshot Tests ou Golden Master • outputs qui ont besoin d’une approbation humaine permettant de dire si la fonctionnalité est implémentée comme attendue https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/code-katas/gilded-rose-approval-testing Moins d’assertions / moins de tests Must have pour travailler sur du code legacy Un atout pour du TDD

Slide 20

Slide 20 text

@yot88 #ATN21 Property-based testing • identifier et tester des invariants / propriétés • quelque chose qui sera toujours vrai, quelles que soient les données que vous fournissez à votre algorithme for all (x, y, ...) such that property (x, y, ...) is satisfied https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/code-katas/improve-your-software-quality-with-property-based-testing Given (x, y, ...) When I [call the subject under test] with (x, y, ...) Then I expect this (output) Example-based property-based

Slide 21

Slide 21 text

@yot88 #ATN21 Mikado • décomposer les tâches de refactoring en plus petites • le code ne se trouve pratiquement JAMAIS DANS un état instable. https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/code-katas/mikado-method https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/code-katas/refactoring-journey-kata

Slide 22

Slide 22 text

@yot88 #ATN21 CODE analysis Static + Comportemental Ne pas attendre la fin pour en utiliser Commencer dès les premières minutes https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/software-design-x-rays/workshop Hotspot analysis Code coupling Knowledge diffusion System Health

Slide 23

Slide 23 text

@yot88 #ATN21 Domain driven design • Une approche de développement • Des patterns stratégiques / tactiques TACTICAL STRATEGIC https://yoan-thirion.gitbook.io/knowledge-base/software-architecture/ddd-re-distilled

Slide 24

Slide 24 text

@yot88 #ATN21 Consumer driven contract • Améliorer le design et le testing de vos micro-services • Approche de testing orientée “consumer” / Contrat • Éviter les problèmes d’intégration • Valider constamment que nos services sont en capacité de se comprendre https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/testing/improve-the-design-and- testing-of-your-micro-services-through-consumer-driven-contract-tests

Slide 25

Slide 25 text

@yot88 #ATN21 mutation testing Une technique permettant de jauger de la qualité de nos tests • Generate mutants • Launch tests • Check result / Generate report https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/testing/mutation-testing

Slide 26

Slide 26 text

Design sessions 1) Open a new item 2) Agree on item’s definition 3) Align on flows to implement 4) Write the code Skeleton Pojos Domains Contracts, … todos agree on the naming / parameters / contracts 5) part or whole team works on the implementation Whole team or Puzzle Driven Development https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/practices/design-sessions

Slide 27

Slide 27 text

@yot88 #ATN21 • capturer les décisions d’architecture afin de comprendre pourquoi et leurs conséquences • log les éléments qui ont justifié une décision Architecture decision records

Slide 28

Slide 28 text

@yot88 #ATN21 Tech radar • Une seule source de vérité : qu’est-ce qu’on doit/peut utiliser • Organiser le veille technologique de l’organisation https://github.com/ythirion/tech-radar-hugo

Slide 29

Slide 29 text

co-design architecture sécu ops tech leads / dev experts porteur de la vision technique techradar Co-designs co-construit diffuse participe / propose participe / propose participe / propose participe / propose alimente knowledge base adr matérialisée par Solution design https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/practices/co-designs

Slide 30

Slide 30 text

@yot88 #ATN21 Et plein d’autres… • CQRS / Event sourcing • Consumer driven contract testing • 12 Factor apps • Functional programming paradigms • Functional core imperative shell • … https://www.thoughtworks.com/radar • Togaf • Enterprise Integration patterns • Micro-services • ATDD / BDD • Cloud computing • …

Slide 31

Slide 31 text

@yot88 #ATN21 La technique mais pas que… Pour bien vivre en équipe ?

Slide 32

Slide 32 text

@yot88 #ATN21 Savoir être / communication • Pour bien vivre en équipe • Se comprendre les uns les autres CNV Donner / recevoir du feedback pnl

Slide 33

Slide 33 text

@yot88 #ATN21 Facilitation (interactions, ateliers) Événements (rétrospectives, stand-ups, …) Event storming, story mapping, Casser les silos / alignement Liberating structures 7 P Canvas

Slide 34

Slide 34 text

@yot88 #ATN21 leadership Host leadership https://yoan-thirion.gitbook.io/knowledge-base/leadership/learn-leadership-from-the-navy-seals

Slide 35

Slide 35 text

@yot88 #ATN21 Coacher / enseigner Solution focus

Slide 36

Slide 36 text

@yot88 #ATN21 Pour résumer

Slide 37

Slide 37 text

@yot88 #ATN21 DDD / CQRS / ES Clean Architecture 12 Factor apps Functional core imperative shell Togaf Enterprise Integration patterns Micro-services … Approches de test : tdd (classic / outside-in), pbt, mutation, Approval, … cdc Clean Code Techniques de refactoring Mob programming Functional programming … Leadership, (M3.0, extreme ownership, host leadership…) Facilitation (event storming, story mapping, liberating structures, …) Coaching (grow, solution focus, …) Enseignement (training from the back of the room) Communication (CNV, PNl, …) …

Slide 38

Slide 38 text

Apprentissage continu

Slide 39

Slide 39 text

@yot88 #ATN21 Apprentissage continu… mais comment ?

Slide 40

Slide 40 text

@yot88 #ATN21 Apprentissage continu

Slide 41

Slide 41 text

@yot88 #ATN21 Communauté de pratiques • connecter les gens / casser les silos • partager la connaissance • Apprendre ensemble • résoudre des problèmes (intelligence collective) https://yoan-thirion.gitbook.io/knowledge-base/agile-coaching/how-to-run-a-community-of-practices-cop

Slide 42

Slide 42 text

@yot88 #ATN21 Learning hours / mentoring Code katas Deliberate practice M.E.N.T.O.R model Mission Engagement Networking Trust Opportunity Review / Renewal

Slide 43

Slide 43 text

@yot88 #ATN21 xtrem(s) • Stimuler l’intelligence collective o Lecture o Veille technologique • Partager connaissance / Passions • Apprendre en groupe Des ouitils pour tendre vers l’entreprise apprenante XTREM Watch XTREM reading

Slide 44

Slide 44 text

@yot88 #ATN21 Conférences / meetups • Apprendre des autres • Se tenir à jour La situation sanitaire a poussé les événements à se faire en ligne Sur tout, depuis n’importe où

Slide 45

Slide 45 text

@yot88 #ATN21 Coaching technique Aider les équipes à grandir : Learning hours, code katas, pair programming, mob programming, agile, coaching, … https://philippe.bourgau.net/the-story-about-how-we-do-agile-technical-coaching/

Slide 46

Slide 46 text

– Allan Kelly Mettez en place ce qui fait du sens dans votre contexte : expérimentez / apprenez "create your own process, don’t follow someone else’s prescription.” - allan kelly

Slide 47

Slide 47 text

J’ai appris beaucoup, mais ça ne s’applique pas pour moi J’ai appris beaucoup Et je peux l’appliquer Niveau de connaissances acquises Applicabilité de cette connaissance Je n’ai pas appris grand chose et celà ne s’applique pas pour moi Je peux appliquer le peu que j’ai appris

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

merci Technical Agile coach, Software craftsman On reste connecté https://www.yoan-thirion.com/ https://www.yoan-thirion.com/files/brown-bag-offer.pdf Mes brown bags