Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas

Slide 5

Slide 5 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas

Slide 8

Slide 8 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas

Slide 9

Slide 9 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas

Slide 10

Slide 10 text

@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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

@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

Slide 13

Slide 13 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas C4 Model

Slide 14

Slide 14 text

@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

Slide 15

Slide 15 text

@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

Slide 16

Slide 16 text

@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

Slide 17

Slide 17 text

@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

Slide 18

Slide 18 text

@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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

@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

Slide 21

Slide 21 text

@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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

@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

Slide 25

Slide 25 text

@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

Slide 26

Slide 26 text

@worldlinexpert / @touret_alex #Devoxx #ArchitectureKatas Going further

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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