Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Améliorer les compétences et les infrastructures avec les katas d'architecture

Améliorer les compétences et les infrastructures avec les katas d'architecture

Comment devenir architecte ? Comment progresser dans ce domaine ? A quoi reconnaît-on une bonne ou une mauvaise architecture ? Il existe certes un grand nombre d' ouvrages et formations sur le sujet, mais le mieux est quand même de pratiquer !

Une solution à ce problème pourrait être donc de s’entraîner régulièrement sur des sujets différents pour gagner en expérience.

Pour rendre l’apprentissage de l’architecture et de la conception plus empirique - et plus ludique, nous allons découvrir les Katas d’Architecture au travers d’un retour d’expérience. Nous découvrirons comment les mettre en œuvre ainsi que les bénéfices que j’en ai tirés.

Alexandre Touret

September 09, 2022
Tweet

More Decks by Alexandre Touret

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. #JugSummerCamp @touret_alex

    View full-size slide

  5. #JugSummerCamp @touret_alex

    View full-size slide

  6. #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

    View full-size slide

  7. #JugSummerCamp @touret_alex

    View full-size slide

  8. #JugSummerCamp @touret_alex

    View full-size slide

  9. #JugSummerCamp @touret_alex

    View full-size slide

  10. #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

    View full-size slide

  11. #JugSummerCamp @touret_alex
    Les katas

    View full-size slide

  12. #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.

    View full-size slide

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

    View full-size slide

  14. #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

    View full-size slide

  15. #JugSummerCamp @touret_alex
    Le modèle C4

    View full-size slide

  16. #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

    View full-size slide

  17. #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

    View full-size slide

  18. #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

    View full-size slide

  19. #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

    View full-size slide

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

    View full-size slide

  21. #JugSummerCamp @touret_alex
    Une conception

    View full-size slide

  22. #JugSummerCamp @touret_alex

    View full-size slide

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

    View full-size slide

  24. #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.

    View full-size slide

  25. #JugSummerCamp @touret_alex
    Comment évaluer une
    architecture?

    View full-size slide

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

    View full-size slide

  27. #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é

    View full-size slide

  28. #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

    View full-size slide

  29. #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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  32. Merci !
    Alexandre Touret - @touret_alex

    View full-size slide