irecon 2016 virtual re conference - software requirements: 7 critical success factors by karl...
TRANSCRIPT
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 1
Software Requirements: 7 C iti l S F t7 Critical Success Factors
Karl WiegersProcess ImpactProcess Impact
Copyright 2016 by Karl Wiegers
www.processimpact.com
Process ImpactProcess Impact
CSF #1: A shared understanding of what requirements are and why we care
People use many terms for various types of requirements
Leads to confusion and headaches What kind of information is it? How do we get it? Who is responsible for it? Where does it go? What do we do with it?
Not everyone believes requirements
2
Copyright 2016 by Karl Wiegers
are important (or necessary!)
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 2
What Is a “Software Requirement”?
“Requirements are … a specification ofRequirements are … a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system.”
3
Copyright 2016 by Karl Wiegers
-- Ian Sommerville & Pete Sawyer
Three Levels of Software RequirementsBusiness
Requirements BusinessRules
Vision and Scope Document
UserRequirements
User Requirements Document
E t l
QualityAttributes
4
Copyright 2016 by Karl Wiegers
FunctionalRequirements
Software Requirements Specification
Constraints
External Interfaces
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 3
Good Requirements Accelerate Development
Business requirements establishshared vision, goals, and expectations.
User involvement reduces chance User involvement reduces chance of system rejection.
Requirements ensure the functionality built lets users perform essential tasks.
Requirements define achievable quality expectations.
Emphasizing requirements is cheaper than beta testing.
5
Copyright 2016 by Karl Wiegers
Emphasizing requirements is cheaper than beta testing.
The right changes are incorporated appropriately.
Reviews detect errors early.
CSF #2: Clearly defined business requirements
Business Objectives come from business problems or market opportunities d fi t i f t l define success metrics for customer value
Product Vision concept of what the product might eventually become identifies business benefits the system will provide
Project Scope boundary between what’s in and out
6
Copyright 2016 by Karl Wiegers
y include limitations and exclusions facilitates making project commitments and prioritization prerequisite to managing scope creep
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 4
Four Techniques for Scope Definition Context Diagram shows external entities no internal system details
Use Case Diagram shows use case–actor connections
Feature Roadmap describe levels of feature enrichment plan specific feature levels for each release create a feature tree visual model
7
Copyright 2016 by Karl Wiegers
create a feature tree visual model
System Events triggers that stimulate some system response could be business events, temporal events, signal events
CSF #3: Trained, skilled, and motivated business analysts
sponsor businessproject managersize and
complexityprequirements
gcomplexityinformation
development
functional andnonfunctionalrequirements
user reps
userrequirements
8
Copyright 2016 by Karl Wiegers
functional andnonfunctionalrequirements
testing
expectationsand constraints
other stakeholders
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 5
The Business Analyst - 1 Plays an essential communication role talk to users: application domain talk to developers: technical domain
t l t i t i t t h i l i t translate user requirements into technical requirements
Performs many project tasks define business requirements identify project stakeholders and user classes elicit requirements analyze requirements document requirements
9
Copyright 2016 by Karl Wiegers
document requirements lead requirements validation facilitate requirements prioritization manage requirements
The Business Analyst - 2 Needs many skills listening interviewing and questioningg q g analytical communication and interpersonal systems thinking facilitation leadership observation writing
10
Copyright 2016 by Karl Wiegers
writing modeling organization creativity
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 6
CSF #4: A collaborative partnership with customers
Stakeholders
OtherStakeholdersCustomers
Direct and Indirect Users
Other Customers
11
Copyright 2016 by Karl Wiegers
OtherUser Classes
IgnoredUser Classes
DisfavoredUser Classes
FavoredUser Classes
The Need for Customer Involvement
Customer involvement is the mostCustomer involvement is the mostcritical factor in software quality.critical factor in software quality.
Expectation Gap(Surprise!)}
12
Copyright 2016 by Karl Wiegers
time
}
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 7
Building the Collaborative Partnership
Identify stakeholders.
Identify user classes.
Select product champions to represent user classes.
Co-locate BA, developers, and customer reps if possible.
Agree on how you will work together.
Agree on customer rights and responsibilities regarding i t
13
Copyright 2016 by Karl Wiegers
requirements.
The Product Champion
Primary interface between developmentand customer communities
Ideally, a real user; not a user manager, funding sponsor, or simulated user
Reconciles incompatible user requirements
Goal is to present developers with a unified set of requirements
14
Copyright 2016 by Karl Wiegers
q
Must be empowered to make binding decisions
Document product champion responsibilities
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 8
CSF #5: Rigorous and ongoing requirements prioritization
Not everything can be top priority!
Setting priorities will help you: work on the right things first make tradeoff decisions deal with added and changed requirements
Need to bypass politics and emotion
Need to understand which requirements are most important and most urgent
costvalue
15
Copyright 2016 by Karl Wiegers
important and most urgent.
A Prioritization ScaleImportant Not So Important
High PriorityHigh Priority
Not SoU
Urgentg yg y
must be includedin next release
Low PriorityLow Priority
would be nice to
Medium PriorityMedium Priority
must be included, b t it f
16
Copyright 2016 by Karl Wiegers
Urgent have if we can fit it in
but can wait for later release
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 9
CSF #6: Taking an incremental and iterative approach to requirements development
You can’t get all requirements right up front
Start at high level of abstraction and work down:g
business reqs => user reqs => functional reqs
Do first-cut elicitation, prioritize, then flesh out top-priority requirements for the next release or iteration
Expect to revisit requirements to refine, clarify, extend, and modify
17
Copyright 2016 by Karl Wiegers
, y
Key concept: progressive refinement of details
Components of Requirements Engineering
Requirements Engineering
Requirements Development
RequirementsManagement
li i i A l i V lid tiS ifi i
18
Copyright 2016 by Karl Wiegers
Elicitation Analysis ValidationSpecificationclarify rewrite
re-evaluate
confirm and correct
close gaps
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 10
CSF #7: Anticipating and accommodating change
Anticipate Change Requirements grow – deal with it. K th d th i b i d i Know the users and their business drivers. Identify likely sources of change.
Accommodate Change Understand your team’s capacity to adapt to change. Structure applications to facilitate rapid change.
Manage Change
19
Copyright 2016 by Karl Wiegers
Use a tool to manage change requests. Follow your change control process. Evaluate impact before approving a change request.
Some Change Management Strategies Requirements development adopt best practices for elicitation and customer engagement define project scope define requirement baselines
Change control system define and follow a change control process establish a change control board for each project align changes with business objectives
Project management
20
Copyright 2016 by Karl Wiegers
Project management follow appropriate development life cycles incorporate contingency buffers into schedules perform formal risk management
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 11
Your Next Steps
Assess points of pain.
Understand root causes of problems.p
Define effective practices to address the pain. industry “good practices” local positive experiences
Develop procedures, templates, work aids
Train project participants.
21
Copyright 2016 by Karl Wiegers
p j p p
Share your successes, learn from each other.
Communicate, communicate, communicate!
Software Requirements: 7 CSFs
NONONONOSURPRISES!SURPRISES!
22
Copyright 2016 by Karl Wiegers
SURPRISES!SURPRISES!
Software Requirements: 7 Critical Success Factors Copyright 2016 Karl E. Wiegers Page 12
An Eighth CSF for Requirements
Software Requirements, 3rd Editionby Karl Wiegers and Joy Beatty (Microsoft Press, 2013)
tinyurl.com/reqs3
23
Copyright 2016 by Karl Wiegers