In Brief: An increasing number of organizations are turning to outsourcing for software development activities in the hopes of attaining numerous benefits. Organizations are attracted by the promise of reduced time to delivery, reduced cost, and access to skills they do not otherwise hold. While organizations may hope to find escape from the frustrations of managing in-house development through outsourcing, they often find that managing outsourced software development can be even more complex, requiring astute attention and planning.
Though outsourcing promises benefits, project consequences can be dire without controls to manage contracts and work quality.
Project managers tasked with the control of contracted software development activities need to have a clear understanding of the capabilities and various techniques required for success. This study addresses these questions:
Results show that attention to key processes with regard to each of these questions can provide concrete and actionable ways to manage outsourced software development projects. An overview of the ideas, framed in terms of each of the key concepts in the original research questions, is shown in Figure 1.
|Managing Project Progress||
|Managing Deliverable Quality||
|Managing Work Coordination||
Figure 1—Key contract management capabilities within the
Capability Maturity Models
In order to attain visibility into the progress of project activities, the project manager must find ways of implementing controls that will allow for the observation of vendor behavior. The first step is to establish a clear and agreed upon project plan that will be used to manage and evaluate the progress of the work done. The hiring agency must then put into place a series of controls that will allow visibility into the progress of work being done against the plan. Behavior controls such as regular progress reviews, team meetings, the delivery of in-progress products, and even the co-location of vendor and agency staff can be built into the project plan. When these behavior controls are put into place early on, they can help make the work being done by the vendor more transparent to the project manager. Finally, some of these controls can be built into the contract to allow for incentives and penalties based on how well the vendor is able to meet project deadlines.
Once the requirements for quality have been defined and handed over, the vendor is given a large amount of the responsibility to maintain quality control. Methods that will be used to manage this quality become critical. Therefore, it is important for the hiring organization to have outcome controls in place that will help to evaluate the quality of products delivered. These controls should include, at the least, formal reviews at milestones, acceptance testing, and a reexamination of requirements.
Additionally, the hiring organization should have a clear understanding of the processes used internally by the vendor to ensure quality. If these processes are reviewed and approved, and even re-designed at the beginning of the project, the vendor can be given a certain amount of self-control to manage the quality of deliverables.
The coordination of effort between the vendor and the hiring agency is accomplished by building a solid relationship in which the needs of the project are understood by both parties, in which each does their part to achieve the same objective. It is important at the beginning of the relationship to ensure that the project requirements are clearly defined, and understood by the vendor. Additionally, it is important for the hiring agency to build a relationship with the vendor that encourages teamwork, where both agencies are committed to forming a successful partnership. Finally, the hiring agency should put into place methods for capturing, communicating, and managing issues in such a way that they are understood by all involved and can be resolved quickly.
The techniques identified in the analysis of this study should be carefully selected and applied based on the characteristics of the project being outsourced. To apply all of these techniques to a small, single-vendor project would likely create more overhead than value. However, some subset of these techniques is likely to be valuable for most projects. For example, the analysis shows that the gathering of complete, measurable requirements to feed the RFP process is likely to be of value to any project because it helps a prospective vendor to provide an accurate bid. However, only large or critical projects need to go through some sort of independent verification and validation process.
Furthermore, within the bounds of a single project, there should be some flexibility with regard to the contract management techniques applied. As the relationship builds, and trends of success or poor performance can be identified, the need for stringent contract controls may diminish or increase. Although the task of managing an outsourced software development effort should not be taken lightly, research presented in this paper shows clearly that, through the application of appropriate management techniques, the outsourcing relationship can be a successful one.
(Selected citations only)
Research Paper Author: Lorena Lambert2005 AIM Graduate, Senior Project Manager, Oregon Department of Transportation
Abstract: As society's reliance on technology spreads, a growing number of organizations have turned to software development outsourcing to augment their available resources. Using the Capability Maturity Models for Software Engineering and Software Acquisition as a framework, this study identifies practical contract management techniques based on recommendations in selected literature (1990-2005). These techniques are intended for application by project managers to effectively manage the progress, quality, and coordination of work in outsourced software development projects.