際際滷

際際滷Share a Scribd company logo
Handling Non-Functional RequirementsOn an Agile ProjectKen HowardImproving Enterprisesken@improvingenterprises.comBlog: www.agilist.net
Heres my storyAs an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.
As an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.quickly     ^
As an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.quickly, affordably & safely                        ^
Why do Non-Functionals Matter?
Handling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile Project
Quick RefresherFunctional RequirementsThe Batmobile ShallStart when a key is turned.Accelerate from 0..60 in 3 secondsDecelerate when the brakes are pressed.Non-Functional RequirementsThe Batmobile Shall beFast
Fuel Efficient
Reliable
Comfortable
BulletproofLingo CheckNon Functional RequirementsNFRsConstraintsilitiesQuality RequirementsOperational RequirementsSystem AttributesOther labels??
Try this	Draw a pizza that has eight slices with three lines.
Handling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile Project
Projects without clear goals will not achieve their goals clearly.   											Thomas GilbDesign is the progressive elimination of ambiguity.											Gerald Weinberg
Rememberevery problemhas many possible solutions.
Narrowing the Field of CandidatesLimitationsPossible SolutionsConstraintsConstraintsAttributesLimitationsAnti-PreferencesConstraints
Grammatical AdornmentsAs a fox, I can jump over the dog.+ Adjectives & AdverbsAs a quick brown fox, I can jump quickly over the lazy dog.
Adjectives can be 皆顎恢逮艶界岳庄厩艶
Adjectives can be RelativeOkay, so you want a nice cake?YES!!YES!!
Context Mattersshallbe dressed appropriately
Context Mattersshallbe dressed appropriately
Non Functional RequirementsSystem DimensionContext(What)AttributeShall BeMetricHow well knowShould ValueMust Value
Non Functional RequirementsCheck Out TransactionContext(What)EfficientShall Be# Clicks RequiredHow well knowShould: < 5Must: <10
Adjective/Adverb YardsticksNice but not required.Elapsed seconds from submit to displayAs a CSR, I can quickly retrieve a customer record so that I can provide efficient customer service.Nope, never, no way
Non Functional RequirementsTry 壊看馨艶
How do you measureUser FriendlyEfficientFastResponsiveReliableSecureAccessiblePortableCompliantEasily MaintainableHighly Available
The NFR SCRUM DilemmaUser Stories are meant to be completed.Most NFRs must be addressed throughout the project.Tunnel vision: when focused on a story, its easy to forget about NFRs (e.g. user friendly was nailed in Sprint 1, but overlooked in Sprint 3)
The Non Functional Requirementwithin a User StoryAs a Blogger, I want topost an entry  quickly and efficientlyso that I can easily update my blog.
The Non Functional Requirementmaking it testable:Test thatA blog entry can be posted in less than 3 keystrokes.
A blog entry can be posted in under 5 seconds.The Non Functional Requirementas a User StoryAs a Blogger, I want tosupport many web feed formats so that I can reach a wide audience
The Non Functional Requirementmaking it testable:Test thatRSS 1.0 is supported.
RSS 2.0 is supported.
Atom 0.3 is supported.
Atom 1.0 is supported.What were really talking about is....how to handle something that has a potential impact on all stories and tasks.Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Whats the most efficient way to do this?Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>As a Blogger, I want topost an entryquickly and efficientlyso that I can easily update my blog.
The System MUST be SOX CompliantHow do we make sure?
NFR IdeaRegression tests for NFRs
NFR IdeaNFR Filters Applied to Each StoryAs a Blogger, I want toquickly and efficientlypost an entryso that I can easily update my blog.User FriendlyEfficientAs a Blogger, I want topost an entryso that I can update my blog.
NFR IdeaReminder radiatorsUser FriendlyFastEfficient

More Related Content

Handling Non Functional Requirements on an Agile Project

  • 1. Handling Non-Functional RequirementsOn an Agile ProjectKen HowardImproving Enterprisesken@improvingenterprises.comBlog: www.agilist.net
  • 2. Heres my storyAs an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.
  • 3. As an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.quickly ^
  • 4. As an Agile Consultant, I want to travel from Dallas to Chicago so that I can present at Agile2009.quickly, affordably & safely ^
  • 8. Quick RefresherFunctional RequirementsThe Batmobile ShallStart when a key is turned.Accelerate from 0..60 in 3 secondsDecelerate when the brakes are pressed.Non-Functional RequirementsThe Batmobile Shall beFast
  • 12. BulletproofLingo CheckNon Functional RequirementsNFRsConstraintsilitiesQuality RequirementsOperational RequirementsSystem AttributesOther labels??
  • 13. Try this Draw a pizza that has eight slices with three lines.
  • 17. Projects without clear goals will not achieve their goals clearly. Thomas GilbDesign is the progressive elimination of ambiguity. Gerald Weinberg
  • 18. Rememberevery problemhas many possible solutions.
  • 19. Narrowing the Field of CandidatesLimitationsPossible SolutionsConstraintsConstraintsAttributesLimitationsAnti-PreferencesConstraints
  • 20. Grammatical AdornmentsAs a fox, I can jump over the dog.+ Adjectives & AdverbsAs a quick brown fox, I can jump quickly over the lazy dog.
  • 21. Adjectives can be 皆顎恢逮艶界岳庄厩艶
  • 22. Adjectives can be RelativeOkay, so you want a nice cake?YES!!YES!!
  • 25. Non Functional RequirementsSystem DimensionContext(What)AttributeShall BeMetricHow well knowShould ValueMust Value
  • 26. Non Functional RequirementsCheck Out TransactionContext(What)EfficientShall Be# Clicks RequiredHow well knowShould: < 5Must: <10
  • 27. Adjective/Adverb YardsticksNice but not required.Elapsed seconds from submit to displayAs a CSR, I can quickly retrieve a customer record so that I can provide efficient customer service.Nope, never, no way
  • 29. How do you measureUser FriendlyEfficientFastResponsiveReliableSecureAccessiblePortableCompliantEasily MaintainableHighly Available
  • 30. The NFR SCRUM DilemmaUser Stories are meant to be completed.Most NFRs must be addressed throughout the project.Tunnel vision: when focused on a story, its easy to forget about NFRs (e.g. user friendly was nailed in Sprint 1, but overlooked in Sprint 3)
  • 31. The Non Functional Requirementwithin a User StoryAs a Blogger, I want topost an entry quickly and efficientlyso that I can easily update my blog.
  • 32. The Non Functional Requirementmaking it testable:Test thatA blog entry can be posted in less than 3 keystrokes.
  • 33. A blog entry can be posted in under 5 seconds.The Non Functional Requirementas a User StoryAs a Blogger, I want tosupport many web feed formats so that I can reach a wide audience
  • 34. The Non Functional Requirementmaking it testable:Test thatRSS 1.0 is supported.
  • 35. RSS 2.0 is supported.
  • 36. Atom 0.3 is supported.
  • 37. Atom 1.0 is supported.What were really talking about is....how to handle something that has a potential impact on all stories and tasks.Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Whats the most efficient way to do this?Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>Given <a condition>When <event occurs>Then<system should ...>As a Blogger, I want topost an entryquickly and efficientlyso that I can easily update my blog.
  • 38. The System MUST be SOX CompliantHow do we make sure?
  • 40. NFR IdeaNFR Filters Applied to Each StoryAs a Blogger, I want toquickly and efficientlypost an entryso that I can easily update my blog.User FriendlyEfficientAs a Blogger, I want topost an entryso that I can update my blog.
  • 41. NFR IdeaReminder radiatorsUser FriendlyFastEfficient
  • 42. NFR IdeaAssign NFR StewardsUser FriendlyUser FriendlyFastEfficient
  • 45. Feel free toEmail me. Call me. Read my Blog.Hire us!Ken Howardken@improvingenterprises.comBlog: www.agilist.net972.467.3001