Handling Non Functional Requirements on an Agile Project - Presentation Transcript
Handling Non-Functional Requirements On an Agile Project Ken Howard Improving Enterprises ken@improvingenterprises.com Blog: www.agilist.net
Here’s my story… As 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?
Quick Refresher… Functional Requirements The Batmobile Shall… Start when a key is turned. Accelerate from 0..60 in 3 seconds Decelerate when the brakes are pressed. Non-Functional Requirements The Batmobile Shall be…
Fast
Fuel Efficient
Reliable
Comfortable
Bulletproof
Lingo Check Non Functional Requirements NFRs Constraints …ilities Quality Requirements Operational Requirements System Attributes Other labels??
Try this… Draw a pizza that has eight slices with three lines.
“Projects without clear goals will not achieve their goals clearly.” Thomas Gilb “Design is the progressive elimination of ambiguity.” Gerald Weinberg
Remember… …every problem… …has many possible solutions.
Narrowing the Field of Candidates Limitations Possible Solutions Constraints Constraints Attributes Limitations Anti-Preferences Constraints
Grammatical Adornments As a fox, I can jump over the dog. + Adjectives & Adverbs As a quick brown fox, I can jump quickly over the lazy dog.
Adjectives can be Subjective…
Adjectives can be Relative… Okay, so you want a nice cake? YES!! YES!!
Context Matters… …shallbe dressed appropriately
Context Matters… …shallbe dressed appropriately
Non Functional Requirements System Dimension Context (What) Attribute Shall Be… Metric How we’ll know “Should” Value “Must” Value
Adjective/Adverb Yardsticks… Nice but not required. Elapsed seconds from “submit” to display As a CSR, I can quickly retrieve a customer record so that I can provide efficient customer service. Nope, never, no way…
Non Functional Requirements Try some…
How do you measure… User Friendly Efficient Fast Responsive Reliable Secure Accessible Portable Compliant Easily Maintainable Highly Available
The NFR SCRUM Dilemma… User Stories are meant to be completed. Most NFR’s must be addressed throughout the project. Tunnel vision: when focused on a story, it’s easy to forget about NFR’s (e.g. user friendly was nailed in Sprint 1, but overlooked in Sprint 3)
The Non Functional Requirement……within a User Story As a Blogger, I want topost an entry quickly and efficientlyso that I can easily update my blog.
The Non Functional Requirement……making it testable: Test that…
A blog entry can be posted in less than 3 keystrokes.
A blog entry can be posted in under 5 seconds.
The Non Functional Requirement……as a User Story As a Blogger, I want tosupport many web feed formats so that I can reach a wide audience
The Non Functional Requirement……making it testable: Test that…
RSS 1.0 is supported.
RSS 2.0 is supported.
Atom 0.3 is supported.
Atom 1.0 is supported.
What we’re 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 ...> What’s 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 entry quickly and efficientlyso that I can easily update my blog.
The System MUST be SOX Compliant… How do we make sure?
NFR Idea Regression tests for NFR’s
NFR Idea NFR Filters Applied to Each Story As a Blogger, I want toquickly and efficiently post an entryso that I can easily update my blog. User Friendly Efficient As a Blogger, I want topost an entryso that I can update my blog.
NFR Idea Reminder radiators… User Friendly Fast Efficient
NFR Idea Assign NFR Stewards User Friendly User Friendly Fast Efficient
NFR Idea Others? What have you done?
Feel free to…Email me. Call me. Read my Blog.…Hire us! Ken Howard ken@improvingenterprises.com Blog: www.agilist.net 972.467.3001
When adjectives and adverbs appear in User Stories, more
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 Gilb’s 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. less
0 comments
Post a comment