How do you handle risk in software development? The following is a detailed analysis of some major risks in the above four categories and countermeasures.

Risk of requirement change

Requirements change risk refers to the requirement has become the project benchmark, but the requirement still continues to change; The requirements are poorly defined, and further definitions extend the scope of the project; Add additional requirements; Ambiguous parts of the product definition take more time than expected; Insufficient customer participation in making requirements; Lack of effective requirements change management processes. A software project that seems to have a lot of “money” will often make the project contractor suffer unbearably due to unlimited demand changes, and even end up losing money (in fact, the project builder also faces huge risks).

The way to prevent this risk is to carefully allocate the work of team members during the demand analysis phase, such as the project manager responsible for the schedule arrangement and control of the project during the demand analysis phase; Participate in project resource scheduling; Responsible for the overall coordination of the project, and the personnel composition shall be the project leaders of both sides. For example, the system analyst should communicate well with the technical personnel and business personnel of the user side to understand the business process, functional requirements, system conception and project objectives, and complete the task of compiling the software requirements specification, and so on.

Requirements demand analysis stage according to the project management team in a typical matrix structure in order to develop, this structure can use the project resources effectively, reduce regional segmentation of conflict, increases the chances of communication and coordination, reduce the execution of the project cost, can give full play to the project manager and a grouping of staff’s enthusiasm, and by adopting some incentive mechanism, Ensure project members have a strong sense of responsibility and accomplishment. And to effectively curb demand change, software demand change is the biggest enemy of software project development and implementation, in each stage of the software project may appear. The later requirements change, the more damage is done to the project. So the requirement change control of software runs through every stage of software implementation. In the demand analysis stage, the change of user demand is mainly reflected in the repeated user demand, which is easy to make the demand analysis work turn in a circle and can not complete the demand analysis work as planned. To contain the risk of change during the analysis phase, use the following methods:

1. Adequate demand research.

2. User signature system. The method of signing can be that users take a positive and responsible attitude in the demand research and treat each requirement analysis item seriously. In the actual analysis, analysts should be good at communicating with users, through the system prototype or similar system demonstration and other means, to eliminate users’ concerns; In addition, if the user’s representative is difficult to decide personally, the project coordination meeting can be held and the project personnel of the user can collectively decide.

3. Regular work notification system. That is, the development project manager shall regularly summarize the work progress and existing problems in the demand analysis stage and report the work to the senior leaders and project management committee of both sides. Promote the project personnel to carry out the demand survey work with a positive and cooperative attitude, reduce changes and determine the schedule.

4. The demand for signature recognition shall be incorporated into the demand management, and the demand change process shall be implemented. In addition, in this process, the analyst needs to classify and manage all the analysis items of requirements, and set different priorities for different requirements according to their importance and the impact range caused by the discovery of changes. In the demand analysis work, the focus should be on solving the research and confirmation of higher priority requirements. It can minimize the possibility of requirement changes and minimize the impact of changes.

Schedule risk

Some projects have very strict schedule requirements (for projects with low schedule requirements, we also need to consider this risk), and the delay of project schedule means default or missed market opportunity. Software duration is often a major constraint on software projects. The estimation of software project duration is one of the most difficult tasks in the initial stage of software project. In many cases, software users’ demand for software is due to the pressure of the actual situation, and they hope the project undertarer to develop the software as soon as possible. In software bidding, in order to win the project as much as possible, the developer promises the project schedule far beyond the actual project schedule, which causes a serious time problem at the beginning of the project. Under the pressure of time limit, software development organizations often give up the compilation and updating of documents. As a result, when a large number of software projects need to be coordinated through documents in the late stage, the software progress is slowed down. In addition, due to user coordination problems, resource allocation and other problems, software projects may not be able to complete the task within the scheduled time. The software project process has its own objective regularity, and the user’s requirement of software project schedule can not be inconsistent with the time requirement of software development process.

Asymptotic detail is characteristic of projects, especially software development projects, and is not a static process. At the beginning of the project plan to make some more thick, with the progress of the project, especially the requirements clearly, project plan can be further clear, this time should be to adjust the project plan revision, to build consensus on the stakeholders through the alteration formalities, errors are inevitable in the process, Therefore, necessary testing is one of the ways in which the project is asymptotically detailed, and further refined, adjusted, revised, and refined as the project progresses. Continuous monitoring, project progress control is carried out continuously with the progress of the project, is a dynamic process, but also a cyclic process. From the beginning of the project, the actual progress is on track, and every part of the process must be fully monitored until the end of the project. When making the plan, it is necessary to determine the overall progress target and sub-progress target of the project; In the whole process of project progress, make a comparison between the planned progress and the actual progress, timely find deviation, timely take measures to correct or prevent, and coordinate the progress relationship between project participants.

Budget risk, technical risk

In the process of software project development and construction, strategic management technology is a very important factor. The project team must be in line with the actual requirements of the project, choose appropriate and mature technology, never ignore the actual situation of the project and choose some advanced but not necessary and unfamiliar technology. If the technology required for the project is not available or mastered by the project members, this risk factor needs to be focused on. Major technical risks include: there are problems in the software structure system, so that the completed software products can not achieve the predetermined goals of the project; During the implementation of the project, the new technology was used. Due to the defects of the technology itself or the lack of in-depth grasp of the technology, the performance and quality of the developed products were poor.

The way to prevent this risk is to select the necessary technology for the project and carry out good technical training for the relevant personnel before the technology is applied. First of all, the technical review at all stages should be carried out to ensure the feasibility of the technology used in the project and the correctness of the technical scheme through collective wisdom. Secondly, the use of new technology should be cautious, step by step, try to use mature technology to complete the software development work. Thirdly, balance between technological innovation and technological risk, and do a good job in the research and test of innovative technology. It is necessary to evaluate the various technologies used in software projects, and software project management must consider these factors and make reasonable tradeoff decisions when making software development plans.

Quality risk

Any software project implementation process lack of quality standards, or ignore the software quality supervision link will pose a huge risk to software development. In some projects, users have high requirements for software quality. If the project team members are not experienced in the development of similar projects, they need to pay close attention to the quality risk of the project. Correcting unacceptable products of low quality requires more testing, design and implementation than expected; Development of additional features (gold-plating) that are not needed, extending the schedule; Strict compatibility with existing systems, requiring more testing, design, and implementation than expected; Requirements to connect to other systems or systems not under the control of the project team, resulting in unforeseen design, implementation and testing efforts; Unanticipated problems arising from operating in unfamiliar or untested software and hardware environments; Developing a completely new module will take longer than expected; Relying on technology in development will extend the schedule.

Prevention of this risk is generally by frequent communication of work results with users, adopting a development process that meets the requirements for brand management, carefully organizing the inspection and review of products, planning and organizing rigorous independent testing, etc. Software quality assurance system is the basis of software development into a controllable process, and also the basis and basis for developers and users to communicate. Therefore, it is essential for any software development organization to establish a fruitful software quality supervision system.

Human Resource risk

Software development is different from other engineering, it is intelligence intensive, labor intensive, project, greatly affected by personnel resources. Software development in different engineering stages, need different personnel, also need close cooperation between team members. In the process of using human resources, the performance of personnel ability is often reflected in the difficulty of monitoring software results, which leads to the difficulty of observing personnel ability. Human resource risks can arise from attrition and people not being able to fit the requirements of a software project. The ability and quality of human resources (including business ability and technical ability) have a great impact on the progress and quality of projects. Project managers need to pay attention to this factor in real time during the construction process of projects.

The way to prevent this risk is to select the right people before hiring them, conduct targeted training, and put the right people in the right positions. To reduce the human resource risk of a project, it is necessary to ensure that all types of personnel involved in the project are competent for the work undertaken in the project. Therefore, participants should be carefully evaluated by the implementing parties. This evaluation is twofold, not only the user’s evaluation of the developer’s personnel, but also the developer’s evaluation of the user side members participating in the project. At the same time, the project personnel should ensure the degree of investment in the project. In addition, the project manager should take appropriate measures to maintain the stability of the development team, link the performance evaluation of project personnel with the status of project implementation, and formulate appropriate rewards and punishments. At the same time, the project manager also needs to do a good job of responding to changes in project staff. The level of developers should meet the project development requirements. Technically, it should be compatible with the development tool chosen. Be able to participate in software development from start to finish. Is the ability to focus all of your energy on software development. And employees have the right expectations for their work. Have the necessary training. Keep the flow of developers and keep the continuity of work. As far as possible, assign the core work of the project to multiple people (rather than focusing on individual people), and strengthen the cultivation and reserve of similar talents.

Tools for risk

In the process of software project development and implementation, whether the management tools, development tools and testing tools that must be used can be in place in time and whether the version of the tools in place meets the requirements of the project are the risk factors that the project team needs to consider. Some software projects belong to multi-user concurrent application systems, which have high performance requirements. In this case, the project team needs to pay attention to the performance risk of the project.

The way to prevent this risk is to identify the source or possible alternative tools at the start of the project and track and implement the tools before they are needed (typically about a month in advance). Before the project development, the infrastructure of the system should be designed and built and the performance test should be carried out to ensure that the architecture meets the performance indicators before the follow-up work. And the skills of the team members are biased toward the tool.

The risks of software project development process is varied, the size of the risk, and focus on each are not identical, should give full consideration to the project management personnel, careful analysis, considering the risk loss and reasonable response to the risk of cost, choose to adopt appropriate risk response plans, to avoid the risks in terms of heavy losses.

If reproduced, please indicate the source: open source byte sourcebyte. Cn/article / 93….