To provide some context, my company outsourced a software project to a third party agency, against my recommendation of not doing so. The Agency delivery has been very poor so far in terms of quality and time. They have delayed the delivery from the initial 3 months period to a further estimated 9 months. We are now in month 7. Most of the delays have been justified by the agency to technical refactoring of things they have done wrong themselves.

In the meantime a former decision maker is still with one foot in, owning the communication, until the agency delivers, he de-scoped features that will need to be built in-house after delivered.

I am in charge of decision making now, I stepped in one month ago and after gathering all the details, I predict further refactoring and delays coming from the agency. We currently have no development resources in-house, but we can get if necessary.

What would be the wiser thing to do in order to get this project to good terms? In-house hiring plus a forced project take over ASAP? Make use of the capital invested, let the agency finalise the project and spend further months refactoring in-house? Any other ideas...?

5 Answers 5


Might be too broad to be answered, but I'll give it a crack.

First, by

In the meantime a former decision maker is still with one foot in


I am in charge of decision making now

I assume you mean that there's a highly-placed employee that is still interested in the project, but no longer has authority. So, first thing is to touch base with him to ensure you're not going to be stepping on toes.

Next, take a look at the contract. See if you can get access to what's already been written. If you can, then get it and then look a the situation afresh - keeping in mind that you should never chase sunk costs. Choose what will cost you less - refactoring their code or starting from scratch.

If you can't, then you instead need to choose what will cost you less - waiting until they stop holding your code hostage, then refactoring their code. Or starting from scratch.

You may need to renegotiate the contract.


You need to get VISIBILITY into what's happening there.

Right now you seem to be mostly blind to what's going on and you are forced to trust this external provider. A 3 months estimate turned into a 9 month one. Any chance for the 9 month estimate to later turn into 12 months?

Check your contract and see what the agreed deliverables are. Do they deliver binaries? The source code? What do you own and what do they own? A lot depends on what's written in the contract you have with them.

Then, depending on the contract, get as much as you can from them NOW. Then have someone you trust in-house to have a look at it. Only then you will know what to do (throw it all in the trash and rewrite, salvage what you can by refactoring, keep some parts and rewrite some others, let them finish it, etc).


Nine months or even three months without any delivery is already a red flag. De-scoping in order to meet a deadline that is still months away also seems like a poor way to manage a project.

However, extracting the project from the agency, attractive though that may seem, would surely incur some significant risks and costs. Firstly, understand what is their plan for acceptance testing and see if it can be brought forward. It ought to be in everyone's interest to start user testing sooner rather than later. If at all possible within the terms of their contract, get them to agree to iterative delivery. Presumably they will need to do multiple releases to allow for defect fixing anyway. Getting them to work on fixing defects in what already exists may be better than continuing to build new functionality. If you do own the source code then you can always exit from their contract at a later date.


As others have indicated, your contract should detail how to resolve a dispute with your vendor and you're on the hook to follow those terms. My first action would be to work with the vendor so I can attempt to understand the true health of their work; I would provide them with a deadline of a few days to bring forth verifiable evidence of what is completed and what remains. If they are unable to provide that in a few days, I would presume they have nothing to show for the time that has already elapsed. My second action would be to invoke the terms of the contract to being termination for cause. Hopefully, the terms of the contract would minimize the payments you would need to make to the vendor and perhaps to means to attempt to recover what ever you paid to date. That decision would require court action, I suspect, and I would recommend such action--depending on my findings--to your legal counsel and superiors.

Then I would begin scoping out a new contract and do the normal things one would do, such as a refreshed business case and ROI evaluation, to support a new project.

As @Sarov indicated above, do not chase sunk costs. The contractor's performance to date is poor and the likelihood that you could fix that is quite low. Consider the time and money sunk and then start fresh.


As you yourself mentioned, you don't want to continue working with this 3rd party and you don't want to lose the work already done.

Firstly you need to ensure that the 3rd party has created - or will create - some minimal technical documentation. Technical enough that somebody could use it to tweak the existing system. (Of course you want more than that, but keep your expectations realistic.)

Secondly, you want to ensure that you have an updated version of the source code; hopefully, this means simply setting up a mirror for their version control. You need this for all 3 of the scenarios below; as a safety net and as a pressure system.

Then you want to start planning a handover with them. This could be to an inside team or another 3rd party.

Once the 3rd party realizes you plan on dropping them, one of 3 things will most likely happen:

  • Best case scenario: They get worried and become more professional. That would be great as you may be able to continue using them.
  • They realize this isn't working out and finish off the project and do a proper handover in order not to ruin their reputation.
  • Worst case scenario: They get upset and refuse to cooperate. They may even try to wreck the existing work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.