Freelancer software engineer
Product Manager
Call the banners! It’s time to discuss the new feature!
Product Manager
Software Engineers
bla... blabla...
We're burnt out
...
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 Manager
When you click this, it does that. When you click that, it does this.
Are we sure we understand what we’re estimating?
Software Engineer
Let's start coding!
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
Example Mapping is a method designed to make conversation short and very productive.
30min max
Matt Wynne
Ensure everyone understands the domain problem
Helps to clarify the acceptance criteria for a given story
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
Break silos to enhance collaboration between developers, testers, and product owners
Ease knowledge sharing to quickly spot edge cases and clarify ambiguities
Keep meetings short and focused on what matters most
What I need
----
Action
----
⇒ What I expect
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
What about security? Do we allow any password?
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
take 2
take 5
=>Error
Someone creates an account with an empty email.
----
⇒ Error: Please provide an email
...
...
...
...
Business needs are not clear enough #startup
User Story are not prepared enough #newPM
When the team does the workshop for the first time
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
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
Nice to have
Must have
Ship faster
Better forecasting #noEstimate
Reassure the stakeholders (prevent tunneling effect)
Refine your stories #paymentExport
Improve your backlog prorization
Book a time slot on your calendar
Sorry, I am too busy!
Use it when needed
30 minutes max #productExport
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"
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'))
});
});
Text
Ease and accelerate development
As software engineers, QAs can use them to define their test scenarios
90% of my workshops have been run remotely
Meilleur screenshot ?
Learn / Ask questions Challenge
Share knowledge
Scribe
Animator
Share knowledge
Animator
Attendee
Scribe
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 to receive a monthly newsletter packed with insights, tips, and best practices. Stay ahead in the coding game!