The most notable feature of a software project that distinguishes it from other projects is its invisibility. Unlike hardware purchase and sale and construction projects, it is actually visible. Software projects, for a long time before system delivery, cannot perceive what the system is like. Therefore, demand management is very important. According to the relevant statistical data analysis, more than 90% of software project failures are caused by lack of emphasis on requirements or inadequate demand management.
Demand management is an important part of software project management, and runs through the full life cycle of project implementation. As the saying goes: Everything starts hard. As the first step of software development, the importance of requirements is self-evident. There are many theories and books related to demand management on the market, but most of them stay at the theoretical level, with poor performance. This article mainly discusses some demand management aspects based on our previous project experience. We can simply divide the demand management of software projects into three core contents: requirement acquisition, requirement analysis and verification, and requirement change control.
(1) requirement acquisition
Requirement acquisition is the first process of software project requirement management. In this process, we need to use scientific methods and relevant project experience libraries to help us obtain requirements. The core content of requirement acquisition is to grasp the actual needs of software projects through research, so as to guide the implementation of the entire project. The main methods for obtaining requirements include user interviews, surveys, on-site observation, and brainstorming. In the actual project operation process, we can use a relatively fixed requirement acquisition method, such as questionnaire survey. When users cannot clearly express their vague requirements or what they need, we can adopt a more flexible approach, such as user interviews and on-site observation.
The main types of requirements include: business requirements, user requirements, and functional requirements. In the process of requirement acquisition, no matter which method is used, we need to learn the real thoughts of users from top down or bottom up. Business Requirements are mainly obtained by Senior Customer leaders. We all know that project initiation, implementation, and final success or failure depend largely on senior leaders. We need to interview them, understand the company's strategy and development direction of senior leaders. More importantly, obtain their expectations for the software system to be developed and hope that the system can solve existing business problems, expectations for the support of the company's overall strategy. It helps us better understand the macro idea of the system. After understanding the business needs, we need to conduct research on the middle-level management personnel. The core issue is to clarify the layer where the macro strategic objectives are implemented, in other words, the middle-level indicators are refined and responsible for implementation of their expectations for the software system and actual requirements. They may hope that the system can bring convenience to their work, or that the system can achieve refined management. However, they are the heads of specific business departments and have a deep understanding of their own business and System promotion. Finally, on the basis of understanding business needs and user needs, we need to investigate the Needs of the IT management department and main operators or understand the needs based on our understanding, to refine the functional requirements of the system, this requirement is at the lowest level and also a process of implementation.
(2) requirement analysis and verification
After obtaining the software project requirements, the next task is to analyze and verify the requirements. The actual operation process of the project mainly includes: there are three major stages: Requirement Analysis Modeling, requirement specification writing, and Requirement Review.
Requirement Analysis Modeling is mainly to extract, analyze, and carefully review the collected information, and create a conceptual model for the system seen by the end user to ensure that all stakeholders understand its meaning, and identify the errors, omissions, or deficiencies. Requirement analysis is the most important part of software project requirement management.
In the process of requirement analysis and modeling, we often use the original method for requirement analysis and modeling to speed up the project progress, that is, based on our experience and understanding of the basic needs of users, we use axure and other prototype design tools to build a prototype system. In addition, we also need to use UML tools for case analysis and case description, and finally write and form the Software Requirement Specification.
Requirement verification or requirement review is an important means to measure the output results of the demand phase. After requirement analysis and modeling are completed, stakeholders of the project should organize a requirement review meeting, relevant experts and external entities are invited to carry out demand reviews, review the results of the demand analysis, such as the requirement specification and prototype system, and sign and confirm the results, ensure that the demand does not deviate from the user requirements, and is slightly higher than the user requirements.
(3) demand change control
Demand management runs throughout the entire lifecycle of software project development. After completing the tasks of requirement acquisition, analysis, and verification, the project team will design, code, test, and release the system based on relevant reports. These processes will actually involve changes to requirements, this requires us to have a good set of mechanisms and methods to manage and control demand changes, so that the project can be completed on schedule with quality and within the cost range.
The common practice is to avoid disorderly, frequent, and excessive changes in demand. At the project launch, We will formulate a set of regulations and a CCB (Change Control Board) will be established ), by holding a project kickoff meeting, relevant stakeholders should be informed of the implementation methods, milestones, and communication plans of the project, and the process of changing requirements should be emphasized.
In practice, you must first manage the requirement documents by using version control tools such as VSS, create a requirement baseline, and specify the required items through the requirement tracking matrix.
Second, it is to control changes to requirements during project implementation. There is a set of standardized processes. Although the process is cumbersome, it can bring good results to project risk control. The user submits a request for a change. The project implementation team will evaluate the change, including the impact on other functions of the system and the workload required to implement the change, after the evaluation is completed, the change control board determines whether to agree to the change. If you agree, the project team will implement the change and verify the content of the change after the launch and the entire system to ensure that the operation and operation of the system are not affected. If you do not agree, the change is not valid and the user is directly rejected. Such a seemingly cumbersome method can effectively control demand changes, effectively avoid disorderly, unreasonable, and excessive demand changes, and ensure that the project is implemented within a controllable scope.
The above is our understanding of software project demand management. The reason why software demand management is important, the main reason is that the failure of most projects is mainly caused by the incomprehension of requirements and the failure to effectively control demand changes. Therefore, this requires us to make greater efforts to acquire, analyze, and control changes in the demand management of software projects, and combine the relevant theories of project management, such as pmbook and cmme. In project practice, we constantly sum up experiences and lessons and manage requirements.
This article is from the "hire the world" blog, please be sure to keep this source http://2013128588.blog.51cto.com/901427/1433734