Managing a software project can be a daunting task. Even more so for outsourced projects. So what can you do to ensure your next outsourcing project does not fail?
Managing a software project can be a daunting task. Even more so for outsourced projects. So what can you do to ensure your next outsourcing project does not fail?
Is outsourcing right for your company?
There are many reasons why you might want to outsource a software project. The more important question is: should you? Can the outsourcing company do the project better than your company? How about cheaper?
It goes without saying that if you were to ask your in-house team they would give you three resounding No’s. So how can you decide whether outsourcing is right for your organization? The simplest way is to assess the capability and economic gains from the agreement.
Each organization will be different. Some large corporations may conclude that they have enough internal experience and numbers to negate the advantages of outsourcing. Others may decide it is a strategic advantage to offload non-core competencies to an expert partner.
Meanwhile small or medium-sized enterprises would prefer to outsource rather than build it themselves. Others may be more cash-flow sensitive and may prefer to work with their in-house team.
How do you determine capability?
Many companies will find that outsourcing partners can reach a level of quality which they could only hope for. Not only that, they are able to do it twice as fast. They only seem to do it once whereas it may take internal teams many iterations to get it right.
If there is a company out there that has an excellent track record and you are looking for what they offer then why wouldn’t you make the call?
What’s the economic argument?
It’s simple. If the outsourcing company can do the work for less than you can do it yourself, why would you not use them? Doing so leaves you with more money to do other things.
Apart from their cost, you may examine their productivity. It may be possible for an outsourcing company to get you more output for the same cost. Perhaps they’ve been doing it for many other clients and for some considerable time. Or they may have streamlined the process so that they have found a way of “mass‐producing” their service.
Define the requirements
The most common reason projects fail is due to incomplete, inaccurate and changing requirements. These requirements become part of the legal contract between you and vendor. Because of this, an outsourced project has a strong need for high-quality requirements.
Unfortunately, the reality is that requirements are usually insufficient. Regardless of how much effort goes into them. Requirements are seldom perfect and have a tendency to change. This is a big problem when your entire project relies on them. When requirements aren’t perfect, it can lead to conflicts in the future.
Agile came about as a “solution” to these problems. Instead of a sequential design process, agile follows an incremental approach. It takes into account your evolving needs. It expects changes and promotes collaboration. Instead of agreeing on a set of requirements, the client and vendor agree on a price and timeline.
Create the outsourcing contract with care
The contract should spell out how the engagement will be carried out. It’s how both parties know what they are getting into. It’s important for them to understand and agree to the terms ahead of time.
So what should you look for?
The first thing you should understand is how the vendor will handle requirements. How will they deal with changes? Can you add more requirements during the project? When contracting a firm, these requirements become the basis for managing the project.
Another thing to look for is how the vendor will comply to an agreed level of quality. Also, how will they deliver the project on time and what happens if it’s not. When the contract is complete, who owns the code? When is the project deemed complete and how will they deliver it? These are all important questions to think about before agreeing to a contract.
Actively manage the outsourced project.
One of the most common problems with outsourced projects is that no one on the client side manages it. Outsourcing may reduce the amount of management needed. Be that as it may, control systems still need to be in place to ensure the project stays on track.
To improve your odds, you need to appoint a project manager. The manager is in charge of monitoring the vendor’s progress and resolving any problems that may arise.
Tracking the progress of outsourced projects is not as simple as internal ones. As a result of this, we need more formal controls. Both parties need to agree on the management controls to track the project’s progress. For example, weekly updates on status, risks and completed functionality.
Along with regular reports, releasing software early and often also helps. Continuous delivery is an approach in which teams create software in short cycles. This approach delivers business value quickly through stable, frequent releases. It also improves the quality and fit of the product thanks to regular feedback.