Bdd and Scrum Team Dynamics


Published on

Behaviour Driven Development (BDD) is an approach than encourages teams and stakeholders in general to reason about requirements in terms of “executable specifications”, and focus on implementing features with demonstrable business value. BDD is more than just a development technique: in fact, it introduces a whole new dynamic to interactions between team members and stakeholders, a dynamic that increases communication, improves productivity and reduces waste. Through ongoing conversations between business stakeholders and team members, a team applying BDD principles will explore the business goals, capabilities and behaviour that the stakeholders need. They then propose features that the system will need to deliver these capabilities, and use concrete examples and counter-examples to explore and understand these features more fully. In this talk, you will learn about the principles and benefits of BDD for the whole team, how BDD works in practice, and how it affects the various team members in a project. Finally, you will discover the relationship between behavior driven development and automated acceptance testing.

Published in: Technology, Business

Bdd and Scrum Team Dynamics

  1. 1. Using Behaviour Driven Development to Enhance Scrum Team DynamicsJohn  Ferguson  Smart
  2. 2. Consulta nt Trainer Mentor Author Speaker CoderJohn Fer guson S mar t
  3. 3. There are only two problems in software development1) Building the software wrong2) Building the wrong software
  4. 4. 50-­‐80%  of  produc.on  code  is  never  or  rarely  used
  5. 5. Poor  quality  costs  money!
  6. 6. Payroll  SystemIni:al  Budget $6  millionCost  by  2012 $416  millionEs:mated  cost   to  complete $837  million
  7. 7. Payroll  System
  8. 8. Project success = right product + built right
  9. 9. Building the right thing Features aligned to business needs Right product, built rightWasted effort Doesnt do wha the use t r wants What e Project lat Hard to change Over bu sive to dget aintain le Unstab Expen Misaligned m requirements Building the thing right How Poor craftsmanship Quality Bugs craftsmanship
  10. 10. BDDThe Drive for Value
  11. 11. Behaviour Driven Development is... Conversation Focused
  12. 12. Behaviour Driven Development is... Example-based
  13. 13. Behaviour Driven Development is... i o n u m ptA s s
  14. 14. Behaviour Driven Development is... Value Driven
  15. 15. Behaviour Driven Development is... Ou ts id e In
  16. 16. Behaviour Driven Development is... Business Analyst A Common Language Business Developer Tester
  17. 17. Behaviour Driven Development is... Executable Specifications
  18. 18. Behaviour Driven Development is... 31%  faster  delivery Delivery  Time Tradi.onal Using  BDD More value faster
  19. 19. Behaviour Driven Development is... 4  .mes  less  defects Defect  Rate Tradi.onal Using  BDD Higher Quality
  20. 20. BDDA concrete example
  21. 21. I  want  to  sell  train  5cket  bookings  online OK.  How  will  that   benefit  you?
  22. 22. Travellers  won’t  have  to  waste  8me   queuing  at  the  sta8on  any  more So  you  might  say: Yes    In  order  to  save  ,me  by  avoiding  the  queue  at  the  sta,on    As  a  traveller I  want  to  book  my  ,cket  online
  23. 23. So  why  do  we  care? People  hate  queueing.  More   Aha!  So  it’s  about  selling  people  will  buy  train  8ckets  if  they  dont   more  8ckets! have  to  queue. Yes
  24. 24. So  we  could  say  this:  In  order  to  increase  ,cket  salesI  guess  so  As  a  rail  service  I  want  travellers  to  be  able  to  save  ,me  by  booking  online
  25. 25. Can  you  give  me  an  example  of  how  someone  might   book  a  train  8cket  online?Sure.  A  traveller  buys  a  8cket  online  from  Dubbo  to  Sydney. Which  would  cost? $25 So  we  could  say: Given  Jane  wants  to  take  a  train  from  Dubbo  to  Sydney When  she  books  a  ,cket  online Then  she  should  be  charged  $25
  26. 26. Hmm.  So  every  traveller  pays  the  same  price? Of  course  not!  A  pensionner   would  only  pay  $20,  for  example. Ok.  So  let’s  add  that  example  too:        Given  Joe  wants  to  take  a  train  from  Dubbo  to  Sydney        And  Joe  has  a  pension  card          When  he  books  a  ,cket  online        Then  he  should  be  charged  $20      And  he  should  be  issued  with  a  valid  ,cket
  27. 27. Can  you  give  me  any  other  examples  of   people  who  don’t  pay  $25  for  this  trip?Yes,  we  give  students  a  30%   discount Let’s  put  this  in  a  table Trip base cost Concession type Expected Price $25 Pensioner $20 $25 Military $20 $25 Student $17.50 $25 Under 12 $12.50 $25 Under 3 $0.00
  28. 28. So what did we just do?
  29. 29. I  want  to  sell  train   5cket  bookings  online1) Identify a feature
  30. 30. I  want  to  sell  train   5cket  bookings  online To  increase   5cket  sales2) Understand why
  31. 31. I  want  to  sell  train  5cket  bookings  online To  increase   5cket  sales3) Find examples Given  Jane  wants  to  take  a  train  from  Dubbo  to  Sydney When  she  books  a  ,cket  online Then  she  should  be  charged  $25
  32. 32. I  want  to  sell  train   5cket  bookings  online To  increase   5cket  sales4) Challenge assumptions Given  Jane  wants  to  take  a  train  from  Dubbo  to  Sydney When  she  books  a  ,cket  online Then  she  should  be  charged  $25      Given  Joe  wants  to  take  a  train  from  Dubbo  to  Sydney        And  Joe  has  a  pension  card          When  he  books  a  ,cket  online        Then  he  should  be  charged  $20      And  he  should  be  issued  with  a  valid  ,cket
  33. 33. I  want  to  sell  train   5cket  bookings  online To  increase   5cket  sales 5) Extend our model Given  Jane  wants  to  take  a  train  from  Dubbo  to  Sydney When  she  books  a  ,cket  onlineTrip base cost Concession type should  Expected Price Then  she   be  charged  $25$25 Pensioner $20      Given  Joe  wants  to  take  a  train  from  Dubbo  to  Sydney$25 Military $20        And  Joe  has  a  pension  card  $25      Studente  books  a  ,cket  online  When  h $17.50$25      Underh12 hould  be  charged  $20  Then   e  s $12.50      And  he  should  be  issued  with  a  valid  ,cket$25 Under 3 $0.00
  34. 34. And now we can automate
  35. 35. Now  we  can  automate  the  acceptance  criteria Trip base cost Concession type Expected Price $25 Pensioner $20 $25 Military $20 $25 Student $17.50 $25 Under 12 $12.50 $25 Under 3 $0.00Acceptance criteria
  36. 36. Now  we  can  automate  the  acceptance  criteria Trip base cost Concession type Expected Price $25 Pensioner $20 $25 Military $20 $25 Student $17.50 $25 Under 12 $12.50 $25 Under 3 $0.00Automated acceptance criteria
  37. 37. Now  we  can  automate  the  acceptance  criteria Trip base cost Concession type Expected Price $25 Pensioner $20 $25 Military $20 $25 Student $17.50 $25 Under 12 $12.50 $25 Under 3 $0.00Living Documentation
  38. 38. BDD also applies to coding
  39. 39. We are always writing thespecifications for something
  40. 40. Low level specifications Also act as technical documentation
  41. 41. High Level BDDWhat features should we build?Automated acceptance criteria Written for the whole team Spock Low Level BDD How do we build them? Low level specification and design Written for developers
  42. 42. BDD and theProduct Backlog A story of focus
  43. 43. What should we build next?
  44. 44. Backlog Next Sprint ?
  45. 45. Backlog Next Sprint ? $$$$$$$ $$$$$$$ $$$$$$ $$$$$ $$$$ $$$ $$$ $$$ $$$ $$$
  46. 46. But what aboutMinimum Marketable Features?
  47. 47. Backlog Next Sprint { ? Minimum $$$$$$$MarketableFeature 1 $$$$$$$ $$$$$$ $$$$$ { Minimum $$$$ Marketable Feature 2 $$$ $$$ $$$ $$$ $$$
  48. 48. Minimum Marketable Features or Minimum Viable Product?
  49. 49. How long would it take you to rewrite your last project?
  50. 50. “Ignorance is the constraint” - Liz Keogh
  51. 51. "Ignorance more frequently begets confidence than does knowledge" - Charles Darwin
  52. 52. Software development is a process of Continual Incremental Learning Known Unknowns Unknown Unknowns
  53. 53. "Scientia potentia est" Knowledge is power - Sir Francis Bacon
  54. 54. Learning has valueWhat stories will reduce our ignorance the most?
  55. 55. Backlog Next Sprint ? $$$$$$$ $$$$$$$ $$$$$$ $$$$$ $$$$ $$$ $$$ $$$ $$$ $$$
  56. 56. Backlog Next Sprint ? ??????? ??????? ?????? ????? ???? ??? ??? ??? ?? ?
  57. 57. Hunt  the  value!
  58. 58. What do you want to achieve? Vision What will the business get out of it? Goals What do users and stakeholders need to deliver these goals? Capabilities How can our application help the users to do this? We can break a Features feature up into stories StoriesConcrete examples areeasier to understand Scenarios Are we there yet? Acceptance Criteria Code
  59. 59. A business goal should 1) Increase Revenue 2) Reduce Costs 3) Protect Revenue 4) Avoid future costs
  60. 60. But who knows what the real goals are?Chances  of   knowing Senior  Management Product  Owners Scrum  Masters Business  Analysts Testers Developers Role  in  the  organiza8on
  61. 61. Every story will provide value to the business What makes you so sure?
  62. 62. Can you map each story back to a business goal?
  63. 63. Requirements analysis is built on assumptions Goal ti on To  increase  8cket  sale   su mp revenue As ti on u mp ss Capability Sell  8ckets  online A “Selling tickets online will increase sales” Feature Pay  by  any  credit  card “More credit card support will increase online sales”
  64. 64. How can you validate your assumptions? Goal ti on To  increase  8cket  sale   su mp revenue As ti on Text u mp ss Capability Sell  8ckets  online A “Selling ticketsonline will increase sales” Feature Pay  by  any  credit  card “More credit card support will increase online sales” measuring the outcomes
  65. 65. Impact Mapping a visual approach to identifying assumptions Why Who How What concessions online bookingTo increase travellers take the train credit cardticket sale more often payment revenue suggest taking social network the train to integration friends
  66. 66. 1)  Iden.fy  your  assump.ons2)  Measure  the  outcomes3)  Verify  your  assump.ons
  67. 67. BDD and team dynamicsCollaboration like you mean it
  68. 68. How do you build a feature?Story WASTE bug  reports Working   code boring   manual   tes5ng
  69. 69. How do you build a feature? Story Examples Automated   acceptance   Shared   criteriaunderstanding Working  code   and   Working  Automated   Acceptance  Tests Exploratory  tes5ng,   usability  tes5ng...
  70. 70. Tips and tricksWhen the rubber hits the road
  71. 71. 71
  72. 72. 72"Dont tell people how to do things, tell them what to do and let them surprise you with their results" - George S. Patton
  73. 73. 73
  74. 74. 74
  75. 75. 75Tailoryourreporting
  76. 76. 76You  are  allowed  to  ask  ques.ons
  77. 77. John  Ferguson  SmartQuestions?