Successfully reported this slideshow.

Specification Workshops - The Missing Link

1,404 views

Published on

Specification Workshops - The missing link from Agile Testing Days

Published in: Technology, Business
  • Be the first to comment

Specification Workshops - The Missing Link

  1. 1. Specification workshops – the missing link Gojko Adzic http://gojko.net [email_address] @gojkoadzic
  2. 2. Here's what I thought... <ul><li>When the order is in a “pending” state, we first check the account, and if approved move it to “confirmed” state </li></ul><ul><li>When the order is manually confirmed, it moves from the “pending” to “confirmed” state even if the account does not have enough funds </li></ul><ul><li>When the order is in a “pending” state for two days, we send an alert </li></ul>
  3. 3. Here is what they saw: <ul><li>ghorgh [the] [order] 'oH Daq [a] [“pending”] [state] maH wa'DIch [check] [the] [account] 'ej chugh [approved] vIH 'oH Daq [“confirmed”] [state] ghorgh [the] [order] 'oH [manually] [confirmed] 'oH vIHtaH vo' [the] [“pending”] Daq [“confirmed”] [state] 'ach chugh [the] [account] ta'taH ghobe' ghaj yap [funds] ghorgh [the] [order] 'oH Daq [a] [“pending”] [state] vaD cha' jajmey maH ngeH [an] [alert] </li></ul>http://www.mrklingon.org/ ghorgh [the] [order] 'oH Daq [a] [“pending”] [state] maH wa'DIch [check] [the] [account] 'ej chugh [approved] vIH 'oH Daq [“confirmed”] [state] ghorgh [the] [order] 'oH [manually] [confirmed] 'oH vIHtaH vo' [the] [“pending”] Daq [“confirmed”] [state] 'ach chugh [the] [account] ta'taH ghobe' ghaj yap [funds] ghorgh [the] [order] 'oH Daq [a] [“pending”] [state] vaD cha' jajmey maH ngeH [an] [alert]
  4. 4. http://www.flickr.com/photos/lambdachialpha/157986473/
  5. 5. http://www.flickr.com/photos/mulesafpilot/3513588967
  6. 6. http://www.defenseimagery.mil/assetDetails.action?guid=68cf92e35ce13e6c7c9c066f0b48b6daaa9bf8d8
  7. 8. An experiment with four active battalions in US Army <ul><li>“ Commander expectations matched actions in only 34% of the cases” </li></ul>L.G.Shattuck, 2000 http://www.au.af.mil/au/awc/awcgate/milreview/shattuck.pdf
  8. 9. The process is very much like a telephone game http://www.flickr.com/photos/mataniere/3107073262
  9. 10. How many points are there?
  10. 11. How many points are there?
  11. 13. B2 bomber crashed and $2bn went up in flames &quot;the aircraft actually performed as it was designed. In other words, all the systems were functioning normally.&quot; Maj. Gen. Floyd L. Carpenter http://www.foxnews.com/wires/2008Jun05/0,4670,B2Crash,00.html
  12. 14. You can't help a lot when the party is already over... http://www.flickr.com/photos/biolog/3457774800
  13. 16. F-16 design team was asked to do the impossible - a cheap 2.5 Mach airplane! “ When asked […] why they need Mach 2 - 2.5, the answer was to be able to escape from combat. Their solution was […] providing acceleration and maneuverability, not maximum speed.” http://97-things.near-time.net/wiki/Seek%20the%20value%20in%20requested%20capabilities
  14. 17. Requirements are often given as a solution to an unknown problem! http://www.flickr.com/photos/sylvancatharsis/3783608640/
  15. 18. An angry e-mail These are fundamental rules that have been explained many times - and should not be being questioned at this time... Registration = customer registers with xxx in period New Active = customer places first bet with xxx in period All Active = customer bets with xxx in period, but first bet was prior to period Therefore... If Andy registered and bet in period, he would appear in all three (REGISTERED, NEW, ALL)‏ If Lee registered only, he would appear in REGISTERED only If Tom bet in period, but he registered and had placed a bet prior to that period, he would appear in ALL only If Gojko bet for the first time in that period, but registered prior to that period, he would appear in NEW and ALL Regards, These are fundamental rules that have been explained many times - and should not be being questioned at this time... Registration = customer registers with xxx in period New Active = customer places first bet with xxx in period All Active = customer bets with xxx in period, but first bet was prior to period Therefore... If Andy registered and bet in period, he would appear in all three (REGISTERED, NEW, ALL)‏ If Lee registered only, he would appear in REGISTERED only If Tom bet in period, but he registered and had placed a bet prior to that period, he would appear in ALL only If Gojko bet for the first time in that period, but registered prior to that period, he would appear in NEW and ALL Regards,
  16. 19. An angry e-mail These are fundamental rules that have been explained many times - and should not be being questioned at this time... Registration = customer registers with xxx in period New Active = customer places first bet with xxx in period All Active = customer bets with xxx in period, but first bet was prior to period Therefore... If Andy registered and bet in period, he would appear in all three (REGISTERED, NEW, ALL)‏ If Lee registered only, he would appear in REGISTERED only If Tom bet in period, but he registered and had placed a bet prior to that period, he would appear in ALL only If Gojko bet for the first time in that period, but registered prior to that period, he would appear in NEW and ALL Regards, These are fundamental rules that have been explained many times - and should not be being questioned at this time... Registration = customer registers with xxx in period New Active = customer places first bet with xxx in period All Active = customer bets with xxx in period, but first bet was prior to period Therefore... If Andy registered and bet in period, he would appear in all three (REGISTERED, NEW, ALL)‏ If Lee registered only, he would appear in REGISTERED only If Tom bet in period, but he registered and had placed a bet prior to that period, he would appear in ALL only If Gojko bet for the first time in that period, but registered prior to that period, he would appear in NEW and ALL Regards,
  17. 20. Let's go back to the problems <ul><li>Faster feedback just tells us that we messed up sooner, it doesn't tell us what we need to do </li></ul><ul><li>There is valuable knowledge hidden in the team </li></ul><ul><li>Expressed requirements often aren't the real ones </li></ul><ul><li>We need access to senior people to sort these problems out </li></ul>
  18. 21. Collaborate on specifications
  19. 22. Challenge requirements!
  20. 23. Discuss examples
  21. 24. Involve the whole team
  22. 25. Plan in advance, schedule the time to do this!
  23. 26. Get everyone together to collaborate on specifications
  24. 27. Get everyone together to collaborate on specifications <ul><li>Customer tests </li></ul>
  25. 28. Get everyone together to collaborate on specifications <ul><li>Customer tests </li></ul><ul><li>Acceptance testing threesome </li></ul>
  26. 29. Get everyone together to collaborate on specifications <ul><li>Customer tests </li></ul><ul><li>Acceptance testing threesome </li></ul><ul><li>Example-writing workshops </li></ul>
  27. 30. Get everyone together to collaborate on specifications <ul><li>Customer tests </li></ul><ul><li>Acceptance testing threesome </li></ul><ul><li>Example-writing workshops </li></ul><ul><li>Specification workshops </li></ul>
  28. 31. Running the workshop <ul><li>Choose a story </li></ul><ul><li>Introduce it, explain with examples </li></ul><ul><li>Let people ask questions and suggest other examples </li></ul><ul><li>Discuss until everyone is confident that we have enough examples to start working </li></ul>
  29. 32. Some good questions to kick it off: <ul><li>How do we verify that this thing we are going to write is implemented completely and correctly ? </li></ul><ul><li>Can you give us a few examples ? </li></ul><ul><li>Pretend it's magic and it's already delivered – how would you test it ? </li></ul>
  30. 33. Distil the specification - focus on what , not on how
  31. 34. Share domain knowledge - help people understand it better
  32. 35. Build and evolve the ubiquitous language
  33. 36. Communicate intent - explain why !
  34. 37. What the workshop is not: <ul><li>Not a meeting (especially not a planning one)‏ </li></ul><ul><li>Not a presentation </li></ul><ul><li>Not a design session </li></ul>
  35. 38. Keeping the workshop focused <ul><li>Commanders' intent template: </li></ul><ul><li>Here's what I think we face </li></ul><ul><li>Here's what I think we should do </li></ul><ul><li>Here's what we should keep an eye on </li></ul><ul><li>Now talk to me </li></ul>
  36. 39. Where next? <ul><li>http://gojko.net </li></ul><ul><li>http://agiletesting.org.uk </li></ul><ul><li>http://acceptancetesting.info </li></ul><ul><li>27 Nov – Agile specifications and testing exchange </li></ul><ul><li>30 Nov – Agile acceptance testing workshop </li></ul><ul><li>4 Dec – Building software that matters </li></ul>

×