The Requirements Conundrum: Knowledge, Uncertainty, and Change Date: February 2007

advertisement
The Requirements
Conundrum:
Knowledge, Uncertainty, and Change
Date: February 2007
Presented By: Richard Turner
Systems and Software Consortium | 2214 Rock Hill Road, Herndon, VA 20170-4227
Phone: (703)742-8877 | FAX: (703)742-7200
www.systemsandsoftware.org
Observations
• Systems are getting more complex…
–
–
–
–
System boundaries are amorphous
Functionality is emergent
Implementation is evolutionary
Technology change is rapid and inevitable
BUT
• Knowledge is still expected to be perfect
–
–
–
–
Sponsors want a “defendable” cost bingo
PMs want a complete, consistent, predictable IMS
Suppliers want specifications
OT&E wants everything, including long term
sustainment
January 2007
2
Observations - 2
• Rock-solid requirements are the basis for
–
–
–
–
–
Size and cost estimates
Schedule estimates
System boundary and interface definition
System architecture
System specialty characteristics (safety, security, -ilities)
BUT
• Requirements is a bad word when software is involved
(W. Royce) Why?
– Software is meant to be flexible to meet evolving user needs
– New needs identified through use
– Trades must be made across the characteristics
January 2007
3
Hence the Conundrum!
How to resolve the issue and find a way forward?
January 2007
4
The Balancing Act
• We are left with two conflicting needs that are
both critical
• Knowledge is necessary for planning,
budgeting, and decision making
• Uncertainty is necessary for flexibility,
emergence, and change
• And, it is a fact that change happens – for good
or ill
January 2007
5
Traditions
• In the past, we have tried
–
–
–
–
Freezing requirements
Establishing Block Upgrades
Buying fancy requirements definition and traceability tools
Verifying the heck out of the system
BUT
• These didn’t always work so well
– Changes learned how to ice skate
– Block upgrades blocked progress
– Tools codified poorly specified requirements and became an
end in themselves
– Verification became a puzzle to solve
January 2007
6
Traditions - 2
• Traditional Vee assumes reasonably complete
requirements
• Top-down, hierarchical decomposition and
requirements allocation is often seen as oncethrough process
• Hardware and software lifecycles often in
conflict
– Hardware driven by materiel and design constraints
– Software driven by need for flexibility and
performance constraints
January 2007
7
Can Agility Help?
• Views requirements in terms of negotiation and
priority rather than specification and
completeness
• Considers change a partner – a chance to
make the product better and the customer
happier
• Evolves solutions rather than creating them by
fiat (or committee)
• Better fit to human talents than organizational
capabilities
January 2007
8
Can Agility Help? - 2
• Spiral methods have made stealthy incursions,
but haven’t conquered
• Tends to operate in a controllable space
• Agility is still mistrusted – mostly because of it’s
seeming “non-predictability”
• Agile requirement capture techniques (e.g.
stories) are seen as inadequate for many
systems
• The world revolves around probability and
certainty (e.g. try to get an “agile” bank loan)
January 2007
9
The Challenge
• New ways of eliciting and documenting requirements
– Requirements that are specific enough for costing but flexible
enough for negotiation
– Requirements that emerge are opportunities and should be
weighed as such in decision making as to their inclusion
– Requirements need to exist within a trade space – particularly
the –ilities and other non-functional needs
– For requirements that can be incomplete up front, we need
architectures and infrastructures flexible and prescient
enough to accommodate the unknowns as they become
known
• What are the concepts, practices and tools that can
enable these?
January 2007
10
Download