Risk Management in a
Software Development Life Cycle
 

by Anton D. Buttigieg B.Sc. (Hons.) I.T.
(Email address abut001@mail.um.edu.mt)
 
 

  Table of Contents
SECTION 1 - CAPERS JONES'S PERSPECTIVE
  1.1. Introduction
  1.2. Risks Associated With Inaccurate Estimating and Schedule Planning
  1.3. Risks Associated With Incorrect and Optimistic Status Reporting
  1.4. Risks Associated With External Schedule Pressures Which Damage Quality
 
SECTION 2 - PETER KULIK'S PERSPECTIVE
  2.1. Introduction
  2.2. Impact on Software Projects
  2.3. Definition of Software Risk Management
  2.4. Top-Down Risk Estimation
  2.5. Identifying and Prioritizing Risks
  2.6. Risk Mitigation Actions
  2.7. Monitoring and Adjusting Execution
 
SECTION 3 - NASA'S PERSPECTIVE
  3.1. Introduction
  3.2. Risk Management Objectives
  3.3. Continuous Risk Management Principle Functions
 
SECTION 4 - SOFTWARE RISK ASSESSMENT BY LIFE CYCLE PHASE
  4.1. The Requirements Phase
    4.1.1. Requirement Attributes and Metrics
    4.1.2. Requirement Risks
  4.2. The Design Phase
    4.2.1. Design Attributes and Metrics
    4.2.2. Design Risks
  4.3. The Coding Phase
    4.3.1. Code Attributes and Metrics
    4.3.2. Code Risks
  4.4. The Testing Stage
    4.4.1. Testing Attributes and Metrics
    4.4.2. Testing Risks
  4.5. Life Cycle Implementation
    4.5.1. Life Cycle Implementation Attributes and Metrics 
    4.5.2. Life Cycle Implementation Risks
 
SECTION 5 - SUMMARY AND CONCLUSIONS
 
APPENDICES
  Appendix A - References and Bibliography
  Appendix B - Glossary of Risk Management Terms used in Exercise

 
 

SECTION 1 - CAPERS JONES'S PERSPECTIVE


"Large software projects will never be without some risk, but if risks can be brought down to acceptable levels, that will be a good beginning" - Capers Jones, 1998

As stated by Capers Jones, Chairman Software Productivity Research Inc. [Jon98], software has been the most troubling technology of the 20th century. Major software projects have the highest probability of being cancelled or delayed of any known business activity. Once deployed, software projects often display excessive error densities and low levels of reliability. In addition, software is achieving a very bad public reputation because of several highly publicized disasters. However, it is not a law of nature that software projects will run late, be cancelled, or be unreliable after deployment. A careful program of risk analysis and abatement can reduce the probability of major software disasters, and also shorten average development cycles at the same time.
 

1.1. Introduction

Software is an important but troubling technology. Software applications are the driving force of modern business operations, but software is also viewed by chief executives as one of the major problem areas of almost every major corporation in the modern world. The litany of executive complaints against software organizations is lengthy, but can be condensed down to a set of three very critical issues that occur over and over again in hundreds of corporations:

  • Software projects are not estimated or planned with acceptable accuracy.
  • Software project status reporting is often wrong and misleading.
  • Software quality and reliability are often unacceptably poor.
When software executives and managers themselves are interviewed, they agree that the three major complaints levied against software are real and serious. However from the point of view of software managers, top corporate executives are cited as contributing to the problems because of three additional risk factors outside the control of the software organization:
  • Executives often reject accurate and conservative estimates.
  • Executives add major new requirements in mid-development.
  • Executives apply harmful schedule pressure that damages quality.
Both corporate executives and software managers agree that software is a very troubling technology, but have somewhat divergent views as to why software troubles are so common. Both see the same issues, but these issues look quite different to each group. Hence, it is crucial to examine the root causes of each of these key risk factors and explore the current state of the art for minimizing their harmful effects:
  • Risks associated with inaccurate estimating and schedule planning
  • Risks associated with incorrect and optimistic status reporting
  • Risks associated with external pressures which damage software projects

1.2. Risks Associated With Inaccurate Estimating and Schedule Planning
Since both corporate executives and software managers find estimating to be an area of high risk, what are the factors which trigger software cost estimating problems? From analysis and discussions of estimating issues with more than 300 managers and executives in more than 50 companies between 1996 and 1998 the following are the major issues:
  • Formal estimates are demanded before requirements are fully defined.
  • Historical data is seldom available for calibration of estimates.
  • New requirements are added, but the original estimate cannot be changed.
  • Estimating tools are not always utilized on major software projects.
  • Conservative estimates tend to be overruled and replaced by aggressive estimates.
The first of these estimating issues, or demanding formal estimates prior to requirements completion, is an endemic problem which has troubled the software community for more than 50 years. The problem of early estimation does not have a perfect solution as yet, but there are some approaches that can reduce the risks to acceptable levels. These early estimates have confidence levels that initially will not be very high. As information becomes available and requirements are defined, the estimates will improve in accuracy and the confidence levels will also improve. But make no mistake: Software cost estimates performed prior to full understanding of requirements are intrinsically difficult.

The second estimating issue, or lack of historical data, is strongly related to the first issue. Companies that lack historical information on the staffing, schedules, resources, costs, and quality levels from similar projects are always at risk when it comes to software cost estimation. This is true in every domain, and a good measurement program pays handsome dividends over time. Even for companies just starting measurements, the situation is better than 10 years ago for several reasons:

  • Many companies are now starting software measurement programs.
  • Industry benchmark data is improving in terms of volumes and accuracy of results.
  • The utilization of function points has enabled accurate "activity-based cost" studies.
The availability of benchmark information for software projects still has room for improvement, but is now reaching the level that industry norms can be stated with reasonable certainty. Also, the impact of various tools, methods, programming languages, the five levels of the Software Engineering Institute’s capability maturity model (CMM) and other interesting topics now have empirical data associated with them.

One increasingly popular way of dealing with the problem of early estimation is to change the form of the estimate from a "project-level estimate" to a "function-level estimate". Instead of simply creating a gross project-level estimate the size of the application is first predicted using function point metrics, and then costs are expressed in four ways as part of the overall estimate:

  • The predicted size of the application in function points
  • The activity costs for project activities
  • The estimated cost per function point
  • The estimated total cost
This method has the advantage of being able to deal with the third estimating problem, or unanticipated growth of new features and requirements after the initial cost estimate has been created. The advantage that function points bring to early estimation is the fact that they are derived directly from the requirements and hence show the current status of requirements completeness. As new features are added, the function point total will go up accordingly.

Indeed, even if the clients decide to remove features or delay them to a subsequent release, the function point metric can handle this situation very well. The usefulness of function point metrics for dealing with projects whose features may change and grow during development is the reason why major outsource vendors such as Andersen, CSC, IBM, etc. are now utilizing function point metrics for contractual purposes.
 

1.3. Risks Associated With Incorrect and Optimistic Status Reporting

One of the most common sources of friction between corporate executives and software managers is the fact that software project status reports are not accurate and believable. In case after case, monthly status reports are optimistic that all is on schedule and under control until shortly before the planned delivery, when it is suddenly revealed that everything was not under control and another six months may be needed. What has long been troubling about software project status reporting is the fact that this key activity is severely under-reported in the software management literature, and is also under-supported in terms of available tools and methods, although some of the methodology management tools are finally addressing this lack of automated support.

The situation of ambiguous and inadequate status reporting was common even in the days of the "waterfall model" of software development. Inaccurate reporting is even more common in the modern era where the "spiral model" and other alternatives such as rapid application development (RAD), client-server architectures, and the object-oriented paradigm are supplanting traditional methods. The reason is that these non-linear software development methods do not have the same precision or the completion milestones as the older linear software methodologies. The purpose of monthly status reports is to give clients and senior management a clear and precise indication of everything that is right and everything that is wrong with the condition of the project as of the current moment.

The idea of status reporting is to examine the actual condition of the project versus what was planned for the project for the current month. One should note that this concept of status reporting assumes that the plans for the project are reasonably detailed and thorough, or otherwise there will be no ability to create variance reports that contrast actual results with anticipated results. The normal frequency of status reporting on large systems is monthly.

The monthly status reports will consist of both quantitative data on topics such as current size and numbers of defects, and also qualitative data on topics such as problems encountered. Six general kinds of information are reported in monthly status reports:

  • Cost variances (quantitative)
  • Schedule variances (quantitative)
  • Size variances (quantitative)
  • Defect removal variances (quantitative)
  • Defects variances (quantitative)
  • Milestone completions (quantitative and qualitative)
Five of these six reporting elements are largely quantitative, although there may also be explanations for why the variances occur and their significance. The sixth element, or milestone completions, is both quantitative and qualitative. Because the most common reason for schedule slippages, cost overruns, and outright cancellation of major systems is because they have too many bugs or defects to operate successfully, a vital element of monthly status reporting is data on the actual numbers of bugs found compared to the anticipated numbers of bugs. Needless to say, this implies the existence of formal defect and quality estimation tools and methods.
 

1.4. Risks Associated With External Schedule Pressures Which Damage Quality

The last of the three major domains of project risk is that of external pressure by corporate executives or clients which lead to dangerous short cuts on the part of the project manager. Several kinds of external pressure are potentially harmful to project outcomes and need to be considered:

  • Pressure to agree to schedules which are completely impossible
  • Pressure to minimize inspections or testing in order to speed up development
  • Pressure to add new features very late in the development cycle
Although external pressures by executives and clients are a fact of life for software projects, a thoughtful analysis of the root causes of these pressures reveal that they are derived from the issues already discussed:
  • Cost estimates by project managers are not perceived as credible and defensible.
  • No historical data from similar projects is available for a "sanity check".
  • Impact analysis of the results of the pressure is not believed or not performed.
The essence of the situation is that software project managers who are not using formal software estimating methods and who lack historical data on similar projects will not be able to defend their cost and schedule estimates. If project managers cannot provide empirical data that their estimates are valid, then they must face the risk of being overruled.

Thus conservative estimates will be replaced by aggressive and even impossible demands simply because project managers are ill-equipped to defend their work. Executives may be arbitrary in their decisions but they are seldom stupid. While corporate executives might want a large software project finished in 18 months, if they know that not one of 50 similar projects within their industry has ever been completed in less than 24 months, then they will almost certainly accept a 24 month schedule as a fact of life.

However, it is the software project manager’s job to have available empirical data on the schedules, effort, costs, and outcomes of similar projects. In situations where neither the software project managers nor corporate executives have any idea of the average and "best in class" results of similar projects, then the whole situation is likely to be hazardous. If the software manager lacks solid data, then he or she is in no position to make a convincing argument that an arbitrary schedule set by an executive or a client is infeasible. The combination of formal estimating methods and tools coupled with accurate benchmarks from within the industry is the best defense against external pressures from executives and client demands.

The appropriate response by a project manager is to perform a side-by-side estimate of the original plan and the changed plan ordered by the executive or client, and show the impact of the changes in terms of schedules, effort, costs, quality, reliability, and maintenance affects. If the estimates are done professionally and if historical data is available to buttress the assertions of the estimates, then the risks of arbitrary changes can be reduced or eliminated. There is still a chance that external pressures cannot be eliminated or arbitrary schedules imposed, but good estimating approaches and solid historical data give the best probabilities that reality will win over impossible demands.
 
 

SECTION 2 - PETER KULIK'S PERSPECTIVE


"Tomorrow's problems are today's risks - Software risk management is becoming more and more widely implemented because of its proven results to identify and eliminate risks before they become problems" - Peter Kulik, 1996

Peter Kulik [Kul96a] states that awareness of Software Risk Management is growing throughout the industry. Proven industry results from implementation of Software Risk Management include earlier project completion, reduced project cost, more predictable schedules, and improved organizational capabilities. The practice of Software Risk Management includes both top-down and bottom-up perspectives. Projects that implement Software Risk Management become simpler and more focused. Further, a variety of tools are available for easier implementation.
 

2.1. Introduction

Software Risk Management is a set of practices that enable software development projects to assess overall project risk and identify, prioritize, and manage specific risks. Awareness of Software Risk Management has been increasing in the industry, and the US government actually requires it of their suppliers. Software Risk Management enables one to anticipate and eliminate risks before they become problems. By addressing the root cause sources of project risk - including process factors, technology and product factors, and organizational factors, organizational capabilities can be improved.

Projects using Software Risk Management to manage their risks have realized benefits including:

  • Prevention of schedule delays
  • Reduced project cost
  • More predictable schedules
  • Better attainment of customer commitments

2.2. Impact on Software Projects

At first glance, Software Risk Management might appear to just add complexity to an already complex undertaking. In reality, however, risk management activities make software projects less complex:

  • Identification and prioritization of risks enables project managers and project staff to focus on the areas with the most impact to their project.
  • Appropriate risk mitigation actions reduce overall project risk - which actually accelerates project completion.
  • Projects which finish sooner cost less, plus risk mitigation actions can further reduce project cost.
  • Projects using Software Risk Management have more predictable schedules; they experience fewer "surprises", since they have identified (and in many cases, eliminated) risks before they can become problems.