Slide 1

Slide 1 text

1 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit”

Slide 2

Slide 2 text

2 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit”

Slide 3

Slide 3 text

3 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Christophe Breheret-Girardin ● Développeur ● Coach craft ● Formateur ● Etudiant [email protected] @ChristopheB_G christophe-breheret-girardin En fin de présentation :

Slide 4

Slide 4 text

4 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” 4 Présentez-vous 1. Qui est un coach agile ? 2. Qui est PO ? 3. Qui est PM ? 4. Qui est top manager ? 5. Qui est architecte ? 6. Qui est développeur ? 7. Qui s’est perdu ?

Slide 5

Slide 5 text

5 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” La valeur ? 01

Slide 6

Slide 6 text

6 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” L’agilité et la valeur ๏ L’agilité est basée sur la valeur ๏ Nous prenons des décisions par rapport à cette valeur > Plus la valeur est élevée, plus il faut l’implémenter tôt > Moins c’est élevée, plus il faut le faire tard ๏ Mais la valeur, c’est quoi ? > Le business ? > Le client ? > La technologie ? > Les cookies ? > Autre ?

Slide 7

Slide 7 text

7 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” La nature du développement logiciel ๏ La valeur c’est ce que vous voulez : > La vie humaine > L’information > La vitesse du produit > Les progrès rapides > Un environnement agréable > Autre… @qpautrat

Slide 8

Slide 8 text

8 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Délimiter le système 02

Slide 9

Slide 9 text

9 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” 2001, l’ère du monolithe ๏ Une seule base de données > Et même un seul schéma ๏ La modélisation unique > De persistance > Utilisé partout, même au sein du métier ๏ Une seule base de code > Et même un seul contexte ๏ Une seule unité de déploiement > Tout ou rien

Slide 10

Slide 10 text

10 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Appréhender un monolithe ๏ Nous avions l’habitude de spécifier le système dans sa globalité > Puis le développer > Puis le qualifier > Puis… > Puis le déployer en production ๏ Pourquoi cette méthode était mauvaise ? > Attente que tout soit disponible avant la première mise en production > Effet tunnel > Charge cognitive importante > Feeback des utilisateurs recueilli tardivement

Slide 11

Slide 11 text

11 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Découper !!!!

Slide 12

Slide 12 text

12 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Les périmètres applicatifs ๏ Ils permettent de délimiter des parties différentes du système > Qui représentent des unités cohérentes > Des unités plus petites > Charge cognitive abordable > Permettent d’obtenir de l’autonomie ๏ En Domain Driven Design : > Ils sont appelés “bounded contexts” > Ils font partie des patterns stratégiques du DDD

Slide 13

Slide 13 text

13 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Exemple du VTC (Véhicule de Tourisme avec Chauffeur) ๏ Quelques bounded contexts possibles : > Authentification > Administration des chauffeurs > Administration des prix > Réservation d’une course > Facturation > Affichage de la position du véhicule en temps réel > Communiquer avec le chauffeur > Comptabilité > Fidélisation ๏ Est-ce que tous ces périmètres ont la même valeur ? Les bounded contexts

Slide 14

Slide 14 text

14 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Classer les périmètres ๏ Core > Le cœur de votre système > Ce qui est différenciant par rapport aux concurrents > Complexe > Build > Ce sont les périmètres prioritaires ๏ Supporting > Essentiel au système > Utilisé par le coeur > Build ou buy ๏ Generic > Nécessaire mais pas critique > Buy Core domain chart © Source: https://github.com/ddd-crew/core-domain-charts

Slide 15

Slide 15 text

15 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Exemple du VTC ๏ Core potentiels : > Réservation d’une course > Affichage de la position du véhicule en temps réel > Communication avec le chauffeur > Administration des prix ๏ Supporting potentiels : > Administration des chauffeurs > Fidélisation ๏ Generic potentiels : > Authentification > Facturation Core domain chart > Comptabilité

Slide 16

Slide 16 text

16 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Topologie d’équipe ๏ Principe de « pizza team » @ Amazon : > Une équipe = au nombre de personnes que l’on peut nourrir avec deux pizzas > Pas assez à manger : surdimensionnée > Trop à manger : sous-dimensionnée ๏ Features « Core » = valeur de votre système > Il faut mettre une équipe en adéquation > Pas d’équipe full juniors > Equipe non externalisée > Recrutement ? ๏ Features « Supporting » > On peut commencer à externaliser certaines parties

Slide 17

Slide 17 text

17 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Comment délimiter ? 03

Slide 18

Slide 18 text

18 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Déterminer ces périmètres ๏ Plusieurs stratégies : > Imposée par un top manager qui n’est pas au cœur de l’équipe > L’intuition d’un architecte + Et en microservices svp > L’organisation de l’entreprise + Loi de Conway > De la collaboration via des ateliers

Slide 19

Slide 19 text

19 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” L’atelier “event storming” © Source: Introducing EventStorming - Alberto Brandolini Matériel

Slide 20

Slide 20 text

20 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” ๏ Historiquement : > Une équipe détenait la connaissance > Une équipe fonctionnelle était chargée de recueillir le besoin > Une équipe de réalisation était chargée du développement > Une équipe était chargée de qualifier l’application ๏ L’event storming prône la communication entre toutes les parties prenantes : > Tout ceux ayant des questions > Tout ceux ayant des réponses L’atelier “event storming” Qui inviter ?

Slide 21

Slide 21 text

21 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” © Source: Introducing EventStorming - Alberto Brandolini L’atelier “event storming” Les évènements

Slide 22

Slide 22 text

22 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” © Source: Introducing EventStorming - Alberto Brandolini L’atelier “event storming” Placer le 1er évènement

Slide 23

Slide 23 text

23 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” © Source: Introducing EventStorming - Alberto Brandolini L’atelier “event storming” Placer tous les évènements

Slide 24

Slide 24 text

24 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” © Source: Introducing EventStorming - Alberto Brandolini L’atelier “event storming” Challenger les événements

Slide 25

Slide 25 text

25 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” © Source: Introducing EventStorming - Alberto Brandolini L’atelier “event storming” Trouver les événements pivots

Slide 26

Slide 26 text

26 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” L’atelier “event storming” Déterminer les bounded contexts © Source: Introducing EventStorming - Alberto Brandolini

Slide 27

Slide 27 text

27 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecturer un périmètre 04

Slide 28

Slide 28 text

28 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Un peu d’histoire : Data Driven Development

Slide 29

Slide 29 text

29 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecture spaghettis ๏ “Big ball of mud” en anglais > Avant les années 2000 > Quoique… ๏ Illusion de vitesse, mais… > Non testable automatiquement > Onboarding compliqué > Souffrance en maintenance > Souffrance à faire évoluer

Slide 30

Slide 30 text

30 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecture en couches

Slide 31

Slide 31 text

31 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Les microservices

Slide 32

Slide 32 text

32 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Le design d’un périmètre ๏ La construction d’un périmètre se base sur une architecture logicielle ๏ Ce système doit être maintenu > De plus, il évolue > Doit s’effectuer avec le moins de douleur possible ๏ L’architecture logicielle est donc centrale dans le dispositif > C’est un processus itératif, refactoré en permanence > Basée sur la communication

Slide 33

Slide 33 text

33 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Hexagonal architecture d’Alistair Cockburn (2005)

Slide 34

Slide 34 text

34 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Isolation de la valeur

Slide 35

Slide 35 text

35 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Pérennité Sans technologie

Slide 36

Slide 36 text

36 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecture port et adapter

Slide 37

Slide 37 text

37 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” User-side / server-side

Slide 38

Slide 38 text

38 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecture évolutive / différer les décisions

Slide 39

Slide 39 text

39 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” La clean architecture de Robert C. Martin (2012)

Slide 40

Slide 40 text

40 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Coder la valeur 05

Slide 41

Slide 41 text

41 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Exemple du VTC : administration des prix Règles de gestion ๏ Différentes catégories de course > Avec un prix de base pour chaque catégorie + basique + dimanche, jour férié + etc. > Qui sera ensuite indexé sur la distance, etc. ๏ La règle de mise à jour des prix est la suivante : > On fixe le prix de la catégorie 1 > Catégorie 2 = 11% de la catégorie 1 > Catégorie 3 = 23% de la catégorie 1 > Catégorie 4 = 34% de la catégorie 1 > Max : 110€

Slide 42

Slide 42 text

42 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle anémique catégorie : int pri : int Type de course

Slide 43

Slide 43 text

43 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle anémique Traitements externes Use case catégorie=1 pri =20 Type de course catégorie=2 pri =22 Type de course catégorie=3 pri =24 Type de course catégorie=4 pri =26 Type de course prix = 20 prix = 20*11% prix = 20*23% prix = 20*34% Prix plafonné à 110€

Slide 44

Slide 44 text

44 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle anémique Use case Traitements externes Type de course Type de course Perte de cohérence catégorie=1 pri =20 Type de course catégorie=2 pri =22 Type de course catégorie=4 pri =26 Type de course

Slide 45

Slide 45 text

45 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Où doit être situé le métier ? Ty e e cour e Connaissance des % par type de course ? Parcours des types de course ? Max 110€ ?

Slide 46

Slide 46 text

46 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” L’application est le métier Ty e e cour e Connaissance des % par type de course Parcours des types de course Max : 110€

Slide 47

Slide 47 text

47 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle anémique vers un modèle riche Grille tarifaire catégorie:int pri :int Type de course La liste des types de course n’est pas exposée modifierPrix(int) calculerPrix(int) Liste

Slide 48

Slide 48 text

48 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Vers un modèle Riche Traitements internes catégorie=1 pri = catégorie=2 pri = catégorie=3 pri = catégorie=4 pri = Use case modifierPrix(int) Grille tarifaire modifierPrix(20) 20*34% 20*23% 20*11% 20 calculerPrix(20) calculerPrix(20) calculerPrix(20) calculerPrix(20) Type de course Type de course Type de course Type de course

Slide 49

Slide 49 text

49 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Un modèle riche ๏ Il faut placer les règles au même niveau que les données > Principe de « tell don’t ask » > Permet la réutilisation ๏ Il faut protéger les données > Permet d’éviter les états incohérents > Respect de l’encapsulation de la POO ๏ L’extérieur ne sait pas comment est organisé l’intérieur > Refactorisation facilitée

Slide 50

Slide 50 text

50 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle riche modifierPrix(int) Grille tarifaire catégorie:int pri :int calculerPrix(int) Type de course primitive obsession

Slide 51

Slide 51 text

51 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Modèle riche énumération CatégorieCourse valeur:int PrixCourse calculer(pourcentage) modifierPrix(int) Grille tarifaire primitive obsession Basique Dimanche, jour férié Etc. catégorie:CatégorieCourse pri :Prix urse calculerPrix(int) Type de course

Slide 52

Slide 52 text

52 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” calcule(pourcentage) Grille tarifaire TypeCatégorie TypeCatégorie valeur:int PrixCourse calculer(pourcentage) modifierPrix(int) Grille tarifaire Prix plafonné à 110€ ? Modèle riche Enrichir encore et encore énumération CatégorieCourse catégorie:CatégorieCourse pri :Prix urse calculerPrix(int) Type de course

Slide 53

Slide 53 text

53 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Aggregate, aggregate root, entity, value object TypeCatégorie PrixCourse calcule(pourcentage) Domain Driven Design tactique TypeCatégorie PrixCourse calcule(pourcentage) valeur:int PrixCourse calculer(pourcentage) catégorie:CatégorieCourse pri :Prix urse calculerPrix(int) Type de course Grille tarifaire modifierPrix(int) Grille tarifaire énumération CatégorieCourse

Slide 54

Slide 54 text

54 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Architecture hexagonale + DDD tactique modifierPrix(int) Grille tarifaire Modifier les prix de la grille tarifaire

Slide 55

Slide 55 text

55 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Bilan 06

Slide 56

Slide 56 text

56 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” Les 3 éléments importants à retenir ๏ L’isolation de la valeur s’effectue à plusieurs niveaux > Périmètres applicatifs > Equipes ๏ Un système doit être conçu de façon modulaire > Trouver les périmètres applicatifs > Déterminer ceux qui ont le plus de valeur > Adapter les équipes ๏ Isoler le métier au sein de chaque périmètre > Permet la testabilité, la maintenabilité, l’évolutivité > Permet de repousser les choix techniques > Permet de découvrir, creuser, expérimenter, démontrer Core domain chart Event Storming Team topologies Clean & hexagonale architecture DDD tactique DDD stratégique > Architecture logiciel > Code

Slide 57

Slide 57 text

57 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit” MERCI "L'idéal de la vie n'est pas l'espoir de devenir parfait, c'est la volonté d'être toujours meilleur" Ralph Waldo Emerson

Slide 58

Slide 58 text

58 Agile tour Aix Marseille 2022 - “Isoler la valeur de votre produit”