Writing Better Requirements
The Key to a Successful Project
Kimberly Roberts
Kimberly Roberts
Senior Application Engineer
Senior Application Engineer
kimberly_
Objectives
Objectives
ä
ä Learn how good requirements definition canLearn how good requirements definition can
benefit your organization. benefit your organization.
ä
ä Learn what the differences are betweenLearn what the differences are between
User Requirements, System Requirements User Requirements, System Requirements and Architectural Design Requirements
and Architectural Design Requirements
ä
ä Explore the anatomy of a requirement andExplore the anatomy of a requirement and
characteristics of a good requirement characteristics of a good requirement
Why projects fail
Why projects fail
ä
ä Incomplete requirements - 13.1%Incomplete requirements - 13.1%
ä
ä Lack of user involvement - 12.4%Lack of user involvement - 12.4%
ä
ä Lack of resources - 10.6%Lack of resources - 10.6%
ä
ä Unrealistic expectations - 9.9%Unrealistic expectations - 9.9%
ä
ä Lack of executive support - 9.3%Lack of executive support - 9.3%
ä
ä Changing reqs/specs - 8.7%Changing reqs/specs - 8.7%
ä
ä Lack of planning - 8.1%Lack of planning - 8.1%
ä
ä Didn’t need it any longer - 7.5%Didn’t need it any longer - 7.5%
Sources: Standish Group Sources: Standish Group
Scientific American Scientific American
Why projects succeed
Why projects succeed
ä
ä User involvement - 15.9%User involvement - 15.9%
ä
ä Management support - 13.9%Management support - 13.9%
ä
ä Clear statement of reqs - 13.0%Clear statement of reqs - 13.0%
ä
ä Proper planning - 9.6%Proper planning - 9.6%
ä
ä Realistic expectations - 8.2%Realistic expectations - 8.2%
ä
ä Smaller milestones - 7.7%Smaller milestones - 7.7%
ä
ä Competent staff - 7.2%Competent staff - 7.2%
ä
ä Ownership - 5.3%Ownership - 5.3%
Sources: Standish Group Sources: Standish Group
Scientific American Scientific American
And the question is…...
And the question is…...
How do we make a project
How do we make a project
successful?
successful?
Write Better Requirements….
Write Better Requirements….
It’s a
It’s a HIGH LEVERAGEHIGH LEVERAGE activity!! activity!! Requirements allow you to
Requirements allow you to IMPROVEIMPROVE
Quality with
Requirements are how we
communicate
Requirements are how we
communicate
Developers Developers Customer Customer UsersUsers ManufacturersManufacturers
Designers
Designers
Management
What are Requirements?
(They are the “To-Do” List of the Project Team)What are Requirements?
(They are the “To-Do” List of the Project Team)
ä
ä List of WHATList of WHAT the Users need the Users need
ä
ä List of WHATList of WHAT the System must do to the System must do to
Satisfy their needs Satisfy their needs
ä
ä List of List of WHATWHAT components must be built components must be built
ä
ä List of WHATList of WHAT each component must each component must DODO,,
and
and HOWHOW they will they will INTERACTINTERACT
Requirements define the quality
Requirements define the quality
of the system
When are Good Requirements
Essential?
When are Good Requirements
Essential?
ä
ä If you are building anything intended for someone else’s useIf you are building anything intended for someone else’s use ä
ä If you are building systems that do more than one thingIf you are building systems that do more than one thing ä
ä If you are building anything that will be used more thanIf you are building anything that will be used more than once
once ä
ä If you are building something that interacts with otherIf you are building something that interacts with other systems
systems ä
ä If you are building a system that requires a specified level ofIf you are building a system that requires a specified level of performance
performance ä
ä If you are building anything that involves payment or otherIf you are building anything that involves payment or other consideration (in other words, a
consideration (in other words, a contractcontract))
Good requirements can make a difference Good requirements can make a difference
Requirements Ensure You Build
the Right Project the Right Way
Requirements Ensure You Build
the Right Project the Right Way
Architectural Architectural design design System System requirements requirements User User requirements requirements Component Component development development Component Component tests tests Integration Integration tests tests System System tests tests Acceptance Acceptance tests tests Verification Verification Validation DEFINITION DEFINITION INTEGRATION INTEGRATIONVALIDATIONVALIDATION
Basic Types of Requirements
Basic Types of Requirements
ä T Y P E S O F D O C U M E N T S
ä User or Business Needs Requirements
ä System or Functional Requirements
ä Architectural Design
ä “Element” Requirements
(Software & Hardware)
ä Interface Definition Requirements ä T Y P E S O F R E Q U I R E M E N T S ä Functional Requirements ä Non-Functional Requirements ä Constraints ä Design Guidelines
Document Definitions
Document Definitions
ä System/Functional Requirements
ä What the System will do from the builders Perspective
ä Component Requirements
ä Design level list of all things that each component
must do. Any Programmer/Engineer can build one from this document
ä Interface Requirements
ä Description of the Protocol and Physical Interface
between Components of the System
ä User/Business Needs Requirements
Key Number 1 :
Know where we are going.
Capture user requirements to
Capture user requirements to
understand what user problems
understand what user problems
your product will solve.
your product will solve.
USER/BUSINESS NEEDS
USER/BUSINESS NEEDS
REQUIREMENTS
If we don’t know where we’re
going….
ä
ä we never get there.we never get there.
ä
ä we think we’re there but in reality we arewe think we’re there but in reality we are
not. not.
ä
ä we finally get there but it takes a long timewe finally get there but it takes a long time
to arrive. to arrive.
We have the time to do it over and over again
but we never have the time to do it right the
How do we know where
we’re going?
The different types of users tell us!
Corporate executives Customer Marketing Testers End users Maintainers
Good user requirements are
essential!
Good user requirements are
essential!
Without good user requirements
Without good user requirements
there is no clear direction for
there is no clear direction for
building a product….
building a product….
Product team members can head
Product team members can head
in different directions!
User Needs
User Needs
ä
ä Generated by:Generated by:
ä
äBusiness AnalysisBusiness Analysis ä
ä Generated From:Generated From:
ä
äUser RequestsUser Requests
ä
äBusiness RulesBusiness Rules View By:View By:
• • PriorityPriority • • ImportanceImportance • • AcceptableAcceptable •
• YouYou Choose Choose
Corp Corp Business Business Rules Rules End End User User Rqmts Rqmts RFP RFP Contract Contract
Where do User Needs Come From?
Anatomy of a User Requirement
Anatomy of a User Requirement
“The order entry clerk shall be able to complete ten
“The order entry clerk shall be able to complete ten
customer orders in less than 2 hours”
customer orders in less than 2 hours”
This requirement identifies a real user type and an end result.
This requirement identifies a real user type and an end result.
It also defines the success criteria in measurable terms.
It also defines the success criteria in measurable terms.
The challenge is to seek out the user
The challenge is to seek out the user
type, end result, and success measure in
type, end result, and success measure in
every requirement.
Key Number 2 :
Know What We Are Doing
“What do WE need to know to “What do WE need to know to
build this?” build this?” SYSTEM/FUNCTIONAL SYSTEM/FUNCTIONAL REQUIREMENTS REQUIREMENTS
What Makes Up a System?
What Makes Up a System?
ä
ä Descriptive ElementsDescriptive Elements ä
ä Functional or BehavioralFunctional or Behavioral Breakdown Breakdown ä ä PerformancePerformance ä ä InterfacesInterfaces ä
ä Non-Functional RequirementsNon-Functional Requirements ä
ä Traceability to UserTraceability to User Requirements
Requirements
Components of System Requirements:
Key requirements Key requirements in here in here Use attributes Use attributes
The core of the system The core of the system requirements document requirements document
Often a large part of a Often a large part of a document required for document required for content to “make sense” content to “make sense”
System Requirements Document
System Requirements Document
l
l Defines a model of the system to be built - not the systemDefines a model of the system to be built - not the system l
l Defines some mixture of functionality, behavior, performance, andDefines some mixture of functionality, behavior, performance, and
systems constraints systems constraints
l
l It’s a model, not a complete system definitionIt’s a model, not a complete system definition l
l Organized by functionality or logical layoutOrganized by functionality or logical layout l
l As implementation free as possibleAs implementation free as possible l
l Every statement verifiable, with level and nature of test as attributesEvery statement verifiable, with level and nature of test as attributes l
l Defines professional constraints -- e.g. from different disciplines,Defines professional constraints -- e.g. from different disciplines,
working environment, induced environment, safety, etc. working environment, induced environment, safety, etc.
l
l Owned by systems engineers, viewable to everyone includingOwned by systems engineers, viewable to everyone including
customers and designers customers and designers
Different Attributes Between
User and System Requirements
Different Attributes Between
User and System Requirements
ä
ä Users are responsible for prioritizing a user requirementUsers are responsible for prioritizing a user requirement ä
ä Developers for costing the requirementDevelopers for costing the requirement ä
ä In the end, the user representative should decide whetherIn the end, the user representative should decide whether cost is worth the result
cost is worth the result
User Requirements Priority Cost System Requirements Implement? User Responsibility
User Responsibility Developer ResponsibilityDeveloper Responsibility High Yes Medium
Medium Yes Medium High Yes Low Low No High Medium No High
Key Number 3 :
Know What to Build and Implement
Decomposition to detailed Decomposition to detailed design and design and subsystem components subsystem components ARCHITECTURAL ARCHITECTURAL DESIGN DESIGN REQUIREMENTS REQUIREMENTS
What Makes up the Design?
What Makes up the Design?
ä
ä Descriptive ElementsDescriptive Elements ä
ä Component Behavior/ControlComponent Behavior/Control ä
ä Component FunctionalityComponent Functionality ä
ä Component InterfacesComponent Interfaces ä
ä Component LayoutComponent Layout ä
ä Dependencies & ResourcesDependencies & Resources ä
ä Test CriteriaTest Criteria ä
ä Traceability to SystemTraceability to System Requirements
Requirements
Components of Architectural Design:
Key requirements Key requirements often in here often in here
Make use of attributes Make use of attributes
The core of the system The core of the system component design component design System or component System or component level constraints level constraints
Architectural Design Document
Architectural Design Document
l
l Defines WHAT is to be built, how it behaves, how it is laid outDefines WHAT is to be built, how it behaves, how it is laid out l
l Defines key components, interfaces, control structures & externalDefines key components, interfaces, control structures & external
systems systems
l
l Detailed enough for optimization, partitioning to contractors, andDetailed enough for optimization, partitioning to contractors, and
definition of configuration item structure definition of configuration item structure
l
l Basis for all milestonesBasis for all milestones l
l States what the system/component IS, not just its functionalityStates what the system/component IS, not just its functionality l
l Every statement verifiable and ready for integration tests withEvery statement verifiable and ready for integration tests with
attributes to track states and methods of verification attributes to track states and methods of verification
l
l Created by designers, owned by developers, viewable by allCreated by designers, owned by developers, viewable by all l
Design versus System Level
Requirements
Design versus System Level
Requirements
Supply
Power CabinHeat
System Requirements System Requirements
Architectural Design Architectural Design Gas Driven
Generator ElectricalHeater
Functional Functional definition of two definition of two functions and functions and an interface an interface 10 kW 10 kW 600 volts 18 Amp 600 volts 18 Amp 400 Hertz 400 Hertz Equivalent Equivalent interface interface definition in definition in design phase design phase
Key Number 4 :
Take Command
The Anatomy of a The Anatomy of a Better Requirement….. Better Requirement….. WRITE BETTER WRITE BETTER REQUIREMENTS! REQUIREMENTS!Typical Requirement Problems
Typical Requirement Problems
ä
ä Inappropriate LevelInappropriate Level
ä
ä Poor DefinitionPoor Definition
ä
ä Lack of Structure and ControlLack of Structure and Control
ä
ä Undefined OwnershipUndefined Ownership
ä
ä No TraceabilityNo Traceability
ä
What is a Requirement?
What is a Requirement?
ää Must form a complete sentence (not a bullet list ofMust form a complete sentence (not a bullet list of
buzz words, list of acronyms, or “sound bites”)
buzz words, list of acronyms, or “sound bites”)
ä
ä States a subject and predicate where the subject is aStates a subject and predicate where the subject is a
user
user
ä
ä Consistent use of the “to be” verb:Consistent use of the “to be” verb:
ä
ä shallshall,, will will or or must must to show mandatory nature to show mandatory nature ä
ä shouldshould or or maymay to show optionality to show optionality
ä
ä Has end resultHas end result
ä
Types of Requirements
Types of Requirements
ä
ä Functional RequirementsFunctional Requirements
u
u Capability that the system must performCapability that the system must perform
ä
ä Non-Functional RequirementsNon-Functional Requirements
u
u Conditions that must be met that are not explicitConditions that must be met that are not explicit
capabilities
capabilities (ie(ie: the system must run with 32M of RAM): the system must run with 32M of RAM)
ä
Characteristics of Good
Requirements
Characteristics of Good
Requirements
ä
ä ClearClear Avoid confusionAvoid confusion ä
ä BriefBrief Short and simpleShort and simple ä
ä VerifiableVerifiable Testable and verifiableTestable and verifiable ä
ä TraceableTraceable Uniquely identified and can be trackedUniquely identified and can be tracked
ä
ä PriorityPriority Emphasize important requirementsEmphasize important requirements ä
ä SourceSource Who requires it?Who requires it? ä
ä UrgencyUrgency When?When? ä
ä IdentityIdentity Requirements must be uniquely identifiableRequirements must be uniquely identifiable ä
ä CommentsComments Clarification recorded when neededClarification recorded when needed ä
ä Query/ResponseQuery/Response All can benefit from discussionsAll can benefit from discussions Each Individual Requirement Should Be:
Each Individual Requirement Should Be:
Each Requirement Should Be Annotated with Attributes:
Characteristics of Good
Documents
Characteristics of Good
Documents
ä
ä CompleteComplete Are all requirements expressed?Are all requirements expressed? ä
ä BalancedBalanced Are requirements at a consistent level of detail?Are requirements at a consistent level of detail? ä
ä ModularModular Can system be changed without unforeseen side effects?Can system be changed without unforeseen side effects? ä
ä CorrectCorrect Are user needs correctly expressed?Are user needs correctly expressed? ä
ä ConsistentConsistent No contradictions exist between requirements?No contradictions exist between requirements? ä
ä RealisticRealistic Can we really build it?Can we really build it? ä
ä Role/State/ModeRole/State/Mode Are requirements associated with user roles/system states?Are requirements associated with user roles/system states? ä
ä Type InclusiveType Inclusive Functional, Non-Functional, Constraints, GuidelinesFunctional, Non-Functional, Constraints, Guidelines Each Collection of Requirements Should Be:
Traceability Ensures Quality
Traceability Ensures Quality
Without traceability products can drift away from what the user requires
Requirements
“Quality is conformance
“Quality is conformance
to requirements.
Verifiability Ensures Quality
Verifiability Ensures Quality
ä
ä Track the Source and Status of yourTrack the Source and Status of your
Requirements with Attributes Requirements with Attributes
ä
ä Record the source (when created, rationale, original text)Record the source (when created, rationale, original text)
ä
ä Record urgency (mandatory, useful, optional, luxury)Record urgency (mandatory, useful, optional, luxury)
ä
ä Record acceptance (proposed, reviewed, accepted, rejected)Record acceptance (proposed, reviewed, accepted, rejected)
ä
ä Identify verification method (test, demonstration, inspection,Identify verification method (test, demonstration, inspection, simulation, analysis)
simulation, analysis)
ä
ä Identify constraints (safety, performance, reliability,Identify constraints (safety, performance, reliability,
corporate standards, business rules)
corporate standards, business rules)
ä
ä Record discussion (comments, action items, proposedRecord discussion (comments, action items, proposed
change, state of review process)
Analysis Now Made Simple
Analysis Now Made Simple
Once this wealth of information is captured and well written, the status of a project can be easily determined:
Show all high priority requirements for the pilot on the flight control subsystem:
Priority = High User = Pilot
Subsystem = Flight Control
Show all the requirements maintenance users proposed that could effect safety and performance:
User = Maintenance Status = Proposed
The keys to writing better requirements
lead to successful projects!
User Requirements Better Requirements System Requirements Architectural Design
www.