BOOSTEZ VOTRE PROCESSUS DE DÉCOUVERTE
AVEC L'EXAMPLE MAPPING !
BRUNOBOUCARD |
@brunoboucard
QUI ÊTES-VOUS ?
@brunoboucard
B R U N O B O U C A R D
+ 3 0 A N S D A N S L E D O M A I N E I N F O R M A T I Q U E
C OA C H A G I L E / T E C H N I Q U E
O R G A N I S A T E U R D U M E E T U P B D D P A R I S
C O N F É R E N C I E R E T F O R M A T E U R I N T E R N A T I O N A L
QUI SUIS-JE ?
@brunoboucard
L ’ E X A M P L E M A P P I N G
E N Q U E L Q U E S M O T S
@brunoboucard
V I S E À A V O I R D E S
C O N V E R S A T I O N S S T R U C T U R É E S
I L L U S T R É E S A V E C D E S
E X E M P L E S C O N C R E T S
S U R L A B A S E D E S
C R I T È R E S D ’ A C C E P T A T I O N
D ’ U N E U S E R S T O R Y
L’EXAMPLE MAPPING
@brunoboucard
DEV
QA
PO
A L I G N E R L E S M OD È LE S M E N TAU X
@brunoboucard
DEV
QA
PO
A L I G N E R L E S M OD È LE S M E N TAU X
@brunoboucard
REPOSE SUR L’ÉCHANGE
Avoir des conversations
est plus important que
De capturer des conversations
est plus important que
D’automatisation des conversations
Liz Keogh
@brunoboucard
C O N V E R S AT I O N S
S T RU C T U R É E S ?
ROSE / PRODUCT MANAGER
TOUJOURS HEUREUSE D'APPRENDRE DE NOUVELLES CHOSES
@brunoboucard
STRUCTURED CONVERSATIONS
P E U X - T U M E D O N N E R
U N E X E M P L E
C O N C R E T S ' I L T E
P L A Î T ?
@brunoboucard
25 MINUTES PAR USER STORY
V É R I F I E R AV A N T L ' A T E L I E R
Q U E L A S T O RY S É L E C T I O N N É E
R E S P E C T E I N V E S T
How INVEST helps team write effective user stories… | by Saba | Medium
@brunoboucard
25 MINUTES PAR USER STORY
V É R I F I E R AV A N T L ' A T E L I E R
Q U E L A S T O RY S É L E C T I O N N É E
R E S P E C T E I N V E S T
How INVEST helps team write effective user stories… | by Saba | Medium
@brunoboucard
I NDEPENDENT
N EGOTIABLE
V ALUABLE
E STIMABLE
S MALL
T ESTABLE
FINIR PAR UN CONSENSUS
@brunoboucard
FINIR PAR UN CONSENSUS
LA STORY EST PRÊTE À
ÊTRE DÉVELOPPÉE
OU FORMULÉE
LA STORY EST PRÊTE À
ÊTRE DÉVELOPPÉE
OU FORMULÉE
@brunoboucard
UN EXEMPLE CONCRET
S'IL TE PLAÎT!
@brunoboucard
T OU T
D ’ A B O R D,
D O N N E Z L A
VISION DU
PRODUIT
TOUJOURS HEUREUSE D'APPRENDRE DE NOUVELLES CHOSES
ROSE / PRODUCT MANAGER
@brunoboucard
1 / 3 S H O U T Y P RO D U C T QA DEV
Nous développons une nouvelle application de médias
sociaux – présentant certaines similitudes avec Twitter –
appelée Shouty
Les utilisateurs de l’application pourront « crier » – et seront
entendus par les autres utilisateurs dans un rayon
de 1000 m du crieur
PO
@brunoboucard
QA DEV
PO
Nous avons quelques personnages Sean et Lucy
Shouty prendra initialement en charge les cas d'utilisation
suivants
• Café à moitié prix au Barney's Café jusqu'à midi
aujourd’hui
• Happy hours au O'Sullivan's Irish Pub de 17h à 23h
2 / 3 S H O U T Y P RO D U C T
@brunoboucard
QA DEV
La plate-forme cible est constituée de smartphones
compatibles GPS
Exigences fonctionnelles
• Les cris doivent être uniquement du texte
– limités à 2 000 caractères
• La portée des cris doit être de
– 1 000 m
3 / 3 S H O U T Y P RO D U C T PO
@brunoboucard
Écoutez un cri
Écoutez un cri
Give us a concrete example
please!
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Give us a concrete example
please!
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Give us a concrete example
please!
Donnez-moi un exemple concret,
s'il vous plaît !
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
QA DEV
PO
@brunoboucard
GIVEN
WHEN
THEN
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard Not hear own shout
Not hear own shout
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
In range shout is heard
In range shout is heard Not hear own shout
Not hear own shout
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
Give us a concrete example
please!
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
Donnez-moi un exemple concret,
s'il vous plaît !
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
Le cri hors de portée
n'est pas entendu
Le cri hors de portée
n'est pas entendu
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
Give us a concrete example
please!
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
Le cri hors de portée
n'est pas entendu
Le cri hors de portée
n'est pas entendu
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
Give us a concrete example
please!
Donnez-moi un exemple concret,
s'il vous plaît !
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
Le cri hors de portée
n'est pas entendu
Le cri hors de portée
n'est pas entendu
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [0, 1000]
> Sean crie
=> Lucy n’entend rien
* Lucy est à [0, 0]
* Sean est à [0, 1000]
> Sean crie
=> Lucy n’entend rien
QA DEV
PO
@brunoboucard
Crier un message > 2000
caractères
Crier un message > 2000
caractères ?
QA
QA DEV
PO
@brunoboucard
Crier un message > 2000
caractères
Crier un message > 2000
caractères
QA
QA DEV
PO
@brunoboucard
Écoutez un cri
Écoutez un cri
À portée, un cri
se fait entendre
À portée, un cri
se fait entendre
Je n'entends pas
mon propre cri
Je n'entends pas
mon propre cri
Le cri hors de portée n'est pas
entendu
Le cri hors de portée n'est pas
entendu
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [0, 900]
> Sean crie
=> Lucy entend Sean
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [800, 800]
> Sean crie
=> Sean n’entend rien
* Lucy est à [0, 0]
* Sean est à [0, 1000]
> Sean crie
=> Lucy n’entend rien
* Lucy est à [0, 0]
* Sean est à [0, 1000]
> Sean crie
=> Lucy n’entend rien
Crier un message > 2000
caractères
Crier un message > 2000
caractères
QA DEV
PO
@brunoboucard
S A N S C A D R E S , S A N S A T E L I E R S
N O U S É C H O U O N S
DA N S N O T R E C O M M U N I C A T I O N
@brunoboucard
T E L E P H O N E G A M E
Client : Pourriez-vous écrire “So long,
Alicia” en violet ?
Employé : Bien sûr.
Client : Et mettre des étoiles autour ?
Employé : Pas de problème. J'ai écrit
ceci et je le remettrai immédiatement à
mon décorateur de gâteaux. Nous
l'aurons pour vous demain matin.
@brunoboucard
T E L E P H O N E G A M E
Le résultat est drôle et affligeant …
Et pourtant vraie !
@brunoboucard
LA VIEILLE
FABLE DES SIX
AVEUGLES ET
L'ÉLÉPHANT
@brunoboucard
N O U S S O M M E S
R E M P L I S D E
P R É J U G É S Q U I
N O U S
D É Ç O I V E N T
R É G U L I È R E M E N T
@brunoboucard
L ’ E V E N T S T O R M I N G
E N Q U E L Q U E S M O T S
@brunoboucard
V I S A N T À C R É E R U N M O D È L E C O M P L E X E
C O M P O S É D ’ U N F L U X D E N A R R A T I O N S M É T I E R
P E R M E T D E D É C O U V R I R C O L L E C T I V E M E N T
L E M É T I E R A F I N D E L E C O M P R E N D R E
@brunoboucard
D E P U I S U N S Y S T È M E D ’ I N F O R M A T I O N
À U N E A P P L I C A T I O N
E V E N T S T O R M I N G E S T C O M P O S É
D E P L U S I E U R S A T E L I E R S D E D É C O U V E R T E
Events
Big Picture
Improve your organization
Process Modelling
Design services collaboratively
Software Design
Design key software behaviour
Software Design
Design key software behaviour
VISION
DETAILS
@brunoboucard
https://www.eventstorming.com/
C O N F I G U R AT I O N D E L A S A L L E
@brunoboucard
https://www.eventstorming.com/
ÉTABLIR UNE TIMELINE
@brunoboucard
https://www.eventstorming.com/
ATELIER STRUCTURÉ
 INVITEZ LES BONNES PERSONNES – BUSINESS, IT, UX
@brunoboucard
https://www.eventstorming.com/
ATELIER STRUCTURÉ
 INVITEZ LES BONNES PERSONNES – BUSINESS, IT, UX
 FOURNIR DES SURFACES DE MODÈLES ILLIMITÉES, DES
MARQUEURS, DES POST-ITS
@brunoboucard
https://www.eventstorming.com/
ATELIER STRUCTURÉ
 INVITEZ LES BONNES PERSONNES – BUSINESS, IT, UX
 FOURNIR DES SURFACES DE MODÈLES ILLIMITÉES, DES
MARQUEURS, DES POST-ITS
 MODÉLISEZ TOUTE UNE LIGNE MÉTIER AVEC DES
ÉVÉNEMENTS DE DOMAINE
@brunoboucard
https://www.eventstorming.com/
 POST-IT ORANGE
ÉVÉNEMENT DU DOMAINE
@brunoboucard
https://www.eventstorming.com/
 POST-IT ORANGE
 LE VERBE AU PASSÉ
ÉVÉNEMENT DU DOMAINE
@brunoboucard
https://www.eventstorming.com/
 POST-IT ORANGE
 LE VERBE AU PASSÉ
 PERTINENT POUR
L'EXPERT DU DOMAINE
ÉVÉNEMENT DU DOMAINE
@brunoboucard
https://www.eventstorming.com/
ÉVÉNEMENT DU DOMAINE
C O M M E C H O R É G R A P H I E D E F A I T S
 SÉMANTIQUE SIMPLE
 NOTATION SIMPLE
 FACILE À SAISIR PAR TOUT LE MONDE DANS LA SALLE
@brunoboucard
EVE NT STORMING
C O M P R E N D R E L E P R O B L È M E C O L L E C T I V E M E N T E T V I S U E L L E M E N T
RÉSERVER DES PLACES AU THÉÂTRE
@brunoboucard
EVE NT STORMING
C O M P R E N D R E L E P R O B L È M E C O L L E C T I V E M E N T E T V I S U E L L E M E N T
@brunoboucard
https://www.eventstorming.com/
CROISSANCE ORGANIQUE
P H A S E D E D I V E R G E N C E
@brunoboucard
EVENT STORMING
P H A S E D ’ E X P L O R A T I O N
@brunoboucard
Domain-Driven Design Crew (github.com)
SIGNIFICATION DES POST-ITS
@brunoboucard
EVENT STORMING
L E N I V E A U D U P R O C E S S U S – C O N V E R G E V E R S U N E S O L U T I O N
@brunoboucard
SUGGESTION RESERVATION
Core Domain Supporting
Subdomain
EVENT STORMING
C O N T E X T M A P P O U R F A I R E É M E R G E R L E S S O U S - D O M A I N E S
Introduction to BDD Example Mapping | Cucumber Blog
@brunoboucard
SUGGESTION RESERVATION
Core Domain Supporting
Subdomain
EVENT STORMING
L E N I V E A U S O F T W A R E D E S I G N A V E C L E S D É V E L O P P E U R S
@brunoboucard
C O M M E N T F O N C T I O N N E M E N T
L E S A T E L I E R S D E D É C O U V E R T E S
@brunoboucard
Storytelling For Kids: Benefits And Ways To Tell
Storytelling For Kids: Benefits And Ways To Tell (momjunction.com)
N O U S A I M O N S
L E S H I S T O I R E S
AV E C
B E A U C O U P
D ' E X E M P L E S !
@brunoboucard
R A C O N T E R D E S H I S T O I R E S , P A S É C R I R E D E S H I S T O I R E S
@brunoboucard
I L F A U T V I S U A L I S E R P O U R S E S O U V E N I R D E S H I S T O I R E S
@brunoboucard
AV O I R D E S C O N V E R S AT I O N S A I D E À
C L A R I F I E R V O T R E C O M P R É H E N S I O N
@brunoboucard
I L F A U T A U S S I V I S U A L I S E R E T AV O I R D E S
C O N V E R S I O N S P O U R S ' A L I G N E R S U R L E P O I N T
D E D I V E R G E N C E @brunoboucard
CONCENTRATION PROGRESSIVE
htwww.jpattonassociates.com/story-mapping/
@brunoboucard
CONCENTRATION PROGRESSIVE
htwww.jpattonassociates.com/story-mapping/
@brunoboucard
CONCENTRATION PROGRESSIVE
htwww.jpattonassociates.com/story-mapping/
@brunoboucard
CONCENTRATION PROGRESSIVE
htwww.jpattonassociates.com/story-mapping/
@brunoboucard
CONCENTRATION PROGRESSIVE
htwww.jpattonassociates.com/story-mapping/
@brunoboucard
Q U A N D T O U T E S T C L A I R
V O T R E V I S A G E L E M O N T R E
@brunoboucard
LES DIFFÉRENTES PHASES D'UN
ATELIER DE DÉCOUVERTE
@brunoboucard
PHASE 1 – DÉCOUVRIR
Découvrir
time
D É V E L O P P E R
D E S I D É E S
P A R T I E F A C I L E
@brunoboucard
PHASE 2 – EXPLORER
Explorer
time
D É V E L O P P E R
D E S I D É E S
P A R T I E F A C I L E
E X P L O R E R E T
E X P É R I M E N T E R
P A R T I E
P A S S I O N N É E
Découvrir
@brunoboucard
PHASE 3 – CADRER
Cadrer
P R I S E D E
D É C I S I O N S
A C T I O N S
P A R T I E
D I F F I C L E
time
D É V E L O P P E R
D E S I D É E S
P A R T I E F A C I L E
E X P L O R E R E T
E X P É R I M E N T E R
P A R T I E
P A S S I O N N É E
Découvrir Explorer
@brunoboucard
SUGGESTION RESERVATION
Core Domain Supporting
Subdomain
EVENT STORMING
L E N I V E A U S O F T W A R E D E S I G N A V E C L E S D É V E L O P P E U R S
@brunoboucard
M O N P R E M I E R E V E N T S T O R M I N G N ' A
PA S É T É C O M P L È T E M E N T S AT I S FA I S A N T
@brunoboucard
C O M M E N T PA S S E R D E L ’ E S PA C E P R O B L È M E
À L ’ E S PA C E S O L U T I O N ?
@brunoboucard
https://panodyssey.com/fr/article/culture/la-deception-fp9jrsh93wv6#
D O I S - J E A B A N D O N N E R L ’ I D É E D E R É D U I R E
L ’ É C A R T E N T R E L ’ E S P A C E D E S P R O B L È M E S E T
L ’ E S P A C E D E S S O L U T I O N S ?
@brunoboucard
D É C O M P O S E R U N A T E L I E R PA R T Y P E
@brunoboucard
EVENT STORMING
• EVENTS
• AGREGATE
• INVARIANTS
• TRANSACTIONAL
• AUTONOMY
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
EVENT STORMING
• EVENTS
• AGREGATE
• INVARIANTS
• TRANSACTIONAL
• AUTONOMY
EXAMPLE MAPPING
• STORY
• BUSINESS RULE
• EXAMPLE
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
EVENT STORMING
• EVENTS
• AGREGATE
• INVARIANTS
• TRANSACTIONAL
• AUTONOMY
EXAMPLE MAPPING
• STORY
• BUSINESS RULE
• EXAMPLE
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
EVENT STORMING
• EVENTS
• AGREGATE
• INVARIANTS
• TRANSACTIONAL
• AUTONOMY
EXAMPLE MAPPING
• STORY
• BUSINESS RULE
• EXAMPLE
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
MASHUP KEY
EVENT STORMING
• EVENTS
• AGREGATE
• INVARIANTS
• TRANSACTIONAL
• AUTONOMY
EXAMPLE MAPPING
• STORY
• BUSINESS RULE
• EXAMPLE
Responsabilité
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
A P P L I Q U O N S - L E
À N O T R E
C O N T E X T E !
PRAGMATIQUE
HADJA / DÉVELOPPEUSE
@brunoboucard
SUGGESTION RESERVATION
Introduction to BDD Example Mapping | Cucumber Blog
MASHUP
E V E N T S T O R M I N G & E X A M P L E M A P P I N G
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un exemple
concret, s'il vous plaît
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un exemple
concret, s'il vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un
exemple concret, s'il
vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un
exemple concret, s'il
vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un
exemple concret, s'il
vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un
exemple concret, s'il
vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
Donnez-nous un
exemple concret, s'il
vous plaît !
@brunoboucard
Introduction to BDD Example Mapping | Cucumber Blog
EXAMPLE MAPPING
@brunoboucard
C O M M E N T A L L E R E N C O R E P L U S L O I N
DA N S N O T R E C O M P R É H E N S I O N
@brunoboucard
@brunoboucard
L E C R C C A R D S
E N Q U E L Q U E S M O T S
• C R C C A R D S SONT GÉNÉRALEMENT UTILISÉES POUR
LA CONCEPTION ET LE DÉVELOPPEMENT ORIENTÉS OBJET
• ONT ÉTÉ CRÉÉES POUR MODÉLISER UN SYSTÈME BASÉ SUR
DES CLASSES, DES RESPONSABILITÉS ET DES
COLLABORATEURS
• P E R M E T T E N T A U X
P E R S O N N E S N O N - T E C H N I Q U E S D E
P A R T I C I P E R L À O Ù U M L E S T
R E J E T É
CRC CARDS
@brunoboucard
L ’ A T E L I E R P R E N D
P L A C E A S S I S
A U T O U R
D ' U N E T A B L E
T O U T L E M O N D E P R E N D
U N E C A R T E E T
U N S H A R P I E
CRC CARDS
@brunoboucard
CRC CARDS
O U T I L S I N F O R M E L S
A J O U T E D E S C O N C E P T S
D E R E S P O N S A B I L I T É
E T D E C O L L A B O R A T I O N
P O U R M O D É L I S E R
@brunoboucard
C L A S S E N O M M É E ?
R E S P O N S A B I L I T É S P O U R ?
C O L L A B O R A T I O N S A V E C ?
BRAINSTORMING
V O U S V O U S M E T T E Z
A U D É F I !
P E N S E Z À T O U T P A R T A G E R
A V E C L E S P A R T I C I P A N T S
@brunoboucard
M O D É L I S E R
E N S E M B L E AV E C D E S
C O N V E R S AT I O N S
S T R U C T U R É E S
CRC CARDS
@brunoboucard
COMMENT ÇA
FONCTIONNE ?
CRC CARDS
@brunoboucard
CRC INDEX CARD
@brunoboucard
CRC INDEX CARD
Classe
@brunoboucard
CRC INDEX CARD
Classe
Responsabilités
@brunoboucard
CRC INDEX CARD
Class
Responsabilités Collaborateurs
Classe
@brunoboucard
½ R É S E RVAT I O N D E S I E G E S
DA N S U N T R A I N
Il existe diverses règles et politiques commerciales
autour desquelles des sièges peuvent être réservés. Pour
un train dans son ensemble, pas plus de 70 % des
sièges ne peuvent être réservés à l'avance
et idéalement, aucune voiture individuelle ne devrait
pas avoir plus de 70 % de sièges réservés
@brunoboucard
2 / 2 R É S E RVAT I O N D E S I E G E S
DA N S U N T R A I N
Cependant, il existe une autre règle commerciale qui
stipule que vous devez placer tous les sièges d'une
réservation dans la même voiture
Cela pourrait vous faire dépasser les 70 % pour
certaines voitures, assurez-vous simplement de
respecter 70 % pour l'ensemble du train
@brunoboucard
CRC INDEX CARD
Class
Responsabilités Collaborateurs
Classe
Train
@brunoboucard
CRC INDEX CARD
Class
Responsabilités Collaborateurs
Classe
Train
Max 70 %
@brunoboucard
CRC INDEX CARD
Class
Responsabilités Collaborateurs
Classe
Train
Max 70 %
Coach
@brunoboucard
CRC CARDS MAPPING
Seat
Est-il disponible ?
Train
Ne dépasse pas la capacité
globale du train 70 %
Coach*
Coach
Ne dépasse pas la capacité globale
de la voiture 70 %
Seat*
@brunoboucard
P O U V O N S - N O U S C O N N E C T E R U N E X A M P L E
M A P P I N G E T D E S C A R T E S C R C ?
@brunoboucard
EVENT STORMING
CRC CARDS Règles métier
EXAMPLE MAPPING
Règles
métier
From
Aggregate
From Business Rules
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
A P P L I Q U O N S - L E
À N O T R E
C O N T E X T E !
PRAGMATIQUE
HADJA / DÉVELOPPEUSE
@brunoboucard
BRAINSTORMING R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING
A P P L Y R E S P O N S I B I L I T Y
R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING R È G L E S
E X A M P L E M A P P I N G
@brunoboucard
BRAINSTORMING
IL EST TEMPS DE C O N N E C T E R L E S
C O L L A B O R A T E U R S
@brunoboucard
BRAINSTORMING
IL EST TEMPS DE C O N N E C T E R L E S
C O L L A B O R A T E U R S
@brunoboucard
BRAINSTORMING
CE N'EST PAS NÉCESSAIREMENT LE M O D È L E F I N A L
MAIS C'EST UN B O N P O I N T P O U R C O M M E N C E R
IL EST TEMPS DE C O N N E C T E R L E S
C O L L A B O R A T E U R S
@brunoboucard
S I N O U S N E P R A T I Q U O N S
P A S E V E N T S T O R M I N G
C O M M E N T F A I T - O N U N
C R C C A R D S ?
HADJA / DÉVELOPPEUSE
PRAGMATIQUE
@brunoboucard
USER STORY MAPPING
CRC CARDS
EXAMPLE MAPPING
Règles
métier
Règles métier
Depuis plusieurs user stories - MVP
Depuis des règles métiers
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
USER STORY MAPPING
@brunoboucard
PRENEZ 3 OU 4 STORIES(MVP)
D E P U I S U S E R S T O RY M A P
V O U S S E L E C T I O N N E Z U N E
N O U V E L L E F O N C T I O N N A L I T E
( 3 O U 4 S T O R I E S )
C ’ E S T É Q U I VA L E N T
À D E C O M P O S E R E N U N A G R É G A T
D E P U I S U N E V E N T S T O R M I N G
@brunoboucard
E S T - I L P O S S I B L E D ' A L L E R E N C O R E P L U S F I N E M E N T ?
USER STORY MAPPING
CRC CARDS
EXAMPLE MAPPING
User
Stories
EVENT STORMING
CODE FORMULATION
Exemples
Responsabilités
D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É
@brunoboucard
[Test]
public async Task Suggest_one_seat_when_Auditorium_contains_one_available_seat_only()
{
// Ford Auditorium-1
//
// 1 2 3 4 5 6 7 8 9 10
// A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2)
// B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2)
var showId = new ShowId("1");
var partyRequested = new PartyRequested(1);
var seatAllocator = new SeatAllocator(_auditoriumLayoutAdapter);
var suggestionsMade = await seatAllocator.MakeSuggestions(showId, partyRequested);
Check.That(suggestionsMade.SeatNames(PricingCategory.First)).ContainsExactly("A3");
}
FORMULATION DE CODE
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
Only Suggest Available Seat
Only Suggest Available Seat
@brunoboucard
[Test]
public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only()
{
// Ford Auditorium-1
//
// 1 2 3 4 5 6 7 8 9 10
// A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2)
// B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2)
var showId = new ShowId("1");
var partyRequested = new PartyRequested(1);
var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter)
.MakeSuggestions(showId, partyRequested);
Check.That(suggestionsMade.SeatNames(PricingCategory.First))
.ContainsExactly("A3");
}
FORMULATION DE CODE
Only Suggest Available Seat
Only Suggest Available Seat
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
@brunoboucard
[Test]
public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only()
{
// Ford Auditorium-1
//
// 1 2 3 4 5 6 7 8 9 10
// A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2)
// B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2)
var showId = new ShowId("1");
var partyRequested = new PartyRequested(1);
var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter)
.MakeSuggestions(showId, partyRequested);
Check.That(suggestionsMade.SeatNames(PricingCategory.First))
.ContainsExactly("A3");
}
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
FORMULATION DE CODE
Only Suggest Available Seat
Only Suggest Available Seat
@brunoboucard
[Test]
public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only()
{
// Ford Auditorium-1
//
// 1 2 3 4 5 6 7 8 9 10
// A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2)
// B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2)
var showId = new ShowId("1");
var partyRequested = new PartyRequested(1);
var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter)
.MakeSuggestions(showId, partyRequested);
Check.That(suggestionsMade.SeatNames(PricingCategory.First))
.ContainsExactly("A3");
}
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
FORMULATION DE CODE
Only Suggest Available Seat
Only Suggest Available Seat
@brunoboucard
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
* Show Id: “1”
* Request 1 seat
> Make Suggestions
=> Suggested: “A3”
[Test]
public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only()
{
// Ford Auditorium-1
//
// 1 2 3 4 5 6 7 8 9 10
// A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2)
// B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2)
var showId = new ShowId("1");
var partyRequested = new PartyRequested(1);
var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter)
.MakeSuggestions(showId, partyRequested);
Check.That(suggestionsMade.SeatNames(PricingCategory.First))
.ContainsExactly("A3");
}
FORMULATION DE CODE
Only Suggest Available Seat
Only Suggest Available Seat
@brunoboucard
C O D E P R Ê T À Ê T R E D É V E L OP P E R
AV E C L E T D D O U T S I D E / I N
@brunoboucard
R É S U M É D E T O U S L E S M A S H U P S AV E C
E X A M P L E M A P P I N G
ATELIER CIBLE
CLEF MASHUP
DEPUIS
ATELIER SOURCE
EXAMPLE MAPPING
BUSINESS RULE
AGREGGAT/POST-IT JAUNE
EVENT STORMING
EXAMPLE MAPPING
BUSINESS RULE
PLUSIEURS STORIES / MVP
USER STORY MAPPING
CRC CARDS
BUSINESS RULE
CARTE BLEUE
EXAMPLE MAPPING
CODE FORMULATION
EXAMPLES
CARTE VERTE
EXAMPLE MAPPING
@brunoboucard
R É S U M É D E T O U S L E S M A S H U P S AV E C
E X A M P L E M A P P I N G
ATELIER CIBLE
CLEF MASHUP
DEPUIS
ATELIER SOURCE
EXAMPLE MAPPING
BUSINESS RULE
AGREGGAT/POST-IT JAUNE
EVENT STORMING
EXAMPLE MAPPING
BUSINESS RULE
PLUSIEURS STORIES / MVP
USER STORY MAPPING
CRC CARDS
BUSINESS RULE
CARTE BLEUE
EXAMPLE MAPPING
CODE FORMULATION
EXAMPLES
CARTE VERTE
EXAMPLE MAPPING
@brunoboucard
@brunoboucard
Example Mapping
EventStorming
CRC Cards
Code Formulation
User Story
Mapping
L ’ E X A M P L E M A P P I N G B O O S T V O T R E
P R O C E S S U S D E D É C O U V E R T E
L E S A T E L I E R S D E T Y P E
M A S H U P D E D É C O U V E R T E
F O U R N I S S E N T
U N E V I S I O N À L A F O I S
C L A I R E E T P R O G R E S S I V E
@brunoboucard @brunoboucard
S U R L A B A S E D ’ U N E
C O M P R É H E N S I O N
C O L L E C T I V E
D E S B E S O I N S D E
U T I L I S A T E U R / C L I E N T
@brunoboucard @brunoboucard
PERMET DE COMPRENDRE
DEPUIS UN NIVEAU GROS GRAINS
VERS UN NIVEAU GRAINS FINS
MASHUP WORKSHOPS
@brunoboucard
MASHUP WORKSHOPS
POUR OBTENIR UNE VISION COLLECTIVE
GLOBALE ET LOCALE
@brunoboucard
MASHUP WORKSHOPS
UNE VISION GLOCALE
@brunoboucard
AUGMENTE LA COMPRENHENTION METIER
DE L'ÉQUIPE DE DÉVELOPPEMENT
MASHUP WORKSHOPS
@brunoboucard
AUGMENTE LA CREATIVITE
DE L'ÉQUIPE DE DÉVELOPPEMENT
MASHUP WORKSHOPS
@brunoboucard
AUGMENTE LA QUALITE
DU PRODUIT
MASHUP WORKSHOPS
@brunoboucard
AUGMENTE L’IMPACTE CLIENT / UTILISATEUR
MASHUP WORKSHOPS
@brunoboucard
J ' A I D E S S I N É C E
S C H É M A E N 2 0 1 8 !
L E D I A G R A M M E D E
C L A S S E S U M L F Û T
R E M P L A C É P A R L E C R C
C A R D S
@brunoboucard
E X A M P L E M A P P I N G 2 0 1 3
MON EXPERIENCE
@brunoboucard
E V E N T S T O R M I N G 2 0 1 5
P R E M I E R M A S H U P 2 0 1 7
C RC C A R D S R E M P L AC E U M L 2 0 1 9
F O R M U L AT I O N D E C O D E 2 0 2 1
AT E L I E R S M A S H U P E N B R E F
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard
AT E L I E R S M A S H U P E N B R E F
N'ABANDONNEZ PAS EN CHEMIN
ANALYSER CHAQUE SOUS-TYPE
DE VOTRE ATELIER
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard
AT E L I E R S M A S H U P E N B R E F
SOYEZ VIGILANT SUR TOUT LES
POSSIBLES
SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT
Y EN AVOIR UN AUTRE
N'ABANDONNEZ PAS EN CHEMIN
ANALYSER CHAQUE SOUS-TYPE
DE VOTRE ATELIER
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard
AT E L I E R S M A S H U P E N B R E F
TESTEZ VOTRE MASHUP
AVANT D'APPLIQUER UN MASHUP,
JOUEZ-LE PLUSIEURS FOIS
N'ABANDONNEZ PAS EN CHEMIN
ANALYSER CHAQUE SOUS-TYPE
DE VOTRE ATELIER
SOYEZ VIGILANT SUR TOUT LES
POSSIBLES
SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT
Y EN AVOIR UN AUTRE
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard
AT E L I E R S M A S H U P E N B R E F
ADAPTEZ VOTRE MASHUP
FAIRE UN PAS DE CÔTÉ
ET RÉFLÉCHIR À DE NOUVEAUX USAGES
N'ABANDONNEZ PAS EN CHEMIN
ANALYSER CHAQUE SOUS-TYPE
DE VOTRE ATELIER
SOYEZ VIGILANT SUR TOUT LES
POSSIBLES
SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT
Y EN AVOIR UN AUTRE
TESTEZ VOTRE MASHUP
AVANT D'APPLIQUER UN MASHUP,
JOUEZ-LE PLUSIEURS FOIS
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard
AT E L I E R S M A S H U P E N B R E F
VISION GLOCALE
FACILITE LA COMPRÉHENSION
DES BESOINS MÉTIER / UTILISATEUR
@brunoboucard
SOYEZ VIGILANT SUR TOUT LES
POSSIBLES
SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT
Y EN AVOIR UN AUTRE
TESTEZ VOTRE MASHUP
AVANT D'APPLIQUER UN MASHUP,
JOUEZ-LE PLUSIEURS FOIS
ADAPTEZ VOTRE MASHUP
FAIRE UN PAS DE CÔTÉ
ET RÉFLÉCHIR À DE NOUVEAUX USAGES
N'ABANDONNEZ PAS EN CHEMIN
ANALYSER CHAQUE SOUS-TYPE
DE VOTRE ATELIER
PRATIQUEZ BEAUCOUP UN ATELIER
C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE
VOUS POUVEZ COMPRENDRE LE CHAMP DES
POSSIBILITÉS
@brunoboucard

Boostez votre processus de découverte avec Example Mapping.pdf

  • 1.
    BOOSTEZ VOTRE PROCESSUSDE DÉCOUVERTE AVEC L'EXAMPLE MAPPING ! BRUNOBOUCARD | @brunoboucard
  • 2.
  • 3.
    B R UN O B O U C A R D + 3 0 A N S D A N S L E D O M A I N E I N F O R M A T I Q U E C OA C H A G I L E / T E C H N I Q U E O R G A N I S A T E U R D U M E E T U P B D D P A R I S C O N F É R E N C I E R E T F O R M A T E U R I N T E R N A T I O N A L QUI SUIS-JE ? @brunoboucard
  • 4.
    L ’ EX A M P L E M A P P I N G E N Q U E L Q U E S M O T S @brunoboucard
  • 5.
    V I SE À A V O I R D E S C O N V E R S A T I O N S S T R U C T U R É E S I L L U S T R É E S A V E C D E S E X E M P L E S C O N C R E T S S U R L A B A S E D E S C R I T È R E S D ’ A C C E P T A T I O N D ’ U N E U S E R S T O R Y L’EXAMPLE MAPPING @brunoboucard
  • 6.
    DEV QA PO A L IG N E R L E S M OD È LE S M E N TAU X @brunoboucard
  • 7.
    DEV QA PO A L IG N E R L E S M OD È LE S M E N TAU X @brunoboucard
  • 8.
    REPOSE SUR L’ÉCHANGE Avoirdes conversations est plus important que De capturer des conversations est plus important que D’automatisation des conversations Liz Keogh @brunoboucard
  • 9.
    C O NV E R S AT I O N S S T RU C T U R É E S ? ROSE / PRODUCT MANAGER TOUJOURS HEUREUSE D'APPRENDRE DE NOUVELLES CHOSES @brunoboucard
  • 10.
    STRUCTURED CONVERSATIONS P EU X - T U M E D O N N E R U N E X E M P L E C O N C R E T S ' I L T E P L A Î T ? @brunoboucard
  • 11.
    25 MINUTES PARUSER STORY V É R I F I E R AV A N T L ' A T E L I E R Q U E L A S T O RY S É L E C T I O N N É E R E S P E C T E I N V E S T How INVEST helps team write effective user stories… | by Saba | Medium @brunoboucard
  • 12.
    25 MINUTES PARUSER STORY V É R I F I E R AV A N T L ' A T E L I E R Q U E L A S T O RY S É L E C T I O N N É E R E S P E C T E I N V E S T How INVEST helps team write effective user stories… | by Saba | Medium @brunoboucard I NDEPENDENT N EGOTIABLE V ALUABLE E STIMABLE S MALL T ESTABLE
  • 13.
    FINIR PAR UNCONSENSUS @brunoboucard
  • 14.
    FINIR PAR UNCONSENSUS LA STORY EST PRÊTE À ÊTRE DÉVELOPPÉE OU FORMULÉE LA STORY EST PRÊTE À ÊTRE DÉVELOPPÉE OU FORMULÉE @brunoboucard
  • 15.
    UN EXEMPLE CONCRET S'ILTE PLAÎT! @brunoboucard
  • 16.
    T OU T D’ A B O R D, D O N N E Z L A VISION DU PRODUIT TOUJOURS HEUREUSE D'APPRENDRE DE NOUVELLES CHOSES ROSE / PRODUCT MANAGER @brunoboucard
  • 17.
    1 / 3S H O U T Y P RO D U C T QA DEV Nous développons une nouvelle application de médias sociaux – présentant certaines similitudes avec Twitter – appelée Shouty Les utilisateurs de l’application pourront « crier » – et seront entendus par les autres utilisateurs dans un rayon de 1000 m du crieur PO @brunoboucard
  • 18.
    QA DEV PO Nous avonsquelques personnages Sean et Lucy Shouty prendra initialement en charge les cas d'utilisation suivants • Café à moitié prix au Barney's Café jusqu'à midi aujourd’hui • Happy hours au O'Sullivan's Irish Pub de 17h à 23h 2 / 3 S H O U T Y P RO D U C T @brunoboucard
  • 19.
    QA DEV La plate-formecible est constituée de smartphones compatibles GPS Exigences fonctionnelles • Les cris doivent être uniquement du texte – limités à 2 000 caractères • La portée des cris doit être de – 1 000 m 3 / 3 S H O U T Y P RO D U C T PO @brunoboucard
  • 20.
    Écoutez un cri Écoutezun cri Give us a concrete example please! QA DEV PO @brunoboucard
  • 21.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Give us a concrete example please! QA DEV PO @brunoboucard
  • 22.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Give us a concrete example please! Donnez-moi un exemple concret, s'il vous plaît ! QA DEV PO @brunoboucard
  • 23.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre QA DEV PO @brunoboucard
  • 24.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre QA DEV PO @brunoboucard
  • 25.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre QA DEV PO @brunoboucard
  • 26.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre QA DEV PO @brunoboucard GIVEN WHEN THEN
  • 27.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard Not hear own shout Not hear own shout * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri QA DEV PO @brunoboucard
  • 28.
    Écoutez un cri Écoutezun cri In range shout is heard In range shout is heard Not hear own shout Not hear own shout * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean Give us a concrete example please! À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri Donnez-moi un exemple concret, s'il vous plaît ! QA DEV PO @brunoboucard
  • 29.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien QA DEV PO @brunoboucard
  • 30.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri Le cri hors de portée n'est pas entendu Le cri hors de portée n'est pas entendu * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien Give us a concrete example please! QA DEV PO @brunoboucard
  • 31.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri Le cri hors de portée n'est pas entendu Le cri hors de portée n'est pas entendu * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien Give us a concrete example please! Donnez-moi un exemple concret, s'il vous plaît ! QA DEV PO @brunoboucard
  • 32.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri Le cri hors de portée n'est pas entendu Le cri hors de portée n'est pas entendu * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [0, 1000] > Sean crie => Lucy n’entend rien * Lucy est à [0, 0] * Sean est à [0, 1000] > Sean crie => Lucy n’entend rien QA DEV PO @brunoboucard
  • 33.
    Crier un message> 2000 caractères Crier un message > 2000 caractères ? QA QA DEV PO @brunoboucard
  • 34.
    Crier un message> 2000 caractères Crier un message > 2000 caractères QA QA DEV PO @brunoboucard
  • 35.
    Écoutez un cri Écoutezun cri À portée, un cri se fait entendre À portée, un cri se fait entendre Je n'entends pas mon propre cri Je n'entends pas mon propre cri Le cri hors de portée n'est pas entendu Le cri hors de portée n'est pas entendu * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [0, 900] > Sean crie => Lucy entend Sean * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [800, 800] > Sean crie => Sean n’entend rien * Lucy est à [0, 0] * Sean est à [0, 1000] > Sean crie => Lucy n’entend rien * Lucy est à [0, 0] * Sean est à [0, 1000] > Sean crie => Lucy n’entend rien Crier un message > 2000 caractères Crier un message > 2000 caractères QA DEV PO @brunoboucard
  • 36.
    S A NS C A D R E S , S A N S A T E L I E R S N O U S É C H O U O N S DA N S N O T R E C O M M U N I C A T I O N @brunoboucard
  • 37.
    T E LE P H O N E G A M E Client : Pourriez-vous écrire “So long, Alicia” en violet ? Employé : Bien sûr. Client : Et mettre des étoiles autour ? Employé : Pas de problème. J'ai écrit ceci et je le remettrai immédiatement à mon décorateur de gâteaux. Nous l'aurons pour vous demain matin. @brunoboucard
  • 38.
    T E LE P H O N E G A M E Le résultat est drôle et affligeant … Et pourtant vraie ! @brunoboucard
  • 39.
    LA VIEILLE FABLE DESSIX AVEUGLES ET L'ÉLÉPHANT @brunoboucard
  • 40.
    N O US S O M M E S R E M P L I S D E P R É J U G É S Q U I N O U S D É Ç O I V E N T R É G U L I È R E M E N T @brunoboucard
  • 41.
    L ’ EV E N T S T O R M I N G E N Q U E L Q U E S M O T S @brunoboucard
  • 42.
    V I SA N T À C R É E R U N M O D È L E C O M P L E X E C O M P O S É D ’ U N F L U X D E N A R R A T I O N S M É T I E R P E R M E T D E D É C O U V R I R C O L L E C T I V E M E N T L E M É T I E R A F I N D E L E C O M P R E N D R E @brunoboucard
  • 43.
    D E PU I S U N S Y S T È M E D ’ I N F O R M A T I O N À U N E A P P L I C A T I O N E V E N T S T O R M I N G E S T C O M P O S É D E P L U S I E U R S A T E L I E R S D E D É C O U V E R T E Events Big Picture Improve your organization Process Modelling Design services collaboratively Software Design Design key software behaviour Software Design Design key software behaviour VISION DETAILS @brunoboucard
  • 44.
    https://www.eventstorming.com/ C O NF I G U R AT I O N D E L A S A L L E @brunoboucard
  • 45.
  • 46.
    https://www.eventstorming.com/ ATELIER STRUCTURÉ  INVITEZLES BONNES PERSONNES – BUSINESS, IT, UX @brunoboucard
  • 47.
    https://www.eventstorming.com/ ATELIER STRUCTURÉ  INVITEZLES BONNES PERSONNES – BUSINESS, IT, UX  FOURNIR DES SURFACES DE MODÈLES ILLIMITÉES, DES MARQUEURS, DES POST-ITS @brunoboucard
  • 48.
    https://www.eventstorming.com/ ATELIER STRUCTURÉ  INVITEZLES BONNES PERSONNES – BUSINESS, IT, UX  FOURNIR DES SURFACES DE MODÈLES ILLIMITÉES, DES MARQUEURS, DES POST-ITS  MODÉLISEZ TOUTE UNE LIGNE MÉTIER AVEC DES ÉVÉNEMENTS DE DOMAINE @brunoboucard
  • 49.
  • 50.
    https://www.eventstorming.com/  POST-IT ORANGE LE VERBE AU PASSÉ ÉVÉNEMENT DU DOMAINE @brunoboucard
  • 51.
    https://www.eventstorming.com/  POST-IT ORANGE LE VERBE AU PASSÉ  PERTINENT POUR L'EXPERT DU DOMAINE ÉVÉNEMENT DU DOMAINE @brunoboucard
  • 52.
    https://www.eventstorming.com/ ÉVÉNEMENT DU DOMAINE CO M M E C H O R É G R A P H I E D E F A I T S  SÉMANTIQUE SIMPLE  NOTATION SIMPLE  FACILE À SAISIR PAR TOUT LE MONDE DANS LA SALLE @brunoboucard
  • 53.
    EVE NT STORMING CO M P R E N D R E L E P R O B L È M E C O L L E C T I V E M E N T E T V I S U E L L E M E N T RÉSERVER DES PLACES AU THÉÂTRE @brunoboucard
  • 54.
    EVE NT STORMING CO M P R E N D R E L E P R O B L È M E C O L L E C T I V E M E N T E T V I S U E L L E M E N T @brunoboucard
  • 55.
    https://www.eventstorming.com/ CROISSANCE ORGANIQUE P HA S E D E D I V E R G E N C E @brunoboucard
  • 56.
    EVENT STORMING P HA S E D ’ E X P L O R A T I O N @brunoboucard
  • 57.
    Domain-Driven Design Crew(github.com) SIGNIFICATION DES POST-ITS @brunoboucard
  • 58.
    EVENT STORMING L EN I V E A U D U P R O C E S S U S – C O N V E R G E V E R S U N E S O L U T I O N @brunoboucard
  • 59.
    SUGGESTION RESERVATION Core DomainSupporting Subdomain EVENT STORMING C O N T E X T M A P P O U R F A I R E É M E R G E R L E S S O U S - D O M A I N E S Introduction to BDD Example Mapping | Cucumber Blog @brunoboucard
  • 60.
    SUGGESTION RESERVATION Core DomainSupporting Subdomain EVENT STORMING L E N I V E A U S O F T W A R E D E S I G N A V E C L E S D É V E L O P P E U R S @brunoboucard
  • 61.
    C O MM E N T F O N C T I O N N E M E N T L E S A T E L I E R S D E D É C O U V E R T E S @brunoboucard
  • 62.
    Storytelling For Kids:Benefits And Ways To Tell Storytelling For Kids: Benefits And Ways To Tell (momjunction.com) N O U S A I M O N S L E S H I S T O I R E S AV E C B E A U C O U P D ' E X E M P L E S ! @brunoboucard
  • 63.
    R A CO N T E R D E S H I S T O I R E S , P A S É C R I R E D E S H I S T O I R E S @brunoboucard
  • 64.
    I L FA U T V I S U A L I S E R P O U R S E S O U V E N I R D E S H I S T O I R E S @brunoboucard
  • 65.
    AV O IR D E S C O N V E R S AT I O N S A I D E À C L A R I F I E R V O T R E C O M P R É H E N S I O N @brunoboucard
  • 66.
    I L FA U T A U S S I V I S U A L I S E R E T AV O I R D E S C O N V E R S I O N S P O U R S ' A L I G N E R S U R L E P O I N T D E D I V E R G E N C E @brunoboucard
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
    Q U AN D T O U T E S T C L A I R V O T R E V I S A G E L E M O N T R E @brunoboucard
  • 73.
    LES DIFFÉRENTES PHASESD'UN ATELIER DE DÉCOUVERTE @brunoboucard
  • 74.
    PHASE 1 –DÉCOUVRIR Découvrir time D É V E L O P P E R D E S I D É E S P A R T I E F A C I L E @brunoboucard
  • 75.
    PHASE 2 –EXPLORER Explorer time D É V E L O P P E R D E S I D É E S P A R T I E F A C I L E E X P L O R E R E T E X P É R I M E N T E R P A R T I E P A S S I O N N É E Découvrir @brunoboucard
  • 76.
    PHASE 3 –CADRER Cadrer P R I S E D E D É C I S I O N S A C T I O N S P A R T I E D I F F I C L E time D É V E L O P P E R D E S I D É E S P A R T I E F A C I L E E X P L O R E R E T E X P É R I M E N T E R P A R T I E P A S S I O N N É E Découvrir Explorer @brunoboucard
  • 77.
    SUGGESTION RESERVATION Core DomainSupporting Subdomain EVENT STORMING L E N I V E A U S O F T W A R E D E S I G N A V E C L E S D É V E L O P P E U R S @brunoboucard
  • 78.
    M O NP R E M I E R E V E N T S T O R M I N G N ' A PA S É T É C O M P L È T E M E N T S AT I S FA I S A N T @brunoboucard
  • 79.
    C O MM E N T PA S S E R D E L ’ E S PA C E P R O B L È M E À L ’ E S PA C E S O L U T I O N ? @brunoboucard
  • 80.
    https://panodyssey.com/fr/article/culture/la-deception-fp9jrsh93wv6# D O IS - J E A B A N D O N N E R L ’ I D É E D E R É D U I R E L ’ É C A R T E N T R E L ’ E S P A C E D E S P R O B L È M E S E T L ’ E S P A C E D E S S O L U T I O N S ? @brunoboucard
  • 81.
    D É CO M P O S E R U N A T E L I E R PA R T Y P E @brunoboucard
  • 82.
    EVENT STORMING • EVENTS •AGREGATE • INVARIANTS • TRANSACTIONAL • AUTONOMY D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 83.
    EVENT STORMING • EVENTS •AGREGATE • INVARIANTS • TRANSACTIONAL • AUTONOMY EXAMPLE MAPPING • STORY • BUSINESS RULE • EXAMPLE D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 84.
    EVENT STORMING • EVENTS •AGREGATE • INVARIANTS • TRANSACTIONAL • AUTONOMY EXAMPLE MAPPING • STORY • BUSINESS RULE • EXAMPLE D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 85.
    EVENT STORMING • EVENTS •AGREGATE • INVARIANTS • TRANSACTIONAL • AUTONOMY EXAMPLE MAPPING • STORY • BUSINESS RULE • EXAMPLE D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 86.
    MASHUP KEY EVENT STORMING •EVENTS • AGREGATE • INVARIANTS • TRANSACTIONAL • AUTONOMY EXAMPLE MAPPING • STORY • BUSINESS RULE • EXAMPLE Responsabilité D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 87.
    A P PL I Q U O N S - L E À N O T R E C O N T E X T E ! PRAGMATIQUE HADJA / DÉVELOPPEUSE @brunoboucard
  • 88.
    SUGGESTION RESERVATION Introduction toBDD Example Mapping | Cucumber Blog MASHUP E V E N T S T O R M I N G & E X A M P L E M A P P I N G @brunoboucard
  • 89.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING @brunoboucard
  • 90.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît @brunoboucard
  • 91.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 92.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING @brunoboucard
  • 93.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 94.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING @brunoboucard
  • 95.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 96.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 97.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING @brunoboucard
  • 98.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 99.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING Donnez-nous un exemple concret, s'il vous plaît ! @brunoboucard
  • 100.
    Introduction to BDDExample Mapping | Cucumber Blog EXAMPLE MAPPING @brunoboucard
  • 101.
    C O MM E N T A L L E R E N C O R E P L U S L O I N DA N S N O T R E C O M P R É H E N S I O N @brunoboucard
  • 102.
    @brunoboucard L E CR C C A R D S E N Q U E L Q U E S M O T S
  • 103.
    • C RC C A R D S SONT GÉNÉRALEMENT UTILISÉES POUR LA CONCEPTION ET LE DÉVELOPPEMENT ORIENTÉS OBJET • ONT ÉTÉ CRÉÉES POUR MODÉLISER UN SYSTÈME BASÉ SUR DES CLASSES, DES RESPONSABILITÉS ET DES COLLABORATEURS • P E R M E T T E N T A U X P E R S O N N E S N O N - T E C H N I Q U E S D E P A R T I C I P E R L À O Ù U M L E S T R E J E T É CRC CARDS @brunoboucard
  • 104.
    L ’ AT E L I E R P R E N D P L A C E A S S I S A U T O U R D ' U N E T A B L E T O U T L E M O N D E P R E N D U N E C A R T E E T U N S H A R P I E CRC CARDS @brunoboucard
  • 105.
    CRC CARDS O UT I L S I N F O R M E L S A J O U T E D E S C O N C E P T S D E R E S P O N S A B I L I T É E T D E C O L L A B O R A T I O N P O U R M O D É L I S E R @brunoboucard
  • 106.
    C L AS S E N O M M É E ? R E S P O N S A B I L I T É S P O U R ? C O L L A B O R A T I O N S A V E C ? BRAINSTORMING V O U S V O U S M E T T E Z A U D É F I ! P E N S E Z À T O U T P A R T A G E R A V E C L E S P A R T I C I P A N T S @brunoboucard
  • 107.
    M O DÉ L I S E R E N S E M B L E AV E C D E S C O N V E R S AT I O N S S T R U C T U R É E S CRC CARDS @brunoboucard
  • 108.
    COMMENT ÇA FONCTIONNE ? CRCCARDS @brunoboucard
  • 109.
  • 110.
  • 111.
  • 112.
    CRC INDEX CARD Class ResponsabilitésCollaborateurs Classe @brunoboucard
  • 113.
    ½ R ÉS E RVAT I O N D E S I E G E S DA N S U N T R A I N Il existe diverses règles et politiques commerciales autour desquelles des sièges peuvent être réservés. Pour un train dans son ensemble, pas plus de 70 % des sièges ne peuvent être réservés à l'avance et idéalement, aucune voiture individuelle ne devrait pas avoir plus de 70 % de sièges réservés @brunoboucard
  • 114.
    2 / 2R É S E RVAT I O N D E S I E G E S DA N S U N T R A I N Cependant, il existe une autre règle commerciale qui stipule que vous devez placer tous les sièges d'une réservation dans la même voiture Cela pourrait vous faire dépasser les 70 % pour certaines voitures, assurez-vous simplement de respecter 70 % pour l'ensemble du train @brunoboucard
  • 115.
    CRC INDEX CARD Class ResponsabilitésCollaborateurs Classe Train @brunoboucard
  • 116.
    CRC INDEX CARD Class ResponsabilitésCollaborateurs Classe Train Max 70 % @brunoboucard
  • 117.
    CRC INDEX CARD Class ResponsabilitésCollaborateurs Classe Train Max 70 % Coach @brunoboucard
  • 118.
    CRC CARDS MAPPING Seat Est-ildisponible ? Train Ne dépasse pas la capacité globale du train 70 % Coach* Coach Ne dépasse pas la capacité globale de la voiture 70 % Seat* @brunoboucard
  • 119.
    P O UV O N S - N O U S C O N N E C T E R U N E X A M P L E M A P P I N G E T D E S C A R T E S C R C ? @brunoboucard
  • 120.
    EVENT STORMING CRC CARDSRègles métier EXAMPLE MAPPING Règles métier From Aggregate From Business Rules D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 121.
    A P PL I Q U O N S - L E À N O T R E C O N T E X T E ! PRAGMATIQUE HADJA / DÉVELOPPEUSE @brunoboucard
  • 122.
    BRAINSTORMING R ÈG L E S E X A M P L E M A P P I N G @brunoboucard
  • 123.
    BRAINSTORMING R ÈG L E S E X A M P L E M A P P I N G @brunoboucard
  • 124.
    BRAINSTORMING R ÈG L E S E X A M P L E M A P P I N G @brunoboucard
  • 125.
    BRAINSTORMING R ÈG L E S E X A M P L E M A P P I N G @brunoboucard
  • 126.
    BRAINSTORMING A P PL Y R E S P O N S I B I L I T Y R È G L E S E X A M P L E M A P P I N G @brunoboucard
  • 127.
    BRAINSTORMING R ÈG L E S E X A M P L E M A P P I N G @brunoboucard
  • 128.
    BRAINSTORMING IL EST TEMPSDE C O N N E C T E R L E S C O L L A B O R A T E U R S @brunoboucard
  • 129.
    BRAINSTORMING IL EST TEMPSDE C O N N E C T E R L E S C O L L A B O R A T E U R S @brunoboucard
  • 130.
    BRAINSTORMING CE N'EST PASNÉCESSAIREMENT LE M O D È L E F I N A L MAIS C'EST UN B O N P O I N T P O U R C O M M E N C E R IL EST TEMPS DE C O N N E C T E R L E S C O L L A B O R A T E U R S @brunoboucard
  • 131.
    S I NO U S N E P R A T I Q U O N S P A S E V E N T S T O R M I N G C O M M E N T F A I T - O N U N C R C C A R D S ? HADJA / DÉVELOPPEUSE PRAGMATIQUE @brunoboucard
  • 132.
    USER STORY MAPPING CRCCARDS EXAMPLE MAPPING Règles métier Règles métier Depuis plusieurs user stories - MVP Depuis des règles métiers D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 133.
  • 134.
    PRENEZ 3 OU4 STORIES(MVP) D E P U I S U S E R S T O RY M A P V O U S S E L E C T I O N N E Z U N E N O U V E L L E F O N C T I O N N A L I T E ( 3 O U 4 S T O R I E S ) C ’ E S T É Q U I VA L E N T À D E C O M P O S E R E N U N A G R É G A T D E P U I S U N E V E N T S T O R M I N G @brunoboucard
  • 135.
    E S T- I L P O S S I B L E D ' A L L E R E N C O R E P L U S F I N E M E N T ?
  • 136.
    USER STORY MAPPING CRCCARDS EXAMPLE MAPPING User Stories EVENT STORMING CODE FORMULATION Exemples Responsabilités D É C O M P O S E R U N A T E L I E R P A R F O N C T I O N N A L I T É @brunoboucard
  • 137.
    [Test] public async TaskSuggest_one_seat_when_Auditorium_contains_one_available_seat_only() { // Ford Auditorium-1 // // 1 2 3 4 5 6 7 8 9 10 // A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2) // B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2) var showId = new ShowId("1"); var partyRequested = new PartyRequested(1); var seatAllocator = new SeatAllocator(_auditoriumLayoutAdapter); var suggestionsMade = await seatAllocator.MakeSuggestions(showId, partyRequested); Check.That(suggestionsMade.SeatNames(PricingCategory.First)).ContainsExactly("A3"); } FORMULATION DE CODE * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” Only Suggest Available Seat Only Suggest Available Seat @brunoboucard
  • 138.
    [Test] public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only() { //Ford Auditorium-1 // // 1 2 3 4 5 6 7 8 9 10 // A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2) // B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2) var showId = new ShowId("1"); var partyRequested = new PartyRequested(1); var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter) .MakeSuggestions(showId, partyRequested); Check.That(suggestionsMade.SeatNames(PricingCategory.First)) .ContainsExactly("A3"); } FORMULATION DE CODE Only Suggest Available Seat Only Suggest Available Seat * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” @brunoboucard
  • 139.
    [Test] public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only() { //Ford Auditorium-1 // // 1 2 3 4 5 6 7 8 9 10 // A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2) // B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2) var showId = new ShowId("1"); var partyRequested = new PartyRequested(1); var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter) .MakeSuggestions(showId, partyRequested); Check.That(suggestionsMade.SeatNames(PricingCategory.First)) .ContainsExactly("A3"); } * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” FORMULATION DE CODE Only Suggest Available Seat Only Suggest Available Seat @brunoboucard
  • 140.
    [Test] public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only() { //Ford Auditorium-1 // // 1 2 3 4 5 6 7 8 9 10 // A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2) // B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2) var showId = new ShowId("1"); var partyRequested = new PartyRequested(1); var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter) .MakeSuggestions(showId, partyRequested); Check.That(suggestionsMade.SeatNames(PricingCategory.First)) .ContainsExactly("A3"); } * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” FORMULATION DE CODE Only Suggest Available Seat Only Suggest Available Seat @brunoboucard
  • 141.
    * Show Id:“1” * Request 1 seat > Make Suggestions => Suggested: “A3” * Show Id: “1” * Request 1 seat > Make Suggestions => Suggested: “A3” [Test] public void Suggest_one_seat_when_Auditorium_contains_one_available_seat_only() { // Ford Auditorium-1 // // 1 2 3 4 5 6 7 8 9 10 // A : (2) (2) 1 (1) (1) (1) (1) (1) (2) (2) // B : (2) (2) (1) (1) (1) (1) (1) (1) (2) (2) var showId = new ShowId("1"); var partyRequested = new PartyRequested(1); var suggestionsMade = new SeatAllocator(_auditoriumLayoutAdapter) .MakeSuggestions(showId, partyRequested); Check.That(suggestionsMade.SeatNames(PricingCategory.First)) .ContainsExactly("A3"); } FORMULATION DE CODE Only Suggest Available Seat Only Suggest Available Seat @brunoboucard
  • 142.
    C O DE P R Ê T À Ê T R E D É V E L OP P E R AV E C L E T D D O U T S I D E / I N @brunoboucard
  • 143.
    R É SU M É D E T O U S L E S M A S H U P S AV E C E X A M P L E M A P P I N G ATELIER CIBLE CLEF MASHUP DEPUIS ATELIER SOURCE EXAMPLE MAPPING BUSINESS RULE AGREGGAT/POST-IT JAUNE EVENT STORMING EXAMPLE MAPPING BUSINESS RULE PLUSIEURS STORIES / MVP USER STORY MAPPING CRC CARDS BUSINESS RULE CARTE BLEUE EXAMPLE MAPPING CODE FORMULATION EXAMPLES CARTE VERTE EXAMPLE MAPPING @brunoboucard
  • 144.
    R É SU M É D E T O U S L E S M A S H U P S AV E C E X A M P L E M A P P I N G ATELIER CIBLE CLEF MASHUP DEPUIS ATELIER SOURCE EXAMPLE MAPPING BUSINESS RULE AGREGGAT/POST-IT JAUNE EVENT STORMING EXAMPLE MAPPING BUSINESS RULE PLUSIEURS STORIES / MVP USER STORY MAPPING CRC CARDS BUSINESS RULE CARTE BLEUE EXAMPLE MAPPING CODE FORMULATION EXAMPLES CARTE VERTE EXAMPLE MAPPING @brunoboucard
  • 145.
    @brunoboucard Example Mapping EventStorming CRC Cards CodeFormulation User Story Mapping L ’ E X A M P L E M A P P I N G B O O S T V O T R E P R O C E S S U S D E D É C O U V E R T E
  • 146.
    L E SA T E L I E R S D E T Y P E M A S H U P D E D É C O U V E R T E F O U R N I S S E N T U N E V I S I O N À L A F O I S C L A I R E E T P R O G R E S S I V E @brunoboucard @brunoboucard
  • 147.
    S U RL A B A S E D ’ U N E C O M P R É H E N S I O N C O L L E C T I V E D E S B E S O I N S D E U T I L I S A T E U R / C L I E N T @brunoboucard @brunoboucard
  • 148.
    PERMET DE COMPRENDRE DEPUISUN NIVEAU GROS GRAINS VERS UN NIVEAU GRAINS FINS MASHUP WORKSHOPS @brunoboucard
  • 149.
    MASHUP WORKSHOPS POUR OBTENIRUNE VISION COLLECTIVE GLOBALE ET LOCALE @brunoboucard
  • 150.
    MASHUP WORKSHOPS UNE VISIONGLOCALE @brunoboucard
  • 151.
    AUGMENTE LA COMPRENHENTIONMETIER DE L'ÉQUIPE DE DÉVELOPPEMENT MASHUP WORKSHOPS @brunoboucard
  • 152.
    AUGMENTE LA CREATIVITE DEL'ÉQUIPE DE DÉVELOPPEMENT MASHUP WORKSHOPS @brunoboucard
  • 153.
    AUGMENTE LA QUALITE DUPRODUIT MASHUP WORKSHOPS @brunoboucard
  • 154.
    AUGMENTE L’IMPACTE CLIENT/ UTILISATEUR MASHUP WORKSHOPS @brunoboucard
  • 155.
    J ' AI D E S S I N É C E S C H É M A E N 2 0 1 8 ! L E D I A G R A M M E D E C L A S S E S U M L F Û T R E M P L A C É P A R L E C R C C A R D S @brunoboucard
  • 156.
    E X AM P L E M A P P I N G 2 0 1 3 MON EXPERIENCE @brunoboucard E V E N T S T O R M I N G 2 0 1 5 P R E M I E R M A S H U P 2 0 1 7 C RC C A R D S R E M P L AC E U M L 2 0 1 9 F O R M U L AT I O N D E C O D E 2 0 2 1
  • 157.
    AT E LI E R S M A S H U P E N B R E F PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS @brunoboucard
  • 158.
    AT E LI E R S M A S H U P E N B R E F N'ABANDONNEZ PAS EN CHEMIN ANALYSER CHAQUE SOUS-TYPE DE VOTRE ATELIER PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS @brunoboucard
  • 159.
    AT E LI E R S M A S H U P E N B R E F SOYEZ VIGILANT SUR TOUT LES POSSIBLES SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT Y EN AVOIR UN AUTRE N'ABANDONNEZ PAS EN CHEMIN ANALYSER CHAQUE SOUS-TYPE DE VOTRE ATELIER PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS @brunoboucard
  • 160.
    AT E LI E R S M A S H U P E N B R E F TESTEZ VOTRE MASHUP AVANT D'APPLIQUER UN MASHUP, JOUEZ-LE PLUSIEURS FOIS N'ABANDONNEZ PAS EN CHEMIN ANALYSER CHAQUE SOUS-TYPE DE VOTRE ATELIER SOYEZ VIGILANT SUR TOUT LES POSSIBLES SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT Y EN AVOIR UN AUTRE PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS @brunoboucard
  • 161.
    AT E LI E R S M A S H U P E N B R E F ADAPTEZ VOTRE MASHUP FAIRE UN PAS DE CÔTÉ ET RÉFLÉCHIR À DE NOUVEAUX USAGES N'ABANDONNEZ PAS EN CHEMIN ANALYSER CHAQUE SOUS-TYPE DE VOTRE ATELIER SOYEZ VIGILANT SUR TOUT LES POSSIBLES SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT Y EN AVOIR UN AUTRE TESTEZ VOTRE MASHUP AVANT D'APPLIQUER UN MASHUP, JOUEZ-LE PLUSIEURS FOIS PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS @brunoboucard
  • 162.
    AT E LI E R S M A S H U P E N B R E F VISION GLOCALE FACILITE LA COMPRÉHENSION DES BESOINS MÉTIER / UTILISATEUR @brunoboucard SOYEZ VIGILANT SUR TOUT LES POSSIBLES SI VOUS AVEZ UN PREMIER MASHUP, IL PEUT Y EN AVOIR UN AUTRE TESTEZ VOTRE MASHUP AVANT D'APPLIQUER UN MASHUP, JOUEZ-LE PLUSIEURS FOIS ADAPTEZ VOTRE MASHUP FAIRE UN PAS DE CÔTÉ ET RÉFLÉCHIR À DE NOUVEAUX USAGES N'ABANDONNEZ PAS EN CHEMIN ANALYSER CHAQUE SOUS-TYPE DE VOTRE ATELIER PRATIQUEZ BEAUCOUP UN ATELIER C'EST APRÈS UNE LONGUE EXPÉRIENCE QUE VOUS POUVEZ COMPRENDRE LE CHAMP DES POSSIBILITÉS
  • 163.