karl wiegers -- software requirements -- 10 traps to avoid

16
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

Upload: vladimir-krisyuk

Post on 13-Oct-2014

211 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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

Page 2: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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

Page 3: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 4: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 5: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 6: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 7: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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

Page 8: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 9: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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

Page 10: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 11: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 12: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 13: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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.

Page 14: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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

Page 15: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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!

Page 16: Karl Wiegers -- Software Requirements -- 10 Traps to Avoid

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