16 Critical Software Practices 
 
Adopt Continuous Program
Risk Management
 

 
Implementation Guidelines 
  

"On large projects, a healthy respect for significant risks is the difference between success and failure; and on the large projects, the financial consequences-as well as the legal, social, and political consequences-can be devastating." --Edward Yourdon

Practice Description

Risk management is the discipline of identifying problems that could occur in a program, and systematically identifying the impact on overall program success if that potential problem were to become a reality. It also includes identifying strategies for either mitigating or avoiding the potential problem, and identifying a set of objective criteria for determining if the potential problem either has or is beginning to become a reality. Based on experience from past projects, as well as factors relevant to the current one, risk management is the process of identifying what might/could go wrong, determining the significance of the situation, steering activities to avoid it problem if possible, but being prepared to react to it, if necessary.

The discipline of risk management is vital to the success of any software effort and is done by all program managers at some level. To not perform risk management is essentially to walk blindly into a project, reacting to situations as they occur. Risk management is the process of exploiting experience to avoid problems that have plagued previous projects. In a very real sense, risk management is "the forward application of hindsight."

The disciple of formal risk management takes the natural planning process out of the minds of program planners and puts it into a structure where it can be systematically, consistently, effectively applied. In doing so, it forces program management personnel to lift their sights from their daily tasks and focus on the future. Motorola exploited this perspective by establishing something called a "preview." It was closely related to a normal program review, but its focus was macroscopic, rather than microscopic like a review. As described by Ann Miller in Engineering Quality Software Defect Detection and Prevention, "a preview gives us a chance to look ahead, identify major areas of risk in the next phase, design for and build in reusability, and assess the activities of the upcoming phase."

Intimately interwoven with risk management is the concept of corporate acceptance. A formal risk management process requires corporate acceptance of risk identification as a major factor for achieving success in complex system development. Corporate acceptance must be at the senior executive levels of both supplier/developer and government.

Practice Essentials

  • The cultures of all stakeholders must support the risk process.

  •  
  • A senior person from the buyer program office and from each supplier/developer should be given responsibility for risk management. By applying high-level attention to this problem, the visibility of risks and their impact is placed at a level capable of responding quickly to events.

  •  
  • Risk status should be reported at least monthly to the customer and developer program managers and discussed between them.

  •  
  • A detailed, written risk management process should be documented, which includes the essential details on how risk management will be performed on the project. This process should be objectively monitored to make sure it is being implemented.

  •  
  • Risks should be identified for the full life cycle. Include the risks in cost, schedule, technical, staffing, external dependencies, supportability, sustainability, and programmatics. Because it is easiest to focus on near-term problems, it takes discipline to examine long-term problems.

  •  
  • For each risk, estimate the chance it will become a problem and the impact if it does.

  •  
  • Risks should be identified in source selection, at program inception, and then at regular intervals throughout the life cycle. However, defining risks is not enough. To be effective, mitigation strategies must be developed for key risks.

  •  
  • Trade studies are a powerful tool for risk reduction. They identify potential alternatives to high-risk strategies. Trade studies should be accomplished at the systems level. It is imperative, however, that software engineers be included on study teams.

  •  
  • Define early tasks to resolve whether high technical risks will materialize. For example, a task to simulate network throughput under maximum loads could be used to resolve the risk of inadequate network capacity.

  •  
  • Risk management is a continuous process. Risks change as a program evolves. Risk management must constantly keep a focus on the most significant risks.

  •  
  • Risk management requires open communication. Without open communication, risk management is merely an exercise in bureaucracy.

  •  
  • Some risks will become problems. This is to be expected. If not, then there is likely a failure in your risk identification process. 
Implementation Guidelines
  • Risks should be reported at the level where management action can be taken to mitigate or avoid the risk.

  •  
  • Risk management should commence prior to contract award and be considered for inclusion as a factor in the award process.

  •  
  • The supplier/developer should propose, establish, and implement a project Risk Management Plan that, at a minimum, defines how the next six points will be implemented. The plan and infrastructure (tools, organizational assignments, and management procedures) should be agreed to between the acquirer and the supplier/developer and placed under configuration management (CM).

  •  
  • Supplier/developer and acquirer senior management should establish reporting mechanisms and employee incentives in which all members of the project staff are encouraged to identify risks and potential problems and are rewarded when risks and potential problems are identified early. The acquirer should address risk management explicitly in its contract award fee plan when risk is a major or significant consideration, and the supplier/developer should provide for the direct distribution of all non-trivial risk data to all employees in furtherance of establishing and maintaining a risk management culture.

  •  
  • Risk identification should be accomplished in facilitated meetings attended by project personnel most familiar with the area for which risks are being identified. A person familiar with problems from similar projects in this area in the past should participate in these meetings when possible. Risk identification should include risks throughout the life cycle in at least these areas: cost, schedule, technical, staffing, external dependencies, supportability, maintainability, and programmatic. Risk identification should be updated at least monthly. Identified risks will be characterized in terms of their likelihood of occurrence and the impact of their occurrence. Risk mitigation activities should be included in the project's task activity network.

  •  
  • Both the supplier/developer and the acquirer should designate a senior member of the technical staff as a risk officer to report directly to his/her respective program manager and charter this role with independent identification and management of risks across the program and grant the authority needed to carry out this responsibility.

  •  
  • Each medium-impact and high-impact risk will be described by a complete Risk Control Profile, which should include four basic items: definition of risk index, which is impact likelihood; transition scenario, which includes initiating key pivotal events and likely risk occurrence; potential mitigation strategies; and key action triggers tied to metrics that initiate various mitigation activities.

  •  
  • Periodically updated estimates of the cost and schedule at completion will include probable costs and schedule impact due to risk items that have not yet been resolved.

  •  
  • The supplier/developer and acquirer risk officers will update the risk data and the integrated supplier/developer database on the schedule defined in the Risk Management Plan. All risks intended for mitigation and any others that are on the critical path and their status against the mitigation strategy will be summarized and reported, and an agreement will be reached on planned action and mitigation. Newly identified risks should go through the same processes as the originally identified risks.·

  • Learn from the mistakes of others – today’s problem is tomorrow’s risk. 

    • One common Risk area is subcontractor management.  To minimize risks in the area the following should be accomplished: Work should be subcontracted is defined and planned according to a defined procedure which indicates that products and activities are selected based on a balance of technical and non-technical characteristics, the work to be performed shall come from the SOW, system requirements, and software requirements. When a sub is involved, they should follow the same oversight, and management principles as the prime, though the scope may be scaled.  A subcontract SOW is prepared/reviewed/agreed upon revised when needed, and that a plan to select the contractor is prepared concurrently with the subcontract SOW.  Further, the software subcontractor should be selected based upon an evaluation of the subcontractor's ability to do the work.  Selection should follow a documented procedure covers the evaluation of proposals submitted, prior performance on similar work, location of the sub relative to the prime, software engineering and management capabilities, staff available, prior experience, and available resources (facilities, hardware, software, training).  The agreement between the prime and the sub should be the basis for managing the contract (SOW, terms and conditions, requirements for the products to be produced, dependencies between the sub and the prime, products to be delivered, conditions under which revisions to products will be submitted, acceptance procedures and criteria, and procedures to be used for monitoring the sub).  The sub should produce an SDP for prime review and approval.  The plan should cover the appropriate items from the prime's SDP. 

    • Another common risk area is inadequate planning.  Planning is a critical step in the project process because it outlines and organizes the activities needed for success.  One common risk is inadequate planning.  To minimize this risk, the planning process should coordinate dependent activities.  It should also address support of the software team in other support activities and delineate budgets/resources.  The plan should be reviewed and approved by all program participants at a senior level.  The SDP which results should cover all activities needed to achieve project success.  Items to be included are: project purpose, scope, goals, and objectives, project life cycle, project procedures, methods and standards, software products to be developed (including interim), size estimates of products, estimates of project cost and effort, estimates for use of critical assets, milestones and schedules, identification and assessment of software risks and the risk process to be followed, and plans for necessary tools, facilities and training.  Planning for support activities (e.g. SQA) should be as rigorous as other activities.  For SQA, there should be a plan that covers the responsibilities and authority of SQA which should identify the SQA resources, identify the funding for SQA, identify SQA's role in establishing an SDP, standards and procedures, identify evaluations to be accomplished, identify audits to be performed, identify the process and standards to be followed in reviews/audits, identify the procedures to be used for recording and tracking problems, identify the records SWA must keep, and identify the frequency/method of providing feedback to software engineering groups.

    • A significant risk in projects is miscommunication. A documented plan (SDP, etc) is an excellent communication tool.  The plan provides baseline schedule, contractual commitments, assignment of responsibilities, coordinates activities between groups, should be available to all team members, reflects intergroup commitments and dependencies, is kept current, and is reviewed by all team members and approved by the PM.  The project should have a mechanism for identifying, negotiating, and tracking dependencies between organizations.  Each dependency should be identified, each should be negotiated, need dates and delivery formats should be resolved, agreements should be documented and approved by all parties.  When groups cannot resolve an issue, there should be a documented process for resolving (e.g. elevate to managers)  Project planning includes developing and documenting, in the SDP,  project software processes tailored from the organization's standard. The process accounts for all life cycle phases, and contractual waivers. Process plans are reviewed by Quality and management and approved by senior management. Changes to the software process are managed and controlled with reviews and management approvals.

    • Another Risk area is lack of focus.  This comes from lack of attentive leadership at the working level.  It is critical that Management put someone in charge.  A software project manager with the necessary background and skill should be identified and assigned responsibility for building an effective team, developing a software development plan and process that is consistent with the systems development process and successfully delivering the project.  Management should provide the PM with the assets needed to succeed as well as clear, objective measures of success.  The PM should also have the authority necessary to commit the organization.

     
  • Identify risks in meetings attended by project staff most familiar with the topic of the meeting and facilitated by a person who understands the metrics of problems from past projects. Yesterday's problems are today's risks.

  •  
  • Schedule risk-resolution tasks with sufficient slack to implement a workaround.

  •  
  • Maintain an automated risk database easily accessible to all people working on the project.

  •  
  • Implement contracts that ensure an equitable and sensible allocation of risk between buyer and developer.

  •  
  • Establish contingency funding and schedule slack for risks that materialize into problems, based on the sum of the products of individual risk item probability and cost/schedule impact if the risk materializes. Include expected cost and schedule impact of unresolved risks in periodic updates of estimates of cost and schedule at completion. 
Things to Watch Out For
  • Cultural resistance to admitting there is risk, often with good reason, is the greatest obstacle to risk management. Customers or senior executives usually react very negatively to an admission of risk.

  •  
  • Many programs "game" a risk management program to meet buyer expectations. The typical approach is to list trivial items as the identified risks but make no mention of the real high-risk items.

  •  
  • Many programs do not involve staff who really understand the program in risk identification.

  •  
  • Many programs do not conduct systems engineering trade studies to reduce high-risk technical requirements.

  •  
  • Rarely are supportability and maintainability risks identified.

  •  
  • Often external dependency risks are not identified.

  •  
  • Seldom are risks from using unproven new technology identified. 
Figuring Out Where You Are - Project QuickLook

Chapter 6 contains a series of detailed questions that can be applied to any program to determine the health of its risk management approach. These questions should be applied on a regular basis. However, there are some quick indicators that can be used to see if the risk management process requires more in-depth examination. Specific "quicklook" questions are:

  • Is there a risk officer assigned? 
  • Is there a risk management plan? 
  • Has a list of risks been created? 
  • When was the list created? 
    • How long has it been since it was changed? 
  • Have any of the risks materialized? 
An inappropriate answer to any of these questions could indicate a more serious problem and merits further investigation.
  • Is there a risk officer assigned?
  • Is there a risk management plan?
  • Has a list of risks been created?
  • When was the list created?
    • How long has it been since it was changed?
  • Have any of the risks materialized?

An inappropriate answer to any of these questions could indicate a more serious problem and merits further investigation.

top
16 Critical Software PracticesGlossary of Terms