Hi, I am Arnaud!

Freelancer software engineer

@arnolanglade

New feature is coming !

Product Manager

Call the banners! It’s time to discuss the new feature!

Product Manager

Software Engineers

Surviving the Long Meeting Marathon

bla... blabla...

We're burnt out

...

Stay on Track! Avoiding Meeting Detours

It's just an idea, but next year we might do this. It could be great

Great idea! Can you tell me more?

Oh wait, what do you think about this?

Product managers may bring pre-made solutions

Product Manager

When you click this, it does that. When you click that, it does this.

Then it's time to estimate...

Are we sure we understand what we’re estimating?

1

2

3

13

5

8

20

Now, it's time to build the feature

Software Engineer

Let's start coding!

Misunderstandings lead to endless back-and-forth

Product Manager

Software Engineer

I have a question!

It's not stakeholder knowledge but developers' ignorance that gets deployed into production.

 

Alberto Brandolini

...

It does not work as expected

What’s the solution to these problems?

What is Example Mapping?

Example Mapping is a method designed to make conversation short and very productive.

 

cucumber.io    

30min max

Matt Wynne

What's its Goal?

Ensure everyone understands the domain problem

Helps to clarify the acceptance criteria for a given story

Who attends the workshop?

Me !

Me !

Me !

Me !

Me !

3 amigos

I am the product manager

We are the software engineers

I am the quality analyst

Product Manager

Domain Expert

Product Manager

and

Domain expert

PMs play the role, but business experts add value

BENEFITS

ionicons-v5-k

Break silos to enhance collaboration between developers, testers, and product owners

ionicons-v5-i

Ease knowledge sharing to quickly spot edge cases and clarify ambiguities

ionicons-v5-e

Keep meetings short and focused on what matters most

ionicons-v5-i

What do you need?

WRITE DOWN The

Story's title

Create a user account

The email can't be used for several accounts

Create a user account

An email and a password need to be provided

Start by identifying the main business rules

Discuss and illustrate the business rules with examples

An email and a password need to be provided

EXAMPLE

EXAMPLE

EXAMPLE

Simplified

Given / When / Then

What I need

----

Action

----

What I expect

An email and a password need to be provided

The email can't be used for several accounts

No one is registered on the app

----

Someone creates an account with “arnaud@company.com”

----

⇒ Account created

Used emails on the app: “arnaud@company.com”

----

Someone creates an account with “arnaud@company.com”

----

Error  "This email is already used"

Someone creates an account with "arnaud@company.com" as and "P@ssword1" 

----

⇒ Account created

Someone creates an account with an empty email.

----

⇒ Error: Please provide an email

Someone creates an account with an empty password.

----

⇒ Error: Please provide a password

Someone creates an account with "p@ssword1" as the password.

----

⇒ Error: Missing uppercase letter

Someone creates an account with "Password1" as the password.

----

⇒ Error: Missing special character

Someone creates an account with "P@assword" as the password.

----

⇒ Error: Missing numbers

Password should contain at least one UPPERCASE LETTER, number and special character

What about security? Do we allow any password?

Tips for writing examples

Use real data: provide concrete examples (names, dates, amounts)

Ensure to show examples of what should work and what shouldn’t.

Make sure each example directly relates to the business rule it represents

Drawings

take 2

take 5

=>Error

Pick the format that makes writing examples easiest for you

RAISE QUESTIONS /

BOTTLENECKS

Should we check the email syntax?

Do we need to check the password length?

Password should contain at least one UPPERCASE LETTER, number and special character

Someone creates an account with an empty email.

----

⇒ Error: Please provide an email

StOry

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

QUESTION

EXAMPLE

EXAMPLE

BUSINESS RULE

BUSINESS RULE

Simple, right? but what happened when we tried it?

The first workshops were challenging

...

...

...

...

Business needs are not clear enough #startup

User Story are not prepared enough #newPM

When the team does the workshop for the first time

It happens when:

Start BY The Examples

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

Story

Then, we bring out the business rules

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

EXAMPLE

BUSINESS RULE

BUSINESS RULE

BUSINESS RULE

What did I learn?

If a Rule has Too many examples...

EXAMPLE

BUSINESS RULE

EXAMPLE

EXAMPLE

EXAMPLE

An email and a password need to be provided

Someone creates an account with "arnaud@company.com" as and "P@ssword1" 

----

⇒ Account created

Someone creates an account with an empty email.

----

⇒ Error: Please provide an email

Someone creates an account with an empty password.

----

⇒ Error: Please provide a password

Someone creates an account with "P@ssword1" as the password.

----

⇒ Error: Missing uppercase letter

Someone creates an account with "Password1" as the password.

----

⇒ Error: Missing special character

Someone creates an account with "P@assword" as the password.

----

⇒ Error: Missing numbers

This could mean Business rules  are missing

Someone creates an account with "P@ssword1" as the password.

----

⇒ Error: Missing uppercase letter

Someone creates an account with "Password1" as the password.

----

⇒ Error: Missing special character

Someone creates an account with "P@assword" as the password.

----

⇒ Error: Missing numbers

Password should contain at least one UPPERCASE LETTER, number and special character

Nice to have

Must have

EXAMPLE

BUSINESS RULES

EXAMPLE

BUSINESS RULES

EXAMPLE

BUSINESS RULES

EXAMPLE

BUSINESS RULES

StOry

INITIAL StOry

NEW StOry

NEW StOry

Small stories are key!

Ship faster

ionicons-v5-p

Better forecasting #noEstimate

Reassure the stakeholders (prevent tunneling effect)

ionicons-v5-j

BENEFITS

ionicons-v5-k

Refine your stories #paymentExport

ionicons-v5-n

Improve your backlog prorization

ionicons-v5-b

the planning

Book a time slot on your calendar

Sorry, I am too busy!

ionicons-v5-p

Use it when needed

30 minutes max #productExport

ionicons-v5-g

Full team

Part of the team

VERSUS

Learn / Ask questions / Challenge

Share knowledge

Animator

Engineering

Manager

Anyone interested in your work

3 amigos

Used emails on the app: “arnaud@company.com”

----

Someone creates an account with “arnaud@company.com”

----

⇒ Error  "This email is already used"

Use examples as test cases

describe("Account creation", () => {
  test("the email can't be used for several accounts", () => {
    // Given: used emails on the app: “arnaud@company.com”
    const email = 'arnaud@company.com'
    const password = 'P@ssword1'
    const userRepository = new InMemoryUserRepository([
      {email, password}
    ])
  
    // Then: Error raised: "This email is already used"
    expect(() => {
      // When: Someone creates an account with “arnaud@company.com”
      createAccount(email, password)
    }).toThrow(new Error('This email is already used'))
  });
});

Use examples as test cases

Text

BENEFITS

ionicons-v5-k

Ease and accelerate development

ionicons-v5-d

As software engineers, QAs can use them to define their test scenarios

ionicons-v5-i

How to make remote workshops run smoothly

90% of my workshops have been run remotely

tools such as Miro can helps you

Meilleur screenshot ?

Turn on your webcam for better collaboration

Assign a new role

Learn / Ask questions Challenge

Share knowledge

Scribe

Animator

Rotate roles to involve the whole team

Share knowledge

Animator

ionicons-v5-l

Attendee

ionicons-v5-n

Scribe

Check out my Tech Blog

[FR] Marre de faire des CRUD ? Envie de nouveaux défis ?

Découvre ma formation sur l'Architecture Hexagonale et les patterns du DDD tactique.

 

Apprends les outils pour concevoir des applications orientées métier et te distinguer clairement en tant que développeur.

Subscribe my newsletter

Subscribe to receive a monthly newsletter packed with insights, tips, and best practices. Stay ahead in the coding game!

Thanks for the invitation

Thanks for the invitation

Thank you! 

Any Questions?

@arnolanglade

Thank you! 

Any Questions?

@arnolanglade

Thank you! 

Any Questions?

@arnolanglade