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

Architecture Katas: Improve your system architecture design skills in a fun way !

Architecture Katas: Improve your system architecture design skills in a fun way !

How to learn architecture ? How to improve in this field ? How do we recognize a good or a bad architecture ?

There are plenty of books and training sessions about this subject. The best thing is to practice!

In the same way as coding dojos, I will present to you architecture katas. There are created by Ted Neward (http://blogs.tedneward.com/). His idea came from the following observation :

"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?"

One solution to this issue could be to practice regularly on several topics to gain experience.

After a brief introduction of how to start designing an architecture, I will present architecture katas, and the conduct.

To conclude, after this first try I will present the benefits I had benefited.

Alexandre Touret

October 12, 2022
Tweet

More Decks by Alexandre Touret

Other Decks in Programming

Transcript

  1. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Architecture Katas:
    Improve your system
    architecture design skills in a
    fun way !
    Alexandre Touret
    Worldline

    View Slide

  2. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Alexandre Touret
    Architect / Developer
    #Java #API #CI #Cloud
    #Software_Craftsmanship
    https://blog.touret.info

    View Slide

  3. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    A Developer Story

    View Slide

  4. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas

    View Slide

  5. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas

    View Slide

  6. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    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 Slide

  7. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas

    View Slide

  8. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas

    View Slide

  9. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas

    View Slide

  10. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    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 Slide

  11. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Architecture
    Katas
    Coding dojos for architects

    View Slide

  12. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Stage #1 : Warm-up (5mn)
    • Build teams mixing different profiles
    • No computer needed!
    • Try to find suitable syntax and formalism

    View Slide

  13. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    C4 Model

    View Slide

  14. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    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 Slide

  15. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    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 Slide

  16. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Stage# 2: Design (1H)
    • All the teams get the subject
    • Teams can ask any questions
    • Teams can make any assumptions (if it’s relevant)
    • Teams can use any technology they want

    View Slide

  17. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    An exemple: Poorest roads
    Public administration has been struggling identifying
    poorest roads to refurbish.
    With the help of new car connectivity features, they would
    like to get circulation traffic dynamic dashboards.
    These one could help them determining which road
    worths should be revamped.
    Key figure: 1 transaction per second per car

    View Slide

  18. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Tips & Tricks
    • Clarify the functional requirements (Why setting a new
    application up ?)
    • Point out technical requirements and key figures
    • Zoom on your design step by step

    View Slide

  19. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    ccepts files from truste
    customers
    person
    system
    e ternal person
    e ternal system

    View Slide

  20. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    n ular ava prin oot
    person
    system
    e ternal person
    e ternal system
    Assumption:
    We on’t deal with Mobile phone dead zones

    View Slide

  21. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Stage #3 : Peer Review (5mn/team)
    • You now have to present your design
    • … an e plain it to the other teams

    View Slide

  22. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    How to evaluate a design?

    View Slide

  23. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Three characteristics
    Simplicity Evolutivity Fits to the context

    View Slide

  24. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    At Worldline
    • We started some initiatives setting up katas as a regular
    meeting (before the COVID19 crisis)
    • We started online sessions using Zoom
    • We contextualized and complexified step by step the
    subjects

    View Slide

  25. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Benefits
    • Working in a new team on a new subject
    • Identifying and adapting to requirements
    • Communicating and persuading
    • Gaining insight
    • Understanding other ways of thinking
    • Getting better thanks to colleague's experience

    View Slide

  26. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Going further

    View Slide

  27. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    By dint of building well, you get to be a good
    architect
    Aristotle

    View Slide

  28. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Thanks for your feedback!

    View Slide

  29. @worldlinexpert / @touret_alex
    #Devoxx #ArchitectureKatas
    Architecture Katas:
    Improve your system
    architecture design skills in a
    fun way !
    Alexandre Touret
    Worldline
    Thanks !

    View Slide