Given the complexity of today’s projects, the days of delivering a pile of requirement documents to your contractor and then hoping for the best are over.
A common characteristic of successful outsourced projects is the close collaboration or partnership formed between the outsourcing organization and the contractor. This collaboration occurs on many levels and does not happen by accident.
The RUP and other modern iterative development methodologies have gone a long way toward helping software developers build software better and faster. Yet not much attention has been given to the relationships formed between the outsourcing organization and the contractors.
Most literature I have encountered discussing the RUP seems to assume that the entire software development team (and, in most cases, the customer) belongs to the same company or organization. This is not the case in an outsourcing situation.
Large projects may involve a number of contractors in addition to the outsourcing organization itself. Even when an organization outsources a project, it still has significant involvement. The purpose of this chapter is to assist those in the outsourcing organization who may be embarking upon their first outsourced project. This chapter defines the key roles in the outsourcing organization’s staff and how they can interface with the contractor to increase the chances of success on projects. It also explores the key activities of each role.
This helps the project manager in the outsourcing organization plan the staffing of his organization. Finally, some practices should be established as part of forming a Project Management Office (PMO) in an outsourcing organization.
Key Roles Defined
This section describes the key roles in an outsourcing organization. Depending on the project’s size, some of these roles may be shared by the same person. Also, some roles may be needed in only certain circumstances. These roles are the project manager, lead user representative, PMO project architect, internal project champion, contracting officer, and IT manager. Figure 4-1 identifies these roles in relation to the project manager. Let’s examine each of these roles and how they interact with the contracting organization.
Roles in the outsourcing organization
The Project ManagerCertainly one of the most common and familiar roles is that of the project manager. This role is required for all projects. The project manager in the PMO has different responsibilities than one who manages software development directly (such as for the contractor). However, the position is similar in that most of the activities involve making sure all members of the extended team are engaged in the proper activities at the right time.
In essence, the project manager serves as a “traffic cop.” The next section lists and discusses the responsibilities of the project manager for an outsourcing organization.
Responsibilities of the Project Manager for an Outsourcing Organization
The responsibilities of the project manager of an outsourcing organization include the following:
Ensure that all contractual mechanisms are established and in place to permit all contractors, subcontractors, and consultants to perform their work.
The project manager should examine each Statement of Work (SOW) to ensure that it clearly specifies the responsibilities and tasks of the applicable organization. This is not a one-time task. It’s not uncommon for the nature of a contractor’s tasks to change during a project, particularly on long-term projects. The project manager should take the initiative to review these SOWs periodically and, if necessary, involve the contracts personnel to modify the SOW as needed. This is of great importance to contractors.
At the conclusion of the contract, some organizations (particularly in government projects) rate the contractor’s performance against the tasks listed in the SOW. The tasks listed must be an accurate reflection of the actual work performed, or the contractor risks getting a poor performance rating.
The project manager must arrange for the user community to work with the contractors so that they are available to help determine the project’s requirements. This generally involves a representative (or group of representatives) meeting with the contractor analysts to discuss the business process and the specific problem that needs to be solved. The project manager should ensure that these user requests are properly documented and recorded. (This artifact should be listed in the contractor’s SOW.)
A good project manager ensures that users are available whenever needed so that the contractor doesn’t have to chase them down. The more efficiently this process is, the more likely it is that the requirements artifacts will adequately capture the users’ needs.
The project manager monitors contractor performance, typically through a number of different methods:
- Regular written status reports
- Periodic status meetings
- Monitoring of Earned Value calculations, perhaps once a month
- Monitoring of other trends, such as defects, requirements, and enhancement
On most contracts, especially fixed-price contracts, users have a tendency to request everything and anything they anticipate needing to perform their work with the software to be built. In fact, they probably have been encouraged to do so. Despite this fact, a finite amount of time and resources is available to the contractor, and the contractor may not be able to accommodate every request. The project manager in the outsourcing organization should serve as the mediator to help the users narrow down their “wish list” to an amount that the contractor can accommodate.
In other words, the project manager should prevent the contractor from having to negotiate directly with the users in this regard.
The project manager needs to inform the contractor exactly what its responsibilities are when development is complete and the software is ready for production.
Typical issues that the project manager should consider
The following are some typical issues that must be dealt with:
- Will a formal User Acceptance Test occur? If so, when will it be conducted, how long will it take, and who will have the authority to sign off on the results? What will the contractor’s responsibilities be during this test?
- Will there be a “pilot” period or a “beta” release where users can try out the system before depending on it for production work?
- Must the product meet any security standards? Who will conduct the evaluation? What are the criteria for passing any applicable tests?
- Who will conduct any applicable training? Who will produce the training materials?
- If the system under development is replacing another system, is any data migration necessary?
- Will a Help Desk be set up by the organization operating the software, or does one already exist? Who will train the Help Desk staff? Is any special documentation required for Help Desk personnel?
- Who will maintain and troubleshoot the software if this is not already accommodated for in the existing contract?
Project managers also need to help manage change. For software projects of significant size, project managers should set up and chair a Change Control Board (CCB). The participants on the CCB should include the contractors (project manager, analyst, and technical lead) and lead user representatives.
The purpose of the CCB is to analyze change requests, prioritize them, and agree on what is within the project’s scope. The CCB should also agree on what constitutes an enhancement not covered in the work’s original scope. Although this is an important function, it becomes even more vital when multiple contractors are involved. Multiple subcontractors could all be affected by a proposed change. Depending on the nature of the contract, subcontractors have a tendency to focus only on what is in their own SOW. In other words, there may be little communication between subcontractors.
The CCB is an opportunity to discuss and resolve how the change may affect each contractor’s work.
Finally, project managers are responsible for the project’s financial performance as well. Is the project on schedule and within budget? Is the outsourcing organization receiving a good value for the money spent? In this capacity, the project manager works closely with the contracts officer to be sure proper accounting practices are being followed and that the financial milestones are met.
Attributes of a Good Project Manager for an Outsourcing Organization
Good project managers need the following qualities to be able to function well:
Knowledge of software engineering standards that are applicable to the organization, such as the RUP, CMMI, and PMI.
Ideally, experience as a software developer, IT manager, and end user. You may not find someone who has been all of these, but experience in as many areas as possible is helpful.
Experience managing enterprise software development projects. If an experienced individual is not available, a strong support system, including a senior project manager that can act as a mentor, must be available.
If development will take place overseas (offshore), experience with the culture, business customs, and language of the country involved is very helpful.
The ability to manage and negotiate with stakeholders who have opposite goals (such as users who want the maximum functionality possible and contractors who want to be able to deliver on time and make a reasonable profit).
An understanding of and experience with supporting organizations, such as IT, Training, and the Help Desk.
A demonstrated ability to motivate people is a requirement. Any software project has many stakeholders, and there are times when the project will run well and other times when problems occur. The ability to motivate when the situation is difficult is one of the most important attributes of a project manager.
A demonstrated understanding of managing a business. Understanding profit and loss, hiring the right people, and so on are important skills.