Prevent Project Failure
- Don’t be a hands-off client
- Constantly communicate project goals
- The vendor’s goals always differ from the clients
- Don’t expect the team to ignore the vendor’s goals
- Work with the team to establish the goals of the project as an equal or greater priority
- Transparency is especially important in an outsourced project.
Estimate the Work
- Vendors often estimate the work as part of contract negotiation
- This happens before the team is assigned.
- When the project team is assembled, it may be necessary to re-estimate the work.
- Unrealistic estimates cause projects to fail.
Actively Manage the Project
- A hands-off project manager is usually surprised when the software is delivered
- And the surprise is never a pleasant one.
- It’s not enough to just have weekly status meetings with no follow-up
- Project managers need to know the team.
- Just like an in-house project!
The Vendor’s Management
- Build a relationship with the vendor’s management
- If they don’t support the project manager’s goals or trust his decisions, the project will likely fail.
- Don’t allow the vendor’s escalation process to interfere with the project.
- Make sure the management at the vendor recognizes and rewards good work.
The Project Team
- Build a relationship with the team
- A project manager doesn’t have the same kind of relationship with the team that he would with a team in his own organization.
- The project manager isn’t always right! The team does not report to him.
- Gain credibility by making good decisions.
Collaborate With the Vendor
Plan and manage the project scope
- The project starts with a scope and a budget.
- As opposed to an in-house project, which starts with a set of known resources.
- Plan for knowledge transfer.
- Recognize that success for the project manager and success for the vendor are often two different things.
Maintain Tracking and Oversight
- Don’t depend on the vendor to maintain the project plan and project schedule
- When a project manager is responsible for the project, he/she must keep track of its status himself.
- Hold reviews and inspections
- Use a collaborative inspection process that has been optimized for outsourced projects.
Design and Programming
Don’t delegate the entire design and programming of the project to the vendor
- Establish design constraints early on.
- If possible, design the software in-house, or in collaboration with the vendor.
- Monitor the code base using code reviews and project automation.
Take responsibility for the quality of the software
- Quality is not just another deliverable that can be bought and paid for.
- Don’t make decisions that undercut the QA team.
- Ensure that adequate time and budget is allocated for test planning and execution.
Don’t Blindly Trust the Vendor
Even though individual team members may have certifications or degrees, it doesn’t mean that they are competent. Just because the vendor’s organization is certified, that doesn’t guarantee that they know better than you do how to run your project. Don’t be intimidated by the vendor’s pedigree. If something on the project looks wrong, it probably is!