Slide 1

Slide 1 text

Speaker : Alexandre Touret - @touret_alex Améliorer les compétences et les infrastructures avec les katas d'architecture

Slide 2

Slide 2 text

#JugSummerCamp @touret_alex Alexandre Touret Architecte / Développeur #Java #API #CI #Cloud #Software_Craftsmanship blog.touret.info blog.worldline.tech

Slide 3

Slide 3 text

#JugSummerCamp @touret_alex Histoire d’un·e développeur·euse Toute ressemblance avec des personnes existantes ou ayant existé...

Slide 4

Slide 4 text

#JugSummerCamp @touret_alex

Slide 5

Slide 5 text

#JugSummerCamp @touret_alex

Slide 6

Slide 6 text

#JugSummerCamp @touret_alex All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. Grady Booch

Slide 7

Slide 7 text

#JugSummerCamp @touret_alex

Slide 8

Slide 8 text

#JugSummerCamp @touret_alex

Slide 9

Slide 9 text

#JugSummerCamp @touret_alex

Slide 10

Slide 10 text

#JugSummerCamp @touret_alex So how are we supposed to get great architects, if they only get the chance to architect fewer than a half-dozen times in their career?" Ted Neward

Slide 11

Slide 11 text

#JugSummerCamp @touret_alex Les katas

Slide 12

Slide 12 text

#JugSummerCamp @touret_alex Il s'agit de mouvements codifiés à partir de l'expérience de combattants dont les noms ont été perdus. Les katas sont par la suite devenus des outils de transmission de techniques, mais aussi de principes, de combat.

Slide 13

Slide 13 text

#JugSummerCamp @touret_alex Les katas d’architecture Du coding dojo pour architectes

Slide 14

Slide 14 text

#JugSummerCamp @touret_alex Phase 1: Warm-up (5mn) ▪ On constitue les équipes en “brassant” les populations ▪ Pas besoin d’ordinateur, du papier et des marqueurs suffisent ▪ On essaye de se focaliser sur le formalisme à adopter

Slide 15

Slide 15 text

#JugSummerCamp @touret_alex Le modèle C4

Slide 16

Slide 16 text

#JugSummerCamp @touret_alex User My wonderful system Enables magic API Management Identifies/authorizes customers requests Calls API endpoint External System User Call / Usage System Internal System Chart legend: FILE GATEWAY Sends files Fetchs files regularly S3 STORAGE Stores files

Slide 17

Slide 17 text

#JugSummerCamp @touret_alex External System User Call / Usage System Internal System Chart legend: User My API GATEWAY API Proxy Runtime:[Api Gateway] Mediation to back end OAUTHv2 Provider Runtime:[Api Gateway] Identifies and authorizes (1) API Call [JSON/HTTPS] My Wonderful System My App Runtime:[K8S,Docker,Spring Boot,JAVA11] (2) API Call [JSON/HTTPS] (3) Queries and stores datas [mongodb] Kubernetes MongoDB Replicaset Primary Secondary Arbiter

Slide 18

Slide 18 text

#JugSummerCamp @touret_alex Phase 2: Conception (1H) ▪ Les équipes reçoivent le sujet ▪ On peut demander toutes les questions que l’on veut au modérateur ▪ Les équipes peuvent prendre des hypothèses ▪ On peut utiliser toutes les technologies que l’on veut

Slide 19

Slide 19 text

#JugSummerCamp @touret_alex Un exemple: Les plus mauvaises routes Les collectivités territoriales ont du mal à identifier les routes à rénover et ont de moins en moins de moyens. Elles souhaitent avoir des rapports dynamiques et précis sur l’utilisation des routes à la journée. […] Volumétrie: 1 transaction par seconde par voiture

Slide 20

Slide 20 text

#JugSummerCamp @touret_alex Quelques conseils ▪ Clarifier le besoin (pourquoi une nouvelle application ?) ▪ Identifier les chiffres clés ▪ Zoomer progressivement

Slide 21

Slide 21 text

#JugSummerCamp @touret_alex Une conception

Slide 22

Slide 22 text

#JugSummerCamp @touret_alex

Slide 23

Slide 23 text

#JugSummerCamp @touret_alex Postulat: On ne gère pas les zones blanches. Un simple rejeu est fait coté voiture

Slide 24

Slide 24 text

#JugSummerCamp @touret_alex Peer Review (5mn/équipe) ▪ Vous devez présenter votre vision tout au long de la conception … ▪ … et présenter votre solution aux autres équipes.

Slide 25

Slide 25 text

#JugSummerCamp @touret_alex Comment évaluer une architecture?

Slide 26

Slide 26 text

#JugSummerCamp @touret_alex Trois caractéristiques Simplicité Evolutivité Adapté à l’environnement

Slide 27

Slide 27 text

#JugSummerCamp @touret_alex A Worldline ▪ Kata mensuel (avant le COVID19) ▪ On a contextualisé et complexifié les sujets au fur et à mesure ▪ Certaines équipes l’ont personnalisé

Slide 28

Slide 28 text

#JugSummerCamp @touret_alex Les bénéfices ▪ Travailler en équipe sur un nouveau sujet ▪ Identifier et s’adapter aux contraintes ▪ Communiquer et convaincre ▪ D’appréhender d’autres manières de penser ▪ Progresser grâce à l’expérience de vos collègues

Slide 29

Slide 29 text

#JugSummerCamp @touret_alex Pour aller plus loin ▪ http://nealford.com/katas/list.html ▪ https://archkatas.herokuapp.com/ ▪ https://blog.worldline.tech/2019/12/12/arch itecture-katas.html

Slide 30

Slide 30 text

#JugSummerCamp @touret_alex Un grand architecte ne se développe que par la pratique. Franck Brooks (Design of Design)

Slide 31

Slide 31 text

#JugSummerCamp @touret_alex Merci pour votre feedback! https://bit.ly/katas-jugsummercamp

Slide 32

Slide 32 text

Merci ! Alexandre Touret - @touret_alex