First, the question is proposed
The author has been engaged in the development of information systems in recent years, especially the development of state organs and corporate information systems, has achieved many experiences and lessons. One of the deep experiences is the continuous change in demand, and if it is not good to respond, it will lead to the progress and quality of the entire project, and ultimately make the entire system fail. Especially in our country, users do not have a mature experience in how to apply computer software, and the users will change and increase various requirements in the project. When the system is finally completed, it has been found that the business needs of the enterprise have changed. On the one hand, the design is unable to meet new needs well. On the other hand, the project cycle has exceeded expectations. Loss.
According to the investigation of the implementation status of American software engineering, software research and development is also difficult to predict, about 10% of projects can be delivered at predetermined fees and progress. This phenomenon is particularly serious in the commercial software industry.
Therefore, how to solve the problem of continuous change in demand and strengthening project management from the perspective of software engineering, is an important topic of various software developers. By practicing, the basic idea and principles of agile methods are used to design the system and handling changes in demand, and can produce better results.
Below, you will talk about this experience from system design and project management.
Second, problems with demand changes
As a software developer, when receiving a project, the general approach is first requested by the user, and then the developer makes a system implementation according to the user's needs, and the user usually does not have a substantially understanding plan, and the program is passed. Start the development of the software. According to the number of systems developed by the author, most units did not have a clear idea, but also could not mention the exact needs, because the business personnel do not understand how computer technology implements business processes. Users always hope that the development unit will make a template according to the current business process, and then transform, and most users think that software modifications are easy.
Although system planning has been made, a more clear contract is signed, but with the progress of systematic analysis, system design and system implementation, when customers see the real software system interface and operation, customers The demand is excited and will make changes to the software's processing and operation of the software according to their own understanding of software, and this modification is often more casual, so that the developer needs to be on the process, interface, and related A large amount of modifications of documents are often a big burden of the development side, and this burden is basically invisible to users.
Third, use agility method to deal with demand changes
1. Agile Model for system design
The software development process is generally necessary to complete demand analysis as soon as possible, stop the demand changes, as the design of these requirements, and then build the system, which is a waterfall method --- Plan-based life cycle. This method is to reduce changes by a large number of pre-sections. Once the previous work is completed, this method will have a big problem when demand changes.
Another important reason is that many units of management models are in the exploration stage, there may be many factors that can cause changes, so the information system designed according to the current management mode will face the test of the use of unit management mode, including many work. The details of the process are handled by the problem of staff habits.
The system is fully considering these uncertainties when designing, in order to adapt to these changes. In particular, the data structure is mainly based on system flexibility, followed by considering system performance.
Developers often complain about the changes in demand due to problems such as software development, due to changes in demand. In fact, in the field of commercial software development, demand variation is normal, the problem is how we should treat it. In order to adapt to changes in demand, different design attitudes must be taken. Here is a few ideas for agile methods, and there is a good interest in how to deal with demand. It is simple, increasing change, and hug changes are three of the core principles of agile modeling methods.
Agile modeling claims When engaged in development, the easiest solution is the best solution, and maintain the simplicity of the model as much as possible.
Evolved in demand that cannot be cured on the beginning of the project. You don't have to model this system now, as long as the existing needs are modeled, with the project, the project environment and demand changes, the system is improved and refactored.
Increasing changes refers to you don't have to include all the details in the model, you only need to develop a small model or a profile model, lay the foundation, then slowly improve the model.
Agile modeling takes different design attitudes to "hug changes". It believes that the demand is changing, and people are also changing at the time of understanding. As the project is carried out, the project environment is constantly changing, so your development method must be able to reflect this reality. For the feedback of the user, we must be able to modify your code and lose the bad code.
For variable demand, agile methods use a series of practices. Its core is iterative development, seeking fast feedback, after the user has experienced an iteration, how to achieve the knowledge of software development and business needs, and the needs of users can basically represent their true demand. At this time, the demand can be frozen. Later, if there is also a modification, it will be the adjustment of the details, and it will not have a significant impact on the structure of the software.
The system is designed according to the principles of the above agile methods, and we can make our correctness of the user's demand, thereby adapting to the changes. If the project manager and the program developer really understand and implement this method, use this idea to manage the project, then it can effectively avoid the chaos of the post-project software architecture, patch plus patch, system performance is greatly reduced.
2. Project management
1) Promote technology and demand "match"
The above mentioned iterative development, freezing requirements to be used as soon as possible, then the time of the demand freeze can be controlled and shortened through the means of project management.
Project management is a means of management, with a predetermined task in time to complete the predetermined task under the conditions of the specified time and resource. As a project manager, you must pay attention to some demand changes due to the "mismatch" of business and design, that is, the user may have a comprehensive understanding of the development and implementation of the information system, and does not know how to put traditional business. The mode is converted to the processing mode required by the information system.
On the other hand, it is also possible that developers can understand the needs of the user, and the details of the inadequate understandings have made the understanding of the project from the developer from the beginning. Because the business person begins not to mention actual needs, only the rough work process is introduced again. This difference between this understanding is often not shown in the initial stage of development. When the software is basically molded, it shows a large difference when presenting it.
As a developer, in the past, the attention of the development often focuses on "technology", namely computer software, hardware, operating system platforms, and database implementation. For the development of the information system, you must first take into account all aspects of the user's philosophy, principles, and its understanding of technical methods. It is often more important to the role of these factors on system success or failure, more important than technical factors.
First, the project design group staff wants to explain how the information system is implemented to the demander's leadership and business personnel, what kind of business model is suitable for the network, how to handle and solve something, what improvements need to do in the transmission business mode, establish Basic operating specifications, etc. It must be clear that the information system has changed the current work management model, so that the staff lost a certain flexibility and randomness. If new operational processes and specifications are not established, it is impossible to implement information systems in traditional manual processing methods. Second, after detailed understanding of the full business process, use the basic user interface from the original user to demand and explain the plan, so that the business person really understands the idea of technology realization, and it is possible to discover the difficulties in time and actually do not match or exist. These issues are solved on or technically in the process.
When there is a problem, the project management should quickly analyze the problem, correctly determine which issues belong to the uncomfortable new working mode, which is caused by improper operation, which is caused by the system itself. For problems due to not adapted to new work patterns, project managers should guide users to quickly adapt to new working modes. If necessary, the user's decision-making layer should be promoted by administrative means; project management people always pay attention to obtain decisions Layer understanding and support, helping staff to adapt to new working methods as soon as possible.
The project manager is like a hub, which is determined by the classification, workload, and demand variation on the existing software, so that the plan is scheduled - the plan is done in this iteration, or under this iteration Once it iterates.
2) Update to develop documents
Software development documents are a big workload for software projects. Many software projects have been developed in the initial document. As the project is in-depth, especially if the demand has changed multiple changes, it is very difficult because the consistency of the software development document is very difficult because the various information changes have not been recorded. Down, I finally had to mix the customs, and grass.
However, if we follow the principle of agile methods, do not put energy into the documentation before the demand is frozen, but will record and retain the relevant information records and reserved, and then set a certain time after the demand is basically frozen. Format the document.
3) Considering
Although the principle of agile methods is hugging, but should still be signed and developed, on the one hand, the cost and time estimation of the project must consider the changes in user demand, and on the other hand, write the clause of the changes in the user's demand. If the user increases or changes the needs, the delivery date of the software can be postponed, and the cost should also be increased. This limits the user's random change.
Third, conclude
The development environment of each project and the implementation environment are different, and the problems faced by system design and project management are not the same, but demand changes are issues that all projects will encounter. The construction of information systems will change the original traditional working model, and the contents of the demand will change at any time, which has brought great difficulty to development work. This paper proposes the idea of applying agility methods to deal with changes in demand during software development, hoping to help system developers and project managers.