Cette conférence contient une satire des comportements dogmatiques en entreprise, réservée à un public averti.
Ces cascades sont effectuées par des professionnels (non certifiés SAFe), ne tentez pas de les reproduire au sein de vos équipes.
@JulienTopcu
@JosianChevalier
@JulienTopcu
@JosianChevalier
Comfort
Class
Price
Schedule
Fare
Space
Train
Booking
Criteria
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Comfort
Class
Mandalore Express
@JulienTopcu
@JosianChevalier
Comfort
Class
Price
Schedule
Fare
Space
Train
Booking
Criteria
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Comfort
Class
Mandalore Express
@JulienTopcu
@JosianChevalier
Comfort
Class
Criteria
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Price
Schedule
Fare
Space
Train
Booking
Comfort
Class
Search
Booking
@JulienTopcu
@JosianChevalier
Comfort
Class
Criteria
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Price
Schedule
Fare
Space
Train
Booking
Comfort
Class
Search
Booking
Dupliquer ≠ Decoupler !
... lorsque conceptuellement couplé
@JulienTopcu
@JosianChevalier
Comfort
Class
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Price
Schedule
Fare
Space
Train
Booking
Comfort
Class
Search ?
Booking ?
Criteria
Criteria
Bound
@JulienTopcu
@JosianChevalier
Comfort
Class
Selection
Search
Price
Bound
Schedule
Fare
Space
Train
Price
Schedule
Fare
Space
Train
Booking
Comfort
Class
Criteria
Criteria
Bound
Search ?
Booking ?
?
?
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Schedule
Price
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Comfort
Class
?
Search ?
Booking ?
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Schedule
Price
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Comfort
Class
?
Search ?
Booking ?
Diviser en service trop tôt..
Trouver les frontières...
à partir des comportements ?
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Price
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Comfort
Class
?
Search ?
Booking ?
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Price
Bound
Booking
Space
Train
Fare
Price
Comfort
Class
Comfort
Class
Search ?
Booking ?
Amount
Currency
Currency
Mandalore
Express
Mandalore
Express
Schedule
Amount
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Price
Bound
Booking
Space
Train
Fare
Price
Comfort
Class
Comfort
Class
Search ?
Booking ?
Amount
Currency
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Schedule
Amount
@JulienTopcu
@JosianChevalier
Space
Train
Search
Fare
Criteria
Selection
Price
Bound
Booking
Space
Train
Fare
Price
Comfort
Class
Comfort
Class
Search ?
Booking ?
Amount
Currency
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Schedule
Amount
@JulienTopcu
@JosianChevalier
Space
Train
Fare
Criteria
Selection
Bound
Space
Train
Fare
Price
Comfort
Class
Search ?
Booking ?
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Search
Booking
Schedule
Amount
@JulienTopcu
@JosianChevalier
Search ?
Booking ?
Amount
Currency
Selection
Bound
Fare
Price
Comfort
Class
Criteria
Space
Train
Currency
Space
Train
SpaceTrains
Booker
SpaceTrains
Finder
Search
Booking
Schedule
Amount
@JulienTopcu
@JosianChevalier
Search ?
Booking ?
Amount
Currency
Selection
Bound
Fare
Price
Comfort
Class
Criteria
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Space
Train
Search
Booking
Space
Train
Amount
Schedule
@JulienTopcu
@JosianChevalier
Search ?
Booking ?
Amount
Currency
Selection
Bound
Fare
Price
Comfort
Class
Criteria
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Space
Train
Search
Booking
Space
Train
Amount
Schedule
@JulienTopcu
@JosianChevalier
Space
Train
Search
Booking
Search ?
Booking ?
Space
Train
Amount
Currency
Selection
Bound
Selected
Fare
Price
Comfort
Class
Criteria
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Option
Amount
Schedule
@JulienTopcu
@JosianChevalier
Space
Train
Search
Booking
Search ?
Booking ?
Space
Train
Amount
Currency
Selection
Bound
Selected
Fare
Price
Comfort
Class
Criteria
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Option
Amount
Schedule
@JulienTopcu
@JosianChevalier
Space
Train
Search
Booking
Search ?
Booking ?
Space
Train
Amount
Currency
Selection
Bound
Selected
Fare
Criteria
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Option
Price
Comfort
Class
Currency
Amount
Schedule
@JulienTopcu
@JosianChevalier
Space
Train
Search
Booking
Search ?
Booking ?
Space
Train
Amount
Currency
Selection
Bound
Selected
Fare
Criteria
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Option
Price
Comfort
Class
Currency
Amount
Schedule
@JulienTopcu
@JosianChevalier
Space
Train
Search
Booking
Search ?
Booking ?
Space
Train
Selection
Bound
Selected
Fare
Criteria
SpaceTrains
Booker
SpaceTrains
Finder
Fare
Option
Price
Comfort
Class
Currency
Amount
Schedule
@JulienTopcu
@JosianChevalier
Schedule
Price
Comfort
Class
Search
Booking
Shared Kernel
Amount
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
@JulienTopcu
@JosianChevalier
Schedule
Search
Booking
Shared Kernel
Amount
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Space
Train
Search
Booking
Space
Train
Bound
Selected
Fare
Fare
Option
?
?
Selection
Criteria
Price
Comfort
Class
@JulienTopcu
@JosianChevalier
Schedule
Search
Booking
Shared Kernel
Amount
Currency
SpaceTrains
Booker
SpaceTrains
Finder
Space
Train
Search
Booking
Space
Train
Bound
Selected
Fare
Fare
Option
?
?
Selection
Criteria
Price
Comfort
Class
@JulienTopcu
@JosianChevalier
Search
Space
Train
Search
Booking
Booking
Space
Train
Space
Train
Search
Bound
Criteria
Selection
Shared Kernel
@JulienTopcu
@JosianChevalier
Search
Bound
Criteria
Space
Train
Selection
Search
Booking
Booking
Space
Train
AntiCorruption Layer
Space
Train
Search
Space
Train
Shared Kernel
@JulienTopcu
@JosianChevalier
Search
Bound
Criteria
Space
Train
Selection
Search
Booking
Booking
Space
Train
AntiCorruption Layer
Shared Kernel
@JulienTopcu
@JosianChevalier
Shared Kernel
Search
Booking
AntiCorruption Layer
@JulienTopcu
@JosianChevalier
Que faire du Shared Kernel ?
@JulienTopcu
@JosianChevalier
@JulienTopcu
@JosianChevalier
Search
Booking
Shared Kernel
Schedule
Price
Comfort
Class
Amount
Currency
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
@JulienTopcu
@JosianChevalier
Search
Booking
Shared Kernel
Schedule
Price
Comfort
Class
Amount
Currency
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
Comfort
Class
Price
@JulienTopcu
@JosianChevalier
Schedule
Price
Comfort
Class
Search
Booking
Shared Kernel
Comfort
Class
Amount
Currency
Price
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
@JulienTopcu
@JosianChevalier
Schedule
Price
Comfort
Class
Search
Booking
Shared Kernel
Comfort
Class
Amount
Currency
Price
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
Schedule
@JulienTopcu
@JosianChevalier
Search
Booking
Shared Kernel
Schedule
Price
Comfort
Class
Comfort
Class
Amount
Currency
Price
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
Schedule
@JulienTopcu
@JosianChevalier
@JulienTopcu
@JosianChevalier
@JulienTopcu
@JosianChevalier
Search
Booking
Shared Kernel
Schedule
Price
Comfort
Class
Comfort
Class
Amount
Currency
Price
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
Schedule
@JulienTopcu
@JosianChevalier
Search
Booking
Money
Schedule
Price
Comfort
Class
Comfort
Class
Amount
Currency
Price
Space
Train
Search
Booking
Space
Train
Selection
Bound
Selected
Fare
Criteria
Fare
Option
Tax
Portion
Tax
Rate
Schedule
@JulienTopcu
@JosianChevalier
Booking
Search
Money
ACL
CF
CF
U
D
Generic Sub Domain
@JulienTopcu
@JosianChevalier
La Théorie
@JulienTopcu
@JosianChevalier
Interphase
@JulienTopcu
@JosianChevalier
Interphase
@JulienTopcu
@JosianChevalier
Interphase
@JulienTopcu
@JosianChevalier
Prophase
@JulienTopcu
@JosianChevalier
Prophase
@JulienTopcu
@JosianChevalier
Metaphase
@JulienTopcu
@JosianChevalier
Transitional Shared Kernel
Shared Kernel
@JulienTopcu
@JosianChevalier
Tout ce qui est dans le Shared Kernel doit avoir :
La même signification
La même
representation
(structure & types)
Les mêmes invariants
Les mêmes
règles métier
⚠️Pour tout ce qui dépend du Shared Kernel⚠️
@JulienTopcu
@JosianChevalier
Entre des équipes, le Shared-Kernel ne devrait pas être partagé
@JulienTopcu
@JosianChevalier
Anaphase
Shared Kernel
@JulienTopcu
@JosianChevalier
Anaphase
Shared Kernel
@JulienTopcu
@JosianChevalier
Anaphase
Shared Kernel
@JulienTopcu
@JosianChevalier
Anaphase
Shared
Kernel
@JulienTopcu
@JosianChevalier
Residual Shared Kernel
Shared
Kernel
@JulienTopcu
@JosianChevalier
Simple Telophase
@JulienTopcu
@JosianChevalier
Multiple Telophase
Shared
Kernel
@JulienTopcu
@JosianChevalier
Multiple Telophase
Shared
Kernel
@JulienTopcu
@JosianChevalier
Multiple Telophase
To be continued...
Julien Topçu
Josian Chevalier
SHODO
This is the way
@JulienTopcu
@JosianChevalier
@JulienTopcu
@JosianChevalier
Space
Train
Search
Selection
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Criteria
Shared Kernel
Search
Booking
Amount
Currency
@JulienTopcu
@JosianChevalier
Space
Train
Search
Selection
Bound
Booking
Space
Train
Schedule
Price
Criteria
Search
Booking
SEat
Location
Shared Kernel
Amount
Currency
Fare
Comfort
Class
@JulienTopcu
@JosianChevalier
Space
Train
Search
Selection
Bound
Booking
Space
Train
Fare
Schedule
Price
Criteria
Search
Booking
SEat
Location
Fare
Shared Kernel
Amount
Currency
Comfort
Class
Comfort
Class
@JulienTopcu
@JosianChevalier
Space
Train
Search
Selection
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Criteria
Search
Booking
SEat
Location
Fare
Comfort
Class
Shared Kernel
Amount
Currency
@JulienTopcu
@JosianChevalier
Space
Train
Search
Selection
Bound
Booking
Space
Train
Fare
Schedule
Price
Comfort
Class
Criteria
Search
Booking
SEat
Location
Shared Kernel
Fare
Comfort
Class
Amount
Currency
Model Mitosis : ne plus se tromper entre les microservices et le monolithe
By Julien Topçu
Model Mitosis : ne plus se tromper entre les microservices et le monolithe
Tout comme le développement doit être itératif, le design du logiciel doit changer lorsque le contexte et notre compréhension du problème évoluent. Au fur et à mesure qu'un logiciel se développe pour résoudre plus de problèmes, il devient moins souple dans sa capacité à évoluer. Des tensions apparaissent au sein du modèle métier du logiciel qui peine à rester cohérent. Finalement, il atteint une masse critique et devient un monolithe de code en spaghetti... Comment pouvons nous déterminer quand il est temps de modulariser notre logiciel ? Comment prendre la décision de le scinder en plusieurs modules ou services ? Comment gérer la différenciation progressive de nos modèles métiers tout en évitant les couplages inutiles ? Il n'est pas facile de découper son logiciel en deux car déterminer les bonnes frontières peut s'avérer être compliqué. Découvrez avec nous le Model Mitosis, une approche dynamique utilisée pour diviser un modèle métier en plusieurs modèles qui seront façonnés et découplés de manière itérative. Gagnez en flexibilité afin de mieux déterminer quand diviser votre logiciel en plusieurs services tout en évitant de payer les coût d'échelle des microservices ou bien de devenir un monolithe distribué.
- 964