Improving Quality Through Better Requirements

advertisement
Improving Quality Through
Better Requirements
Dr. Ralph R. Young
Northrop Grumman Information Technology
www.ralphyoung.net
Solving the Software Quality Puzzle
Page 1
www.psqtconference.com
The Importance of Requirements
•
•
•
•
•
•
Requirements are the basis of all of the technical work
performed on projects.
Requirements errors are the largest class of errors
typically found in a project (41-56% of errors discovered).
Reducing requirements errors is the single most effective
action developers can take to improve project outcomes.
There is great leverage (and cost savings) in identifying
omitted requirements and in finding errors in the
requirements stage vs. in later stages of the life-cycle.
The cost of rework is typically 45% of projects.
Requirements-related activities can reduce rework.
Solving the Software Quality Puzzle
Page 2
www.psqtconference.com
Industry Experience
The quality of software development efforts
improves when the investment in requirementsrelated activities is increased from the industry
average of 3% to an optimum level of 8-14% of
total project costs.
Solving the Software Quality Puzzle
Page 3
www.psqtconference.com
Areas to Focus On
1. Identify the real requirements (vice stated
requirements).
The stated requirements are never the
real requirements.
Customers and users need assistance in
identifying the real requirements.
This work needs to be accomplished
jointly.
Solving the Software Quality Puzzle
Page 4
www.psqtconference.com
Involve Your Customers and Users!
Acceptance,
integration &
verification
Detailed
design &
component
development
Storing
knowledge from
previous projects
User
requirements
System
requirements
Provisional
& final
acceptance
Supplier
work
Architectural
design
Customer work
Defining
results
for users
Defining what
the system
must do
Optimizing
the costbenefits
Solving the Software Quality Puzzle
Amount of effort
Informing the
enterprise
Deciding
Linking
Qualifying
Verifying
on potential deliverables
the
& validating
changes to requirements design
the product
Page 5
www.psqtconference.com
Involve All Project Participants:
Suggested Topics for “Early Project
Requirements Briefing”
•
•
•
•
•
•
•
•
•
•
Industry issues in requirements engineering
The value of investing more in the requirements process
The project and/or organization’s “Requirements Process”
Overview of the methods and techniques that will be used
Types of requirements
Gathering requirements
Roles of the requirements analyst
Criteria of a good requirement
Types of requirements errors and how these can be reduced
How we will reduce rework on our project
– Peer Reviews
– Inspections of all requirements-related documents
Solving the Software Quality Puzzle
Page 6
www.psqtconference.com
Areas to Focus On
(continued)
2. Document the rationale for each
requirement (why it is needed).
You may be able to eliminate up to half
of the requirements—saving a lot of
technical work and reducing cost, schedule,
and risk.
Solving the Software Quality Puzzle
Page 7
www.psqtconference.com
Types of Requirements Errors
(with thanks to Ivy Hooks)
Solving the Software Quality Puzzle
Page 8
www.psqtconference.com
Areas to Focus On
(continued)
3. Meet minimum requirements that satisfy
real needs.
We over-design systems, including
many features and capabilities that are not
“needed.”
The result: added cost, schedule, and
risk.
Solving the Software Quality Puzzle
Page 9
www.psqtconference.com
Areas to Focus On
(continued)
4. Use established criteria of a good
requirement.
Include this checklist in your automated
requirements tool.
Ensure each requirements meets these
criteria.
Solving the Software Quality Puzzle
Page 10
www.psqtconference.com
Criteria
of
a
Good
Requirement
•Necessary -- If the system can meet prioritized real needs without the
requirement, it isn’t necessary
•Feasible -- The requirement is doable and can be accomplished within cost and
schedule
•Correct -- The facts related to the requirement are accurate
•Concise – The requirement is stated simply
•Unambiguous – The requirement can be interpreted in only one way
•Complete -- All conditions under which the requirement applies are stated and it
expresses a whole idea or statement
•Consistent -- Not in conflict with other requirements
•Verifiable -- Implementation of the requirement in the system can be proved
•Traceable -- Can trace to the source of the requirement and it can be tracked
throughout the system (e.g., to the design, code, test, and documentation)
•Allocated --The requirement is assigned to a component of the designed system
•Design independent -- Does not pose a specific implementation solution
•Standard construct – The requirement is stated as an imperative using “shall”
•Unique identifier – Each requirement shall have a unique identifying number
Solving the Software Quality Puzzle
Page 11
www.psqtconference.com
Areas to Focus On
(continued)
5. Provide an effective mechanism to control
and manage new requirements and changes
to requirements.
This is how many projects get out of
control.
We need to explain to customers and
users how baselines, releases, versions, and
updated products can be used.
Solving the Software Quality Puzzle
Page 12
www.psqtconference.com
Areas to Focus On
(continued)
6. Write and use a requirements plan.
Consider employing proven effective
requirements practices and utilizing
requirements best practices.
Solving the Software Quality Puzzle
Page 13
www.psqtconference.com
Areas to Focus On
(continued)
7. Perform peer reviews and inspections of all
requirements-related materials.
Using peer reviews is a proven
technique to identify errors and save money.
The added cost of providing inspections
of requirements-related materials is cost
effective.
Solving the Software Quality Puzzle
Page 14
www.psqtconference.com
Use Metrics for Requirements
•
Number of requirements
–
–
–
Total number of requirements as of various dates
Number approved, added, deleted, modified
Number that are not clear
•
Number of requirements satisfied per build
• Project resources devoted to requirements
process (calendar time, staff hours, dollars)
• Percent requirements volatility per unit of time
(month and year), perhaps by functional
component of the system
Solving the Software Quality Puzzle
Page 15
www.psqtconference.com
Examples of Effective Requirements Practices
• Establishing and utilizing a “Joint Team”
responsible for the requirements.
• Using and continually improving a requirements
process.
• Iterating the requirements and the architecture.
• Performing requirements verification and
validation activities.
• Providing an effective mechanism to control
requirements changes.
Solving the Software Quality Puzzle
Page 16
www.psqtconference.com
Examples of Some Project Best Practices
1.
2.
3.
4.
5.
6.
7.
8.
Write (and iterate) a task or project “vision and scope
document.”
Identify and involve all of the stakeholders of the task or
project.
Use requirements workshops to achieve a shared vision,
facilitate commitment, and gain buy-in of all
stakeholders.
Use effective requirements gathering techniques.
Use a project glossary and a project acronyms list.
Prioritize requirements early and often.
Use an industrial-strength automated requirements tool.
Provide and use attributes of requirements.
Develop, implement, and enforce meeting rules that
describe how project staff members are to treat one
another.
Solving the Software Quality Puzzle
Page 17
www.psqtconference.com
Provide Training for Requirements Analysts
Suggested Topics:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
k.
l.
m.
n.
o.
The critical roles of the requirements analyst
Skills and characteristics of effective requirements analysts
The organizational and project requirements policies
The need for senior management sponsorship
The requirements process (flowchart and a narrative description)
Recommended project-approved methods, techniques, and tools
Metrics for the requirements-related activities
Suggested readings and reference materials
Effective communication techniques and mechanisms
How to control changes to requirements
Criteria of a good requirement
How to use the selected automated requirements tool
How to calculate the ROI from applying an improved practice
How to write a “Requirements Plan”
The value of a “Project Acronym List” and a “Project Glossary”
Solving the Software Quality Puzzle
Page 18
www.psqtconference.com
In Summary:
• We can improve software quality by paying more attention to
requirements activities.
• Requirements are important and provide many opportunities to
further strengthen and improve what we are doing.
• Several areas were suggested to focus on in your practical work.
• A set of “Effective Requirements Practices” was suggested.
• Some project best practices were suggested.
• It is only by making a few improvements in the actual practices
of what we do that we will get better.
• Inculcating values of continuous improvement, teamwork, and
support of each other will help.
Solving the Software Quality Puzzle
Page 19
www.psqtconference.com
Download