“BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.”
improve software quality and responsiveness to changing customer requirements
- rapid iteration
- tight feedback loops
http://en.wikipedia.org/wiki/Extreme_programming
- code quality, modularity
- safety net that allows more rapid change
http://c2.com/cgi/wiki?TestDrivenDevelopment
- requirements are behaviour
- tests are for behaviour
- outside in vs inside out
- outer loop vs inner loop
- build the right software vs build the software right
- cross functional
- collaborative
eliminate waste
http://en.wikipedia.org/wiki/Lean_software_development
- As a, I want, So that (In order to)
- Personas
- acceptance criteria
- scenarios
a semi formal format, template
-
given, when, then
-
gherkin
-
illustration using examples
tackling complexity in the heart of software
- Domain modelling
- Ubiqitous language
- Domain specific language
structural design of shared information
- information architecture
- semantic elements, components
- executable specifications
- imperative vs declarative
- living
- shared
- canonical (single source of truth)
- at scale
- encoding intent
- execution reports
- living documentation
- story maps