Sunday 18 June 2023

Software Project | Process and Effective Project Management


Software Project

For a long time, the high failure rate of software project has been plaguing people, and research shows that there are two main reasons for the failure of software project: one is the complexity of application projects; Second, there is a lack of qualified software project talents. 


Practice has proved that the lack of effective projects is the direct cause of software projects getting out of control. The risk of software development is large due to the low ability of the software process, and the most critical problem is that the software development organization cannot do its software process well, so that some good development methods and technologies cannot play the expected role.

As a modern advanced idea and effective tool, with the change of market environment and organizational model, process has shown its power and utility in the context of modern society based on computer network. Process is not only a technology, but also a modern idea. The focus of the process is to clarify and reconcile the relationship between all the main and branch processes, so that they can coordinate with each other and play their due role. 


The process increases the transparency of the department, and the object is not the concept of "department" and "department employees", but the process flow as the object, focusing on each process and efficiency in the process and the relationship with upstream and downstream processes, focusing on the integrity and smoothness of the overall process.

The use of process methods and techniques for software projects can effectively change the chaotic situation of software processes. 

First, the software project development process is effectively and standardized;

Secondly, in the process of software project development, all activity processes are executed in accordance with the logical relationship of activities and the realization mode of activities specified in the process, so that all activities can be orderly and controllable; 

Third, by clarifying the operation process, the project team personnel can quickly integrate into the project and development process; Fourth, pay attention to the "result" of each process, so that all working products of the software project can be effectively saved, and ensure the integrity of the software product.

First, the concept of process and its role in software projects

Processes are made up of activities. Basic activities are performed by individuals or groups, and it does not require the transformation of other basic activities. 

There is a specific flow between the activities of the process, which contains a clear start activity and a ending activity, so it is a dynamic concept. From a structural point of view, the process has four basic components: the activity, the logical relationship of the activity, the way the activity is implemented, and the bearer of the activity. Processes are closely related to concepts such as "a series of activities or events", "outcomes", and so on. 

Process is not only a technology, but also reflects modern thinking, the original control, tower organization based on the function can no longer fully meet the needs of modern enterprise development and market competition, the development along the division of labor theory after hundreds of years of operation, now back to integration and system.

The series of development processes in the software project life cycle are a variety of process activities. The planning, system analysis, outline design, detailed design, program coding, testing and maintenance of software projects are all process activities. Develop a software project process that focuses on the following:

1) develop a process that can guide the project to success;
2) The developed process can be applied to the software development process;
3) The process formulated can guide the project development activities and is conducive to the project development activities;
4) The formulated process can be represented by an intuitive flow chart, so that the project team members can clearly know the process and relationship between software development and each other;
5) The starting activity conditions and termination activity conditions in the process are clear and standardized, which is easy to control;
6) The work products in the process are clearly defined and measurable, and the evaluation standards and methods are specific and operable.

Second, the overall process design of software projects

During the software project development process, not only to strive to achieve the objectives of the project scope, time, cost and quality, but also to coordinate the entire project process to meet the needs and expectations of project participants and other stakeholders; As the scale of software and the fields involved continue to expand, software projects become increasingly difficult. Looking at all failed software projects, the basic reason is that without their software processes, organizations cannot benefit from better methods and tools in an undisciplined and chaotic project state. 


Rigorous software process control not only reviews and corrects deviations in the project at every stage, identifies the risks of the software project or even decisively halts the project, but also minimizes the adverse effects of talent flow. For effective process control, the software project process must be defined.

The overall process design of software project is divided into five main stages: project search, project establishment, pre-sales, contract generation and contract execution, which are respectively represented by P5, P1, P2, P3 and P4. 

At the same time, five milestones, including project completion, contract signing, function definition, software development, and project acceptance, are designed, which are represented by TM5, TM5, TM1, TM2, and TM3, Among these processes, the contract execution process is the core of the software project, and the main processes are: product definition, software development, test execution, internal acceptance, project implementation and acceptance, and project maintenance.

Third, the overall process analysis of the software project


1. Project search

Project search is the basis of project establishment, and the main tasks of the project search stage include market information collection, user demand tracking, analysis and screening of potential projects.

2. Project approval

The main task of the project establishment stage is to confirm the reasons for the project establishment, put forward the project establishment proposal, provide appropriate funds and resources, and make the project establishment proposal a formal project.

3. Pre-sale of the project

In the pre-sales stage, from the beginning of the project to the signing of the project contract, the main tasks are: formulating the communication plan with the customer, understanding the customer's background in detail, understanding the reason, purpose and expectation of the customer to start the project, preparing the project proposal and preparing the contract blueprint. 

4. Contract generation

The main tasks in the contract generation stage are: evaluation and determination of project plans, negotiation, evaluation and signing of technical contracts and commercial contracts.

5. Contract execution

Contract execution is the focus of the software project process, which can be divided into software development and test execution; Internal acceptance, project acceptance, system maintenance and other five basic work processes.

5.1 Software Development

The software development stage is divided into: requirements research, system analysis, system design, coding, unit testing and other processes. It is mainly carried out from three aspects:

1) Formulate. Software is an operational document used to coordinate all other plans to guide project execution and control. It reflects the understanding of customer needs, is the basis for carrying out project activities, and is also the basis for tracking and monitoring software projects.
2) Determine the development process. According to the actual situation of the software project and the project team, establish a stable and controllable software development process model, and carry out software development according to the process.
3) Strengthen process control. Process control mainly includes process, change control, and configuration.

5.2 Testing and Execution

The purpose of project testing is to check whether the system meets the requirements specified in the project contract and mission statement. The project test is divided into integration test and system test, mainly functional test, robustness test, and performance

6. Milestones of software projects

The assessment and review of the project is the basis of the software project process control, and we set five baselines in the entire process, that is, identify five milestones, which are TM1: project completion; TM2: Contract signing; TM3: Product function definition completed; TM4: Software development completed; TM5: Acceptance passed. This is shown in Figure 1. The main entry conditions of each stage and the corresponding work results are important indicators of whether the milestone has been reached.

By applying the process to the software project, setting the overall process of the software project as the main line, determining the main processes and milestones of each stage, and using the evaluation index system and a series of templates and forms to control the software project development process, the success rate of the software project is significantly improved.


No comments:

Post a Comment