When adjectives and adverbs appear in User Stories, they can be easily overlooked and seen as simple adornments to the story. There are a couple schools of thought on how to handle non-functional requirements on Agile projects. Mike Cohn recommends writing a User Story for each non-functional requirement, while others recommend creating task cards to drive out specification using Thomas Gilbs approach. In this session, examples of various techniques for handling non-functional requirements will be demonstrated, with a discussion of pros and cons of each technique.
1 of 41
More Related Content
Handling Non Functional Requirements on an Agile Project
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
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.
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.
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.