Agile Software Development Series (System Qualities) Agile ... · Agile Software Development Series Alistair Cockburn and Jim Highsmith, Series Editors Agile Software ... Series Editors
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
4
The first 90% of the code takes 90% of the development time. The remaining 10% of the code takes up the other 90% of the time. -- Tom Cargill, Bell Labs
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
Scaling requires rethinking
Assume a program requires – 200 practitioners, (25 agile teams) to deliver a product – The enterprise delivers software every 90 days in five, two
week iterations. – Each team averages 15 stories per iteration. – Number of stories that must be elaborated and delivered to
achieve the release objective = 25*5*15= 1,875!
How is an enterprise supposed to reason about things? – What is this new product going to actually do for our users? – If we have 900 stories complete, 50% done, what do we
actually have working? How would we describe 900 things? – How will we plan a release than contains 1,875 things?
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
What about nonfunctional requirements?
Features and user stories express functional requirements
But other requirements determine system quality as well: – Performance, reliability and security requirements – Industry and Regulatory Standards – Design constraints, such as those that provide common
behavior across like components
Typically, these system level qualities – Span multiple components/products/applications/
services/subsystems – Can often only be tested at the system level
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
Persisting Nonfunctional Requirements Create a special backlog in your agile project
management tool Put them on a wiki or other project repository Build a supplemental specification Include them as an appendix to the Definition of Done
for the project
Sources, Examples and Templates: – Rational Unified Process Supplemental Specification – Leffingwell: Agile Software Requirements: Lean Requirements
Practices for Teams, Programs and the Enterprise, Addison-Wesley 2010.
– Leffingwell and Widrig [2003] : Managing Software Requirements,: A Use Case Approach, , Addison-Wesley 2003
Source: FURPS model developed at Hewlett-Packard and documented by Robert Grady and Deborah Caswell in Software Metrics: Establishing a Company Wide Program (1987)
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
Real Product Examples – Step 1
35
Name: Usability.Efficiency Scale: Number of Actions to complete a Transaction from a Location Meter: Average observed results from usertesting.com usability tests
Name: Usability.Conversion Scale: Percentage of Users who complete a Transaction after starting Meter: Google Analytics conversion report
Actions: One of {Data entry, Click, Scroll}. Default is All Actions Transaction: One of {eCommerce [Shop, Purchase], Self Service [Activate, Change Plan]} Location: One of {Home Page, My Account}. Default is Home Page
Name: Usability Scales: Efficiency: Number of Actions to complete a Transaction from a Location Conversion: Percentage of Users who complete a Transaction after starting Meters: Efficiency: Average observed results from usertesting.com usability tests Conversion: Google Analytics conversion report
Alternative Syntax
Quality Defini'on Quality Step 1: Iden'fy name, appropriate scale of measure and method of measuring
Name: In the form Quality.SubQuality Scale: What to measure (units) Meter: How to measure (method)
Step 2: Establish Baseline and set appropriate targets and constraints
Target: Success level to achieve Constraint: Failure level to avoid Baseline: Current level
[Qualifiers]: Specificity and Reusable Scales <-‐ Sources: Addi=onal transparency and credibility Defini'ons: To clarify terminology and meaning
Name:
Scale:
Meter:
Baseline Constraint Target
Quality Example Quality Name: Usability.Efficiency Scale: Number of Ac=ons to complete a Transac=on from the Home Page Meter: Average observed results from usertes=ng.com usability tests Ac=ons: One of {Data entry, Scroll, Click}. Default is All. Transac=on: One of {Registra=on, Purchase}
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
Baselines
Method Description
Use Existing Meter Use existing method of measuring such as a report
Create a New Meter Create a new method of measuring. This requires the team to implement new capabilities in order to measure in the future
Estimate Do the best you can to estimate what the existing baseline is, even if there’s no supporting data. Use the <- source tag to indicate credibility of data
37
Common methods for establishing Baseline levels include
Alistair Cockburn and Jim Highsmith, Series Editors
Agile Software RequirementsLean Requirements Practices for Teams, Programs, and the Enterprise
Dean LeffingwellForeword by Don Reinertsen
Real Product Examples – Steps 1 & 2
40
Name: Usability Scales: Efficiency: Number of Actions to complete a Transaction from a Location Conversion: Percentage of Users who complete a Transaction after starting Meters: Efficiency: Average observed results from usertesting.com usability tests Conversion: Google Analytics conversion report
Actions: One of {Data entry, Click, Scroll}. Default is All Actions Transaction: One of {eCommerce [Shop, Purchase], Self Service [Activate, Change Plan]} Location: One of {Home Page, My Account}. Default is Home Page
Quality Defini'on Quality Step 1: Iden'fy name, appropriate scale of measure and method of measuring
Name: In the form Quality.SubQuality Scale: What to measure (units) Meter: How to measure (method)
Step 2: Establish Baseline and set appropriate targets and constraints
Target: Success level to achieve Constraint: Failure level to avoid Baseline: Current level
[Qualifiers]: Specificity and Reusable Scales <-‐ Sources: Addi=onal transparency and credibility Defini'ons: To clarify terminology and meaning
Name:
Scale:
Meter:
Baseline Constraint Target
Quality Example Quality Name: Usability.Efficiency Scale: Number of Ac=ons to complete a Transac=on from the Home Page Meter: Average observed results from usertes=ng.com usability tests Ac=ons: One of {Data entry, Scroll, Click}. Default is All. Transac=on: One of {Registra=on, Purchase}