• Save
Handling Non Functional Requirements on an Agile Project
Upcoming SlideShare
Loading in...5
×
 

Handling Non Functional Requirements on an Agile Project

on

  • 8,756 views

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 ...

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.

Statistics

Views

Total Views
8,756
Views on SlideShare
8,574
Embed Views
182

Actions

Likes
12
Downloads
0
Comments
1

7 Embeds 182

http://agilist.net 152
http://www.slideshare.net 24
http://agilist.wordpress.com 2
http://operationomega.com 1
https://wiki.pointroll.com 1
https://wiki.shoplocal.com 1
http://www.pearltrees.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • How to handle performance tasks as NFR in Scrum sprints? since we are not able to give any prod demo at the end of the sprint. please share your thought process or experience on the same NFR.

    Regards,
    Venkat.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Handling Non Functional Requirements on an Agile Project 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
  • Non Functional Requirements
    “Check Out” Transaction
    Context
    (What)
    Efficient
    Shall Be…
    # Clicks Required
    How we’ll know
    Should: < 5
    Must: <10
  • 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