Contractor didn't deliver: how to resolve?
A client recently asked for my input in the following situation: the company works with an external contractor, and the contractor worked for months on a project. When the contractor delivered the project, the output wasn't what had been expected. The misalignment resulted in tension between the company and the contractor, as well as in tension within the company. Now, how to resolve this?
To understand my client's needs, I first asked the client about their exact concern: "Are you interested in resolving the current conflict, or is it that you are concerned about the future conflicts from happening?" I asked because resolutions differ for the two. Plus, my background in conflict mediation is mostly theoretical, so I was hoping for the latter. Thankfully, that's what the client was interested in.
To prevent the conflict from happening, I suggested three strategies.
The first strategy is changing the frequency of the contractor's deliverables. The contractor worked for months in isolation. The longer the isolation, the higher the risk of a discrepancy between expectations and deliverables. An alternative way is to deliver the project in smaller, more frequent pieces. The contractor can start from an embarrassingly simple proof of concept and iterate over it. This applies to both software engineering and design.
Another strategy, which can be combined with the first one, is to flash out the exact description of what needs to be done in a functional spec, also known as a design doc. I learnt about design docs first from this hilarious blog series by Joel Spolsky, as well as from this pragmatic post by Julia Evans.
The third strategy is to focus on the communication aspect. As I wrote earlier, I see the works of Marshall Rosenberg on Nonviolent Communication to be a powerful approach for conflict resolution and conflict prevention. When I follow the essence of the principles–as opposed to shallowly repeating the suggested phrases–I see a notable change in my professional relationships. I believe the same change can be achieved in a company-contractor relationship.
- ← Previous post: Testing asynchronous systems
- → Next post: DynamoDB: key technical concepts & features
This blog is written by Marcel Krcah, an independent consultant for product-oriented software engineering. If you like what you read, sign up for my newsletter