BDD for the non-Developer

with Mark Dewey

Core Instructor

 Suncoast Developers Guild

Hello!

BDD

Behavior Driven Development

Non Techincal

  • Business Analysis
  • Stakeholders
  • Project Managers
  • Product Owners

Technical 

  • Developers
  • QA Team
  • Designers
  • DevOps
  • Project Managers

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

Test Driven Developement

// In my code somewhere

function DoSomethingCool(){
    // does something cool 
}   

// In my tests:

Assert( ExpectedResult, DoSomethingCool() )

What does this look like?

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

 

 Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

Sounds Good.

What does this look like in practice?

User Stories.

(Scenarios, Use Cases, or Specification by Example) 

Narrative

&

Scenarios

 

As a _____,

I want to do _____,

because ______

Actor

Reason

Action

Narrative

Actor

Action

Result

Scenarios

  • Acceptance Criteria
  • Implementation Details
  • Edge Cases 

Given [context]

  And [some more context]...

When  [event]

Then  [outcome]

  And [another outcome]...

Given user uploads picture

When  the file is too big

Then  display a friendly error message

  And let the user try again

How we feeling?

So why all this?

Software is hard, but working on teams to create new solutions is harder.

This idea gives non-technical folks a way to describe what they want to technical people.

As the project grows, a specific language starts to emerge that can validated with TDD

How does this relate to agile?

When does this fall apart?

practice makes perfect.

Group Work!

Gathering in groups, choose an idea for piece of software, create a user story or two, and some scenarios.

Ideas:

  • Music Suggestion App
  • Financial Management App 
  • Pet Adoption Finder
  • New IoT Solution
  • .... you own idea?

Sharing is caring!

So now what?

Thanks for listening,

Any Questions?

mark@suncoast.io @juggler2009

Wanna learn to code? Check out suncoast.io and see how far you get in 12 weeks.

BDD for non-developers

By Mark Dewey

BDD for non-developers

  • 291