Outsourcing projects are generally difficult to manage, because not their own to carry out specific implementation, the project in the conduct of the various issues on the party is not transparent, resulting in the success or failure of the project is often mastered in the hands of the undertaking. In this way, there are often delays, quality does not meet the requirements, and even the results of the work is not in line with the needs of party A. How to deal with it?
First of all realize that no matter what kind of project, in the implementation process will appear a variety of problems, if not to actively follow, many problems may have been latent to the acceptance of the time before the surface. From the perspective of party A, the problem must be found early, do not wait until the delivery period to discover, I am afraid that can not be redeemed. The sooner you find the problem, the less the cost of correcting it, and the greater the cost of correcting it later in the project, the greater the risk it will bring to the project's success. Therefore, party a must establish the tracking control mechanism of the outsourcing project, through the whole process of implementation.
Secondly, software projects should not only meet functional requirements, but also meet the quality requirements of maintainability, reliability and reusability. For the carrying out of the implementation of the personnel, the implementation of the project has a one-time, not the user of the project results, or even the maintenance of later maintenance, so there is no long-term intention of the driving force. These quality characteristics need to be in the implementation process of planning, design and coding aspects of the comprehensive consideration, but the undertaking in order to catch up, save costs, may not be very important to this, think that can deal with the contract provisions of those provisions are sufficient. This creates a problem that is difficult to maintain after the software is delivered. After a year of maintenance, users themselves are more difficult to maintain software maintenance. In this respect, party A should participate in the quality management of the undertaking party, and require the undertaking to establish the quality assurance plan and strictly implement.
Again, many times party A is not engaged in the software industry, but only the users of software project results, the knowledge of software development is not understood. Therefore, it is difficult to measure the development process, technical methods and quality of the undertaking party. Even because the party interface personnel do not understand the field of software development knowledge, in the discussion with party B, was thrown by the other side of a lot of terminology, technical details drowned, but in order to maintain their self-esteem, appear pretend, the practice of haphazard, or simply assume the decision by party B to carry out all kinds of decisions, and completely wash their hands, Let party B fully grasp the initiative. Finally, after the acceptance of the project found that the results can not fully meet their own needs, or there is such a problem. In order to prevent the occurrence of this situation, party a first to face their own weaknesses, select the software development industry familiar, and have a certain experience of the person as the interface (or even external project supervision), and establish a formal outsourcing project management system and methods, from the system and people to ensure the correct implementation of the project.
Cooperation with academic institutions and other scientific research institutes, in particular, due to the work of these units are more of a research nature, they pay more attention to the software function, that is, the requirements can walk on the line, and the engineering characteristics and unwilling to invest more. So the software they completed, if not controlled, later it will be difficult to maintain and reuse. Another point, because many of the university's programs are mentors to guide students to complete, and students have mobility, and level is basically at the novice level, development experience is not much, so the development of quality, late bug tracking and repair is a risk. Moreover, the institutions, research institutes and other units often work at a slow pace, in the progress can not be too optimistic.
In particular, party A should ensure the successful implementation of external projects from the following aspects:
1. Scope Management
The more detailed and clear the requirement of party A, the less ambiguity, the more beneficial to party B to work and reduce the project risk. If party A is not able to provide sufficient and detailed requirements at the beginning of the project (very common), it can be gradually refined in the implementation of the promotion process, can also require party B to establish a prototype to assist the deep excavation of demand.
Write a detailed software specification document as a scope benchmark for party B.
Party B is required to set up WBS and corresponding workload estimates according to the scope of work, thus facilitating the tracking of the project by party A.
2. Schedule
According to the WBS and workload estimate, make the schedule and show it as a chart, as the basis for the tracking of party A.
There is a general schedule for the long-term work requirements and a detailed schedule for the recent work.
In order to reduce the risk of the project, you can ask party B to deliver the software in stages, set multiple milestones, and deliver each milestone as part of the software. After each delivery of the acceptance, party B may continue to develop other parts, and party A can put the part of the delivery more detailed testing, or on-site measurement. The benefit of this is that the risk of project delivery is apportioned throughout the implementation process, not the moment of final delivery.
Another benefit of phased delivery is that through prior delivery, party A can have a better understanding of the various aspects of party B, such as developer stability, technical and management level, party B's attitude towards the project, and so on. If it is found that the qualification of party B can not meet the requirements of project development, the project should be canceled immediately, so as to avoid greater investment loss.
3. Quality Management
The quality of the software depends on each member involved in the implementation, as well as the entire process involved in development. In particular, it is important to be fully aware of the importance of quality in the project's early planning, and to formulate plans to take measures to ensure the achievement of quality indicators.
For party A, because not directly participate in the design and coding, so in addition to the internal quality of the software requires party B to implement quality assurance measures, more than the lack of direct control means. Therefore, party A should be more in the system testing efforts, for the proposed requirements, do the corresponding test cases, appoint a special acceptance test personnel. In the software non-functional indicators, but also to try to exert influence on party B.
4. Communication Management
In order to be able to grasp the status information of the outsourced project in time, it is necessary to conduct regular and irregular communication with party B, and the problem can be found in time to reduce the risk of project failure. For the party B, for some reasons, do not want to fully share the implementation of the project with party A, remove those who do not normal hands and feet, etc., party B is afraid that party a too much understanding of the implementation of the project will have to carry out micro-intervention impulse, the results of the work made a mess. Therefore, party A should realize that the purpose of communication is not to plug in a foot at any time, but to ensure that it is fully informed about the project, not to have a big problem, but not in the dark. Communication with party B should be built on the basis of mutual respect, trust and truth-seeking, not to the people, try not to let party b produce preparedness mentality. After all, every day on the front line is the staff of party B, if they are afraid of being criticized and want to conceal, party A is very difficult to control.
5, Party B personnel arrangements
Although it is said that the implementation of the party B, the specific staffing arrangements by party B to set, but the project is carried out by people, personnel arrangements for the success or failure of the project is crucial, as the user of the project results, to this heart. We want to see if the party B personnel arrangement is reasonable, specifically to see if party B has sufficient expertise in software development, the knowledge of the project business areas, whether the project leader has enough software development and project management experience and ability, whether the staff is adequate, party B to the project is enough to invest and so on. The domestic reality is that the amateur project leader and programmer account for the large part of the software developers, the development method is basically code-and-fix, let them to lead the implementation, easy to make the project into chaos. As party a can not change the status quo of the industry, only try to be aware of, as far as possible to exert influence, so that the right people to do the right thing.
6. Risk Management
7. Change control
8. Acceptance Management
9. Project Tracking and control
10. Project Management Documents
11, Party B project management level guarantee
On the idea of software outsourcing project management