karl wiegers -- software requirements -- 10 traps to avoid
TRANSCRIPT
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 1
Software Requirements: 10 Traps to Avoid 1 Copyright © 2010 Karl E. Wiegers
Software Requirements: 10 Traps to Avoid 2 Copyright © 2010 Karl E. Wiegers
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 2
Software Requirements: 10 Traps to Avoid 3 Copyright © 2010 Karl E. Wiegers
Software Requirements:Requirements:
10 Traps to AvoidKarl E WiegersKarl E Wiegers
Copyright © 2010 Karl E. Wiegers version 3
Karl E. Wiegers
www.processimpact.com
Pr o c ess Impa c tKarl E. Wiegers
www.processimpact.com
Pr o c ess Impa c tPr o c ess Impa c t
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 3
Have You Had Any of These Experiences?
The project’s vision and scope are never clearly defined.
Customers are too busy to spend time working with Customers are too busy to spend time working with analysts or developers on the requirements.
User surrogates (such as managers or marketing) claim to speak for the users, but they really don’t.
Customers claim that all requirements are critical, so they don’t prioritize them.
Software Requirements: 10 Traps to Avoid 5 Copyright © 2010 Karl E. Wiegers
they don t prioritize them.
Developers encounter ambiguities and missing information when coding, so they have to guess.
Have You Had Any of These Experiences?
Your customers sign off on the requirements and then change them continuously.
The project scope increases as requirements changes are accepted, but the schedule slips because more resources aren’t provided.
Requested requirements changes get lost and the status of a change request is not known.
Software Requirements: 10 Traps to Avoid 6 Copyright © 2010 Karl E. Wiegers
Functionality is requested and built, but never used.
The specification is satisfied, but the customer is not.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 4
The Requirements Process -- NOT!
Software Requirements: 10 Traps to Avoid 7 Copyright © 2010 Karl E. Wiegers
Trap #1: Confusion Over “Requirements”
Stakeholders discuss “requirements” with
Symptomsq
no adjectives in front.
Project sponsor presents a high-levelconcept as “the requirements”.
User interface screens are viewed as“the requirements”.
Software Requirements: 10 Traps to Avoid 8 Copyright © 2010 Karl E. Wiegers
q
Users provide “requirements,” butdevelopers still don’t know what to build.
Requirements focus just on functionality.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 5
Three Levels of Software Requirements
BusinessRequirements
Vi i d S D tVision and Scope Document
UserRequirements
Use Case Document ExternalInterfaces
BusinessRules
QualityAttributes
Software Requirements: 10 Traps to Avoid 9 Copyright © 2010 Karl E. Wiegers
FunctionalRequirements
Software Requirements Specification
Constraints
Interfaces
SystemRequirements
Trap #1: Confusion Over “Requirements”
Adopt templates for three sets of requirements.
Solutionsp p q
business requirements (Vision & Scope Document) user requirements (Use Case Document) software requirements (Software Requirements
Specification)
Distinguish functional from nonfunctional requirements.
lit tt ib t t i t t l i t f
Software Requirements: 10 Traps to Avoid 10 Copyright © 2010 Karl E. Wiegers
quality attributes, constraints, external interface requirements, business rules
Classify customer input into the different categories.
Distinguish solution ideas from requirements.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 6
Trap #2: Inadequate Customer Involvement
Some user classes are overlooked.
Symptoms
Some user classes don’t have a voice.
User surrogates attempt to speak for users.
user managers marketing developers
Software Requirements: 10 Traps to Avoid 11 Copyright © 2010 Karl E. Wiegers
developers
Developers have to make many requirements decisions.
Customers reject the product when they first see it.
Trap #2: Inadequate Customer Involvement
Identify your various user classes.
Solutionsy y
Identify product champions as user representatives.
Convene focus groups.
Identify decision-makers.
Have users evaluate prototypes.
Software Requirements: 10 Traps to Avoid 12 Copyright © 2010 Karl E. Wiegers
Have users evaluate prototypes.
Have user representatives review the SRS.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 7
Trap #3: Vague & Ambiguous Requirements
Readers interpret a requirement in several
Symptoms
Readers interpret a requirement in severaldifferent ways.
Requirements are missing information thedeveloper needs.
Requirements are not verifiable.
Software Requirements: 10 Traps to Avoid 13 Copyright © 2010 Karl E. Wiegers
Developers have to ask many questions.
Developers have to guess a lot.
Trap #3: Vague & Ambiguous Requirements
Formally inspect requirement documents.
Solutions
Write conceptual test cases against requirements.
Model requirements to find knowledge gaps.
Use prototypes to make requirements more tangible.
Define terms in a glossary.
Software Requirements: 10 Traps to Avoid 14 Copyright © 2010 Karl E. Wiegers
g y
Avoid ambiguous words:
minimize, maximize, optimize, rapid, user-friendly, simple, intuitive, robust, state-of-the-art, improved, efficient, ideally, flexible, several, and/or, etc., include, support, adequate
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 8
Trap #4: Unprioritized Requirements
All i t iti l!
Symptoms 100%
80%
60% All requirements are critical!
Different stakeholders interpret “high”priority differently.
After prioritization, 95% are still high.
Developers don’t want to admit they can’t do it all.
L M H
60%
40%
20%
0%
Software Requirements: 10 Traps to Avoid 15 Copyright © 2010 Karl E. Wiegers
Developers don t want to admit they can t do it all.
It’s not clear which requirements to defer during the “rapid descoping phase.”
Trap #4: Unprioritized Requirements
Align functional requirements with business requirements.
Solutionsg q q
Align functional requirements with high-priority use cases.
frequency of use favored user classes core business processes demanded for regulatory compliance
Software Requirements: 10 Traps to Avoid 16 Copyright © 2010 Karl E. Wiegers
Define priority categories unambiguously.
Allocate requirements or features to releases.
Analytically prioritize discretionary requirements.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 9
Trap #5: Building Functionality No One Uses
Users demand certain features, then no one uses them.
Symptoms,
Proposed functionality isn’t related to business tasks.
Developers add functions because “the users will love this”.
Customers don’t distinguish “chrome” from “steel”.
Software Requirements: 10 Traps to Avoid 17 Copyright © 2010 Karl E. Wiegers
Trap #5: Building Functionality No One Uses
Derive functional requirements from use cases.
Solutionsq
Trace every functional requirement back to its origin.
Identify user classes who will benefit from each feature.
Analytically prioritize requirements, use cases, or features.
Software Requirements: 10 Traps to Avoid 18 Copyright © 2010 Karl E. Wiegers
have customers rate value (benefit and penalty) have developers estimate cost and risk avoid requirements with high cost and low value
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 10
Trap #6: Analysis Paralysis
Requirements development seems to go on forever.
Symptomsq p g
New versions of the SRS are continually released.
Requirements are never baselined.
All requirements are modeled six ways from Sunday.
Design and coding can’t start until the SRS is perfect.
Software Requirements: 10 Traps to Avoid 19 Copyright © 2010 Karl E. Wiegers
Design and coding can t start until the SRS is perfect.
Trap #6: Analysis Paralysis
Remember: the product is software, not an SRS.
Solutionsp ,
Select an appropriate development life cycle.
staged release, evolutionary prototyping, time-boxing
Decide when requirements are good enough.
acceptable risk of proceeding with construction reviewed by analyst developers testers and customers
Software Requirements: 10 Traps to Avoid 20 Copyright © 2010 Karl E. Wiegers
reviewed by analyst, developers, testers, and customers
Model just the complex or uncertain parts of the system.
Don’t include final user interface designs in SRS.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 11
Trap #7: Scope Creep
New requirements are continually added.
Symptoms
schedule doesn’t change no more resources provided
Product scope is never clearly defined.
Proposed requirements come, and go, and come back.
Requirement changes sneak in through the back door
Software Requirements: 10 Traps to Avoid 21 Copyright © 2010 Karl E. Wiegers
Requirement changes sneak in through the back door.
Scope issues are debated during SRS reviews.
Sign-off is just a game.
Trap #7: Scope Creep
Determine root causes of the scope creep.
Solutionsp p
Document the product’s vision and scope.
Define system boundaries and interfaces.
Follow the change control process for all changes.
Improve requirements elicitation methods.
Software Requirements: 10 Traps to Avoid 22 Copyright © 2010 Karl E. Wiegers
Improve requirements elicitation methods.
Follow a meaningful baselining process.
Renegotiate commitments when requirements change.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 12
Trap #8: Inadequate Change Process
No change process is defined.
Symptoms
Some people bypass the change process.
talk to buddies on the inside implement rejected changes work is done on proposed changes before they’re approved
New functionality becomes evident during testing.
Software Requirements: 10 Traps to Avoid 23 Copyright © 2010 Karl E. Wiegers
Unclear change request status.
Changes aren’t communicated to all those affected.
It’s not clear who makes change decisions.
Trap #8: Inadequate Change Process
Define a practical change control process.
Solutionsp g p
Set up a Change Control Board.
diverse group makes binding change decisions
Use a tool to collect, track, and communicate changes.
problem or issue tracking tools work well
Software Requirements: 10 Traps to Avoid 24 Copyright © 2010 Karl E. Wiegers
problem or issue tracking tools work well a tool is not a process!
Establish and enforce change control policies.
Compare priorities against remaining requirements.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 13
Trap #9: Insufficient Change Impact Analysis
People agree to make changes hastily.
Symptomsp g g y
Change is more complex than anticipated.
Change takes longer than promised.
Change isn’t technically feasible.
Change causes project to slip.
Software Requirements: 10 Traps to Avoid 25 Copyright © 2010 Karl E. Wiegers
Change causes project to slip.
Developers keep finding more systemcomponents affected by the change.
Trap #9: Insufficient Change Impact Analysis
Systematically analyze the impact of each proposed
Solutionsy y y p p p
change.
identify all possible tasks consider other implications of accepting the change estimate effort and schedule impact
Use requirements traceability information.
id tif ll ff t d t t
Software Requirements: 10 Traps to Avoid 26 Copyright © 2010 Karl E. Wiegers
identify all affected system components
Estimate costs and benefits before making commitments.
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 14
Trap #10: Inadequate Version Control
Accepted changes aren’t incorporated into SRS.
Symptomsp g p
You can’t distinguish different SRS versions.
different versions have the same ID identical documents have different IDs
People work from different SRS versions.
implement canceled features
Software Requirements: 10 Traps to Avoid 27 Copyright © 2010 Karl E. Wiegers
implement canceled features test against the wrong requirements
Change history and earlier document versions are lost.
Trap #10: Inadequate Version Control
Merge changes into the SRS.
Solutionsg g
Adopt a versioning scheme for documents.
Place requirements documents under version control.
restrict read/write access make current versions available read-only to all
C i t i i t ll h ff t d
Software Requirements: 10 Traps to Avoid 28 Copyright © 2010 Karl E. Wiegers
Communicate revisions to all who are affected.
Use a requirements management tool.
record complete history of every requirement change SRS is a report from the database
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 15
Keys to Excellent Software Requirements
Educated developers, managers, and customers
A collaborative customer-developer partnership
Understanding different kinds of requirements
Iterative, incremental requirements development
Standard requirements document templates
Formal and informal requirements reviews
Software Requirements: 10 Traps to Avoid 29 Copyright © 2010 Karl E. Wiegers
Writing test cases against requirements
Analytical requirements prioritization
Practical, effective change management
Software Requirements: 10 Traps To Avoid
NONO
SURPRISES! SURPRISES!
Software Requirements: 10 Traps to Avoid 30 Copyright © 2010 Karl E. Wiegers
SURPRISES! SURPRISES!
Software Requirements: 10 Traps to Avoid Copyright ã 2010 Karl E. Wiegers Page 16
Requirements References
Gottesdiener, Ellen. Requirements by Collaboration: Workshops for Defining Needs. Boston: Addison-Wesley, 2002.
IEEE Std. 830-1998, "Recommended Practice for Software Requirements Specifications " Los Alamitos Ca : IEEE Computer Society Press 1998Specifications. Los Alamitos, Ca.: IEEE Computer Society Press, 1998.
Lauesen, Soren. Software Requirements: Styles and Techniques. London: Addison-Wesley, 2002.
Leffingwell, Dean, and Don Widrig. Managing Software Requirements: A Use Case Approach, 2nd Ed. Reading, Mass.: Addison Wesley, 2003.
Robertson, Suzanne, and James Robertson. Mastering the Requirements Process , 2nd Ed. Harlow, England: Addison-Wesley, 2006.
Sommerville Ian and Pete Sawyer Requirements Engineering: A Good Practice Guide
Software Requirements: 10 Traps to Avoid 31 Copyright © 2010 Karl E. Wiegers
Sommerville, Ian, and Pete Sawyer. Requirements Engineering: A Good Practice Guide. New York: John Wiley & Sons, 1997.
Wiegers, Karl E. Software Requirements, 2nd Ed. Redmond, Wash.: Microsoft Press, 2003.
Wiegers, Karl E. More About Software Requirements: Thorny Issues and Practical Advice. Redmond, Wash.: Microsoft Press, 2006.
Software Requirements: 10 Traps to Avoid 32 Copyright © 2010 Karl E. Wiegers