Behavior Driven  Development          (BDD)                   With Mocking  An amazing set of agile tools that   helps to ...
Remeber● Throughout this lecture, please remember:Agile doesnt fix problems in yourcompany. It simply brings them to      ...
Software Without Requirements???               ?
Question... Agile Manifesto: [Favor] working software over         comprehensive documentation.We need requirements. They ...
Behavior Driven DevelopmentWhat is it? The name gives it all away...● Behavior/Feature   ○ What your software will do desc...
Given, When, Then● Given Eric is authorized● When he visits the "About Me" Page● Then he should still be authorized● And t...
Discovering Behavior● Mockup the system using mocking software  (Balsamiq for example).   ○ Create user stories from mocku...
Example Mockup      http://balsamiq.wpengine.netdna-cdn.com/images/samples/mytunez.png
Why It is So Cool● Aligns With Agile Manifesto:   ○ Favor code over documentation● Forces Product Owner To Focus   ○ Mock-...
Why It is So Cool - Part 2● Describes Your System Twice    ○ The behavior of your system is written in a programming      ...
Why It is So Cool - Part 3● 100% Coverage of the Behavior of Your Software   ○ Easy to refactor   ○ Any bugs caused by cha...
Arguments Against BDD● Code Isnt Dry   ○ BDD is too wordy. But! Depends on the language and depends on     the robustness ...
Arguments Against BDD Part 2● Dont Use In Startup - No Upfront Value   ○ But! BDD forces the startup to focus on their cor...
Arguments Against BDD Part 3● Have to Change the BDD A Lot   ○ If you are changing the BDD a lot does that mean BDD is    ...
Questions?  source: http://www.flickr.com/photos/katemonkey/122489910/
Upcoming SlideShare
Loading in...5
×

Bdd agile requirements

712

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
712
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bdd agile requirements

  1. 1. Behavior Driven Development (BDD) With Mocking An amazing set of agile tools that helps to create kick ass software Eric Hosick (erichosick)
  2. 2. Remeber● Throughout this lecture, please remember:Agile doesnt fix problems in yourcompany. It simply brings them to light quicker. As such: Dont be Quick to Blame Agile
  3. 3. Software Without Requirements??? ?
  4. 4. Question... Agile Manifesto: [Favor] working software over comprehensive documentation.We need requirements. They describe thefeatures/behavior of the program beingdeveloped.If we need requirements, then why not writerequirements in a way that they can be verifiedsimilar to source code?
  5. 5. Behavior Driven DevelopmentWhat is it? The name gives it all away...● Behavior/Feature ○ What your software will do described through requirements (mocking,stories,begging).● Driven ○ To cause or guide the movement of something.● Development ○ The creation of software through engineering and coding.● Behavior Driven Development ○ The development of software guided directly by described behavior and features (and mocking).
  6. 6. Given, When, Then● Given Eric is authorized● When he visits the "About Me" Page● Then he should still be authorized● And the name "Eric" is shown
  7. 7. Discovering Behavior● Mockup the system using mocking software (Balsamiq for example). ○ Create user stories from mockup and or ○ Create mockup from user stories ○ Hack away on Research and Development but keep that code out of production.● Discover ALL behavior and features of the mockup and write Scenarios with Gherkin● Only then should you write code being pushed to production. GUI centric software
  8. 8. Example Mockup http://balsamiq.wpengine.netdna-cdn.com/images/samples/mytunez.png
  9. 9. Why It is So Cool● Aligns With Agile Manifesto: ○ Favor code over documentation● Forces Product Owner To Focus ○ Mock-out and verify what stakeholders want (Lean Development) before writing a line of code.● Forces Developer To Focus ○ Developer codes exactly what is needed.● Requirements and code Are "Verified" ○ Continuous integration of requirements ○ Continuous integration of code
  10. 10. Why It is So Cool - Part 2● Describes Your System Twice ○ The behavior of your system is written in a programming language. ○ The behavior of your system is written in a DSL. ○ Makes your software more robust.● Same Scenarios In Different Languages ○ Ruby (Cucumber), C# (SpecFlow), PHP (Behat), Java (???)● Iterative Development ○ Implement scenarios and push to production as fast as possible.
  11. 11. Why It is So Cool - Part 3● 100% Coverage of the Behavior of Your Software ○ Easy to refactor ○ Any bugs caused by changes are found out: if you changed the behavior of your program you will find out! ○ See Describes your system twice.YOU CANT BREAK YOUR PROGRAM!
  12. 12. Arguments Against BDD● Code Isnt Dry ○ BDD is too wordy. But! Depends on the language and depends on the robustness of your code.● Product Owner Cans Use BDD ○ But - The Domain Specific Language can be written to a level appreciated by the Product Owner. ○ If they cant explain what they want to you in their own language, you need a new product owner.● Assumes you Know the Problem ○ But - If you dont know the problem then how can you code a solution? ○ Doing R&D - Dont use BDD. Have fun and Hack. ○ Sticking that code in production? Not without BDD.
  13. 13. Arguments Against BDD Part 2● Dont Use In Startup - No Upfront Value ○ But! BDD forces the startup to focus on their core products and work closely with customers. ○ Remove code before it is even written!● Product Owner Cans Use BDD ○ But - The Domain Specific Language can be written to a level appreciated by the Product Owner. ○ If they cant explain what they want to you in their own language, you need a new product owner.● Assumes You Know the Problem ○ But - If you dont know the problem then how can you code a solution? ○ Doing R&D? - Dont use BDD. Have fun and Hack. ○ Sticking code in production? Not without BDD.
  14. 14. Arguments Against BDD Part 3● Have to Change the BDD A Lot ○ If you are changing the BDD a lot does that mean BDD is broken? OR ○ Does that mean the Product Owner had you write something they really didnt want?
  15. 15. Questions? source: http://www.flickr.com/photos/katemonkey/122489910/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×