HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a...

37
HOW BDD CAN SAVE AGILE @mattwynne | QCon 2015 | London

Transcript of HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a...

Page 1: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

HOW BDD CAN SAVE AGILE@mattwynne | QCon 2015 | London

Page 2: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Does agile really need saving?

Page 3: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Scrum != Agile

Page 4: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Quality

Communication

Predictability

Page 5: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Technical discipline

Collaboration

Small pieces

Page 6: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

How does BDD help?

Page 7: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Individuals and Interactions over

Processes and Tools

Page 8: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

BDD is a toolor maybe even a process, I dunno…

but…

Page 9: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

BDD is a tool that facilitates interactions

between individuals

Page 10: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

BDD is a labelbut

Page 11: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

I don’t like labels

Page 12: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Let’s talk about behaviour instead

Page 13: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

BDD practitioners

explore, discover, define, then drive out

the desired behaviour of software using

conversations, concrete examples and automated

tests.

Page 14: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Explore Discover Define Drive out

Page 15: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Conversations

Concrete examples

Test-driven development

Page 16: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

CONVERSATIONS

Page 17: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

SOFTWARE IS MADE BY PEOPLE

CONVERSATIONS MATTER BECAUSE

Page 18: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

IGNORANCE IS THE BOTTLENECK

CONVERSATIONS MATTER BECAUSE

Page 19: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Discovery Workshop

Stories Examples

Shared understanding

Smaller stories

Questions

Business rules

Page 20: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

EVERYONE HAS A UNIQUE PERSPECTIVE

CONVERSATIONS MATTER BECAUSE

Page 21: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

CONCRETE EXAMPLES

Page 22: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

MAKE SENSE TO EVERYONE

CONCRETE EXAMPLES

Page 23: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

ROOTED IN THE PROBLEM DOMAIN

CONCRETE EXAMPLES ARE

Page 24: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

Problem Domain

Solution Domain

Page 25: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

HELP BUILD A UBIQUITOUS LANGUAGE

CONCRETE EXAMPLES PROVIDE

Page 26: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

A SHARED SOURCE OF TRUTH

CONCRETE EXAMPLES PROVIDE

Page 27: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

SPLIT STORIES INTO SMALL PIECES

CONCRETE EXAMPLES HELP YOU TO

Page 28: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

TEST-DRIVEN DEVELOPMENT

Page 29: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

WARNING LIGHTSAUTOMATED TESTS ARE YOUR

Page 30: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

REFACTORINGTHE BIT OF TDD THAT EVERYONE FORGETS IS

Page 31: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners
Page 32: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners
Page 33: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

You can't have clean code without refactoring

You can't refactor without good automated tests

You can't stay agile without clean code

Page 34: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

WHY?TDD FORCES YOU TO ASK

Page 35: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

LISTENING TO THE TESTS

BUT YOU WILL FAIL UNLESS YOU ARE

Page 36: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

NO SHORT CUTS:

EXCELLENT COMMUNICATION

EXCELLENT CODE

Page 37: HOW BDD CAN SAVE AGILE...BDD is a tool that facilitates interactions between individuals. BDD is a label but. I don’t like labels. Let’s talk about behaviour instead. BDD practitioners

THANKS.QUESTIONS?

@mattwynne

[email protected]