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

  • 928