Title: Software Project Development Best Practices, Managing Risk
1Software Project Development Best Practices,
Managing Risk
2Outlines
- Best Practices in Software Development
- Risk Management
- Managing Risks In Enterprise Systems
3Best Practices in Software Development
Beyond the Software Factory
4Software Development
- A review of common problems and solutions
- Synch-and-stabilize approach
- The Water fall process
- Infinite Defect Loops
5Common Problems and SolutionsSome Facts
- The same problems that ware common in the 1960s
have reappeared with disturbing regularity in the
1980s-2000s. - 75-80 of software projects are typically late
and over budget.
6Common Problems and SolutionsExamples of Problems
- Lack of understanding in system requirements on
the part of customers and designers - Large gaps between estimates of costs and time
with actual expenditures - Difficulty of dividing labor between design and
production (coding) - Difficulty in monitoring progress in a software
projects - Rapid growth in size of software systems
- Poor communication among groups working on the
same project
7Common Problems and SolutionsExamples of
Problems (Continue)
- Writing systems, not for practical use
- Insufficient numbers of adequately trained and
skilled programmers - Difficulty of achieving sufficient reliability in
large software systems - Dependence of software on hardware
- Lack of inventories of reusable software
components to aid in the building of new programs - Software maintenance costs often exceeding the
cost of the original system development
8Common Problems and SolutionsCapabilities
Maturity Model (CMM)
- The Software Engineering Institute (SEI) at
Carnegie Mellon University incorporates the CMM - The CMM provides a framework for organizing
processes - Evolutionary steps into five maturity levels that
lay successive foundations for continuous process
improvement - A maturity level is a well-defined evolutionary
plateau toward achieving a mature software
process. Each maturity level comprises a set of
process goals that, when satisfied, stabilize an
important component of the software process - Organizing the CMM into the five levels
prioritizing improvement actions for increasing
software process maturity
9Common Problems and SolutionsCMM - Continue
- Initial Process
- Repeatable Process
- Software quality assurance
- Software project planning
- Requirements management
- Defined Process
- Intergroup coordination
- Software product engineering
- Integrated software management
- Training program
10Common Problems and Solutions CMM - Continue
- Managed Process
- Software quality management
- quantitative process management
- Optimizing Process
- Process change management
- Technology change management
- Defect prevention
11Common Problems and SolutionsThe Software
Factory Solution
- Purposes
- To make software development more tractable
- To manage software projects better and apply good
practices more consistently - Building hybrid solutions based on
well-understood requirements with many external
constraints - Most fundamentally, software development is not a
manufacturing activity it is more a form of
product design, where the design is the product
and replication is trivial - Example http//www.numbersix.com/solutions/softwa
reFactory.html
12Common Problems and SolutionsExcerpts from a
Recent Software Assessment
- Firms can gain significant savings by following
the SEI recommendations. - The lack of risk management measures was a
problem in that the company had no buffer time in
the schedule and no Plan B in case the project
ran into trouble, which it did. - Late design changes without a good process for
handling the changes can cause too much rework in
development as well as in all other affected
areas. - It is difficult to allocate time to reviewing
designs and code is changing all the time.
13The Waterfall process
- Waterfall process, moving in sequence from
high-level design to detailed design, functional
design, programming, and testing. - The Japanese organized projects mostly by
following a sequential waterfall process.
14Synch-and-stabilize approach concepts
techniques
- synch-and-stabilize, as applied at Microsoft,
Netscape and many other PC software firms, is
both philosophy of product development as well as
a set of specific concepts and techniques. - The core of the idea is to encourage programmers
to innovate and experiment but frequently
synchronize their designs with other team members
by creating builds (working versions) of the
product as often as possible, and then
periodically stabilize (debug and integrate)
their code before proceeding to the next set of
development tasks.
15Infinite Defect Loops
- One potential consequence of not synchronizing
and not frequently stabilizing a software product
under development is that the project may fall
into what Microsoft people used to call Infinite
Defect Loops.
16Infinite Defect Loops (Continue)
If modules change a lot you can experience an
infinite defect loop.
17Project Risk
!
- "Project Risk" is an uncertain event or condition
that, if it occurs, has a positive or negative
effect on at least one objective, such as time
cost, scope or quality. - Why to be in risk?
- Bad management and unskilled staff.
- Insufficient budget and unreliable resources.
- Bypassing!
18Project Risk Management
- Categories that will need to be considered
include the following - Risk Management Planning
- Risk Identification
- Qualitative Risk Analysis
- Quantitative Risk Analysis
- Risk Response Planning
- Risk Monitoring and control
19Boehms risk engineering task breakdown
Above all, the techniques are designed to
increase risk visibility!
This based on the breakdown presented by Barry
Boehm in his Tutorial on Software, Computer
Society IEEE 1989.
20Risk Management Planning
- Inputs
- Enterprise environmental factors
- Organizational process assets
- Project scope statement
- Project management plan
- Tools and Techniques
- Planning meetings and analysis
- Outputs
- Risk management plan
21Risk Identification
- Inputs
- Enterprise environmental factors
- Organizational process assets
- Project scope statement
- Risk management plan
- Project management plan (RBS)
- Tools Techniques
- Documentation reviews
- Information gathering techniques (Brainstorming,
Delphi, SWOT) - Checklist analysis
- Assumptions analysis
- Diagramming techniques
- Outputs
- Risk register
22Example of a Risk Breakdown Structure (RBS)
Back
23Qualitative Risk Analysis
- Inputs
- Organizational process assets
- Project scope statement
- Risk managing plan
- Risk register
- Tools Techniques
- Risk probability and impact assessment
- Probability and impact matrix
- Risk data quality assessment
- Risk categorization
- Risk urgency assessment
- Outputs
- Risk register (updates)
24Probability and Impact Matrix
Each risk is rated on its probability of
occurring and impact on an objective if it does
occur.
Back
25Quantitative Risk Analysis
- Inputs
- Organizational process assets
- Project scope statement
- Risk management plan
- Risk register
- Project management plan
- Project schedule management plan
- Project cost management plan
- Tools Techniques
- Data gathering and representation techniques
- Quantitative risk analysis and modeling
techniques - Outputs
- Risk Register (updates)
26Risk Response Planning
- Inputs
- Risk management plan
- Risk register
- Tools Techniques
- Strategies for negative risk or threats
- Strategies for positive risks or opportunities
- Contingent response strategy
- Outputs
- Risk register (updates)
- Project management plan (updates)
- Risk-related contractual agreements
27Risk Monitoring and control
- Inputs
- Risk management plan
- Risk response plan
- Project communication
- Additional risk identification and analysis
- Scope changes
- Tools Techniques
- Project risk response audits
- Periodic project risk reviews
- Earned value analysis
- Technical performance measurement
- Additional risk response planning
- Outputs
- Workaround plans
- Corrective action
- Project change request
- Updates to the risk response plan
- Risk database
- Updates to risk identification checklists
28Managing Risks In Enterprise Systems
29Model of risk factors in ES implementations
30Interrelationships in the risk factor model
31Bibliographic List
- Managing Risks, JE Scott, I Vessey
Communications of the ACM, April 2002 - ??? ???? ?????? ???????? ?????? ????? ?????
??????, ?? ???, ????? ??? 2003 - The Business of Software Michael A. Cusumano.
Free Press 2004 Chapter 4 Best Practices in
Software Development. - Software Project Management Bob Hughes and Mike
Cotterell. Third Edition. - Quality Software Project Management Robert T.
Futrell, Donald F. Shafer, Linda I. Shafer.