Software Development Risk Assessment

Software Development Risk Assessment ... not having a Visual Basic programmer in place to code the Graphical ... If the hardware and software products...

0 downloads 349 Views 36KB Size
Software Development Risk Assessment Note: The purpose of this prompt list is to provide project managers with a tool for identifying and planning for potential project risks. It is process-based and supports the framework established by the DOE Software Engineering Methodology. It will be used within the stage exit process as an additional tool to ensure that the project manager has identified and is managing known risk factors. Additional detailed information describes the various risk factors and how to score them. Performing a risk assessment is an important step in being prepared for potential problems that can occur within any software project. During the risk assessment, if a potential risk is identified, a solution or plan of action should be developed. (A problem analyzed and planned early is a known quantity. Likewise, unanticipated problems can affect a project with no resolution plan.) The following list of possible project risks is provided for use in assessing the factors that may have an effect on the cost and schedule of your project. This list is not all inclusive! The project manager must always be vigilant, anticipating risk factors that have not been previously identified. Answer the questions as a first step toward identifying and managing risks associated with your project. This list should be reviewed throughout the life of the project, at points such as when the project plan is being revised for the next lifecycle stage, to reassess whether risk factors have changed as the project progresses. Answer each question either in terms of low, medium, or high risk, or yes/no. Use the stated criteria to determine the risk to the project. For example, using a programming language for development that is new to the project team, may yield a high risk relating to new technology. Your next step would be to plan how to manage this risk. For this example, a plan combining training plus retention of an outside consultant to provide periodic guidance and support should effectively manage the risk. All major dependencies in the project plan must be examined and evaluated. Note: Certain assumptions are made about the basics of project management and how the project is being run. The assumptions are as follows: 1. The project will have a project plan. 2. A process methodology will be applied throughout the project life cycle. 3. A systematic method of project tracking and control and a change control process will be used. 4. An acceptably detailed Work Breakdown Structure will be produced. 5. A proper status reporting mechanism will be used to update all interested parties. 6. All roles and responsibilities are well defined.

1

If the project is deficient in any of these areas, appropriate corrective measures should be taken before the prompt list is completed. These items make up the foundation upon which successful projects are built. The following is a list of potential project risks. Each risk that receives a high score should have a corresponding plan for management and control of that risk. Circle the one that best describes that item’s risk. Apply the following criteria when selecting the appropriate risk level. Low - Very unlikely that this will occur during the life of the project Medium - There is a 50-50 chance that this will occur during the life of the project High - Very likely that this will occur during the life of the project

1.

Acquisition of items critical to project success (e.g., hardware and/or software resources) could be delayed in the procurement process. Low Medium High

2.

Project schedule will exceed one fiscal year. Low Medium High

3.

Burden rates (i.e., cost of labor), support costs, or other charges will increase from year to year. Low Medium High

4.

Project team member(s) will not be in place when required. Low Medium High

5.

Risks associated with using off-the-shelf packages. Low Medium High

6.

Risks associated with any conversions of existing data required before implementation of a new system. Low Medium High

7.

Risks with the hardware and software (the development platform) chosen to perform project development. e.g., can this hardware and software handle the workload required to complete the project?. Low Medium High

2

8.

Chance that the workstation environment of the intended user will change after requirements are gathered. Low Medium High

9.

Risks to the project caused by requirements that are inadequately defined. Low Medium High

10.

Chance that changes, in critical personnel on either the government or contractor side, will occur during the life of the project. Low Medium High

11.

Risk to the project of a facility move during the project. Low Medium High

12.

Risks associated with personnel assigned to the project who may be pulled off anytime for another assignment. Low Medium High

13.

Risk to cost and schedule involved with the use of subcontractors as a part of the development effort. Low Medium High

14.

Chance that system owner or user support staff required to be available to the development team during the software development cycle will not be available. (Take into account situations such as use/lose leave, vacation, training, travel, and meetings). Low Medium High

15.

Risk caused by a system owner's or user's representative not participating in the change control process used to manage all proposed changes to the software product from the Requirements Definition Stage forward? Low Medium High

16.

Risk to the project resulting from a mandated/mandatory completion date for the project. Low Medium High

3

The following are examples that correspond to the risk statements contained in the previous prompt list. These examples are not intended to be exhaustive. Other factors may apply to the project that would give it a high risk in a particular area. These examples are meant to be a guide and may not be all inclusive. 1.

If a specific piece of hardware (e.g., a color scanner) and /or software (e.g., a testing tool) is/are needed to develop or implement the project and there is either a supply problem on the manufacturer's end or the procurement process takes a long time.

2.

If the project goes beyond the current fiscal year, funding for the project may decrease or dry up for the next fiscal year. The client should be aware of this as it may affect the delivery date.

3.

If burden rates, support costs, and/or charges increase and are not planned for, the contractor will be graded negatively on their ability to work within their budget.

4.

Not having the required people in place to complete the project would include things like not having a Visual Basic programmer in place to code the Graphical User Interface portions of the application.

5.

COTS packages may not meet the need as delivered. This could potentially cause problems later if not evaluated correctly to see if all requirements are met.

6.

If previous data from an old system is required to run a new system, data conversion will need to be closely managed to ensure it happens successfully.

7.

If the hardware and software products are prone to bugs and are “slow”, they may be inappropriate for developing a system. This can affect development, especially during the coding and testing stages.

8.

With today's rapidly changing software and hardware workstation environment there is a good chance that changes to the user's intended environment will occur, and that they will have an effect on the project.

9.

Requirements that are incomplete, ambiguous, or untestable will cause problems at some point during the life of the project, normally toward the end.

10.

If the organization historically has a high turnover rate, it can have an effect on the project and should be taken into account when planning. Any project that is planned not expecting attrition will experience an impact to the planned schedule when someone leaves.

11.

Any move of all or a part of an organization will incur a risk because it will take time away from the project.

4

12.

Unless planned, pulling someone from the project will have an effect on the schedule of the project because that person is not available to do the work assigned to them. If done continually, it will affect the continuity of the development team.

13.

Subcontractor's cost schedule may be different than for an FTE and can have an effect on the cost of a project. There is a greater possibility of schedule problems with staff the project manager does not have direct control over.

14.

When client support staff persons are not available to discuss the status of projects or resolve issues, it can affect everything from requirements gathering to testing. Unless someone of equal skills is made available, the schedule and quality of the product will inevitably suffer.

15.

Change control and configuration management are activities that are key to delivering a project on time and within budget. If there is no control of changes to requirements, design, etc., there is the potential for serious cost overruns, depending on the size of the project. Control means all changes will be estimated and agreed upon by all parties before that change is approved.

16.

A client directed completion simply means one of the variables that a project manager has to work with has been fixed. If the client says development will be completed by June 30, than the other factors such as resources, function, and quality will have to be arranged in such a way as to meet the fixed date. One thing to keep in mind. Not all dates are achievable. If the date is not achievable, the reasons why should be spelled out to the client.

The following risks are either present or absent. A yes answer acknowledges that the risk exists and that a plan must be in place to deal with it. 1.

Elements of the project are being supplied by groups over which the project manager does not have direct control. Yes No

2.

Two or more separate groups are developing parts of the software being delivered. Yes No

3.

The development team is unfamiliar with the environment being used (e.g., is the technology unfamiliar, has the team done this type of work before?). Yes No

4.

This is a first-time assignment for the project manager. Yes No

5

5.

The project is significantly larger or smaller than what the team is used to working on. Yes No

6.

The project team has correct skills and can operate at the proper level to complete the needed work. Yes No

7.

Additional skilled persons or resources are readily available in the event that problems occur on the project. Yes No

8.

Development and support groups are at different sites. Yes No

9.

The Project Plan accounts for vacation and sick leave by assigned personnel. Yes No

10.

The client or system owner supports a disciplined approach to software development, starting with a formal project plan. Yes No

11.

The project will receive the necessary level of support in terms of using repeatable processes (e.g., approvers will fully exercise their concurrence authority at stage exit). Yes No

The following are examples that correspond to the risk statements contained in the previous prompt list. These examples are not intended to be exhaustive. Other factors may apply to the project that would give it a high risk in a particular area. These examples are meant to be a guide and may not be all inclusive. 1.

The coordination of work products, from other groups, that have to come together for the project to be delivered on time can present many problems. If the manager does not have direct control over the groups, agreements will need to be reached among the interested parties about what will be delivered when. Plans should be developed and frequent communication of status is desirable.

2.

Working with separate groups can cause problems when the groups work needs to come together. The potential exists for problems with requirements, design, or coding that would affect the way they project come together. The best way to counteract this is through regular communication and careful review of design specifications to ensure everything fits together as it should.

6

3.

An unfamiliar development environment can include new hardware, new programming languages, development tools, and methodologies, among other things. Adjustments in planning may be required to handle these or other situations.

4.

First time project management is a risk because some of the learning about project management only comes through time and experience.

5.

Size makes a difference in planning and coordination. Extra time should be spent planning when a project is markedly larger than the team has previously worked on.

6.

A good WBS can be an effective tool in determining needed skills. The team must be staffed with the right mix of skills needed at specific points in the project.

7.

Are there other skills within the overall organization that can be pulled into the project, if needed, on a temporary or fixed-term basis?

8.

When support groups are housed at a different location than developers it puts a strain on logistics and can mean lengthened schedules.

9.

Not accounting for vacation or sick time, which is inevitable, will cause real problems in a schedule, especially if the effort is scheduled for over 6 months duration.

10.

Lack of support for a disciplined approach should be addressed early in the project. Failure to do this may result in runaway requirements and little chance of delivering an acceptable product to the client in a timely manner.

11.

If the technical monitor, the system owner, or others are not prepared to support the processes being used on the project, such as Stage Exit reviews, other plans will need to be made to ensure that the proper level of support is given to the project.

Examples of how high risk situations can be handled. 1. Chance is high that system owner or user support staff person (assigned to the project and serving in the capacity as the development team interface during the software development lifecycle) will not be available. Possible ways of dealing with this situation include: interviewing the system owner or user to determine their busy times; assume limited support during those times in the Project Plan and Work Breakdown Structure (WBS); and review the Project Plan with the client to ensure the support staff identified in the Project Plan is available to support the effort. Closely monitor project development. If the support staff cannot meet the time commitments set forth in the Project Plan, negotiate additional support from management or adjust plan and WBS to reflect actual support being given to the project. This may mean a delay in project implementation if this person is critical to the work being done.

7

2. Risks associated with any conversion of existing data required before implementation of a new software product. One way to handle this situation is as follows. Determine the state of the data being converted. Is it a straight one to one conversion or is it combining the inputs of multiple files? Will the data need to be “cleaned up” before the new files are constructed, i.e., are there known problems with the existing data that will need to be fixed before the new data base(s) are constructed? The plan must address how to handle these and other situations unique to the project. Support from the client must be negotiated and planned as a part of the WBS. This is crucial in situations where data from the old files must be massaged to create the new data base(s). The support for this effort must be planned and monitored closely. By working closely, the client will have a good idea that what is happening is accurate. Ultimately, the client will have to signoff to validate that the conversion was done correctly. All support activities must be included in the project plan and WBS. The more involved conversion will require a greater amount of time and should be planned accordingly. All support activities should be closely tracked, and issues should be raised if any of these activities are not completed in a timely manner.

8