HACKER Q&A
📣 throwconsultant

Client not happy after software consulting, what to do?


Hi Everyone,

Posting on a throwaway for anonymity.

I recently finished a 3 week engagement with a client. Everyone was happy when I was working there and I did not feel like I was the lagging person and we reached the deadline, but when I start to bill, all of a sudden they told me I did not do a good job.

We had a deadline Oct 7. I was to implement a service that would consume data and expose the data out. The data was several GB and it wasn't clean per se. So there was a part where data had to be cleaned but the data was never clean before launch so we had to release a small subset.

I am now being blamed for failure to launch with all the data, I bill at $5000/week and they thought I only did 1 1/2 weeks of work on it although my git history says otherwise.

What's sad is that I did my job according to their proposed scope, and finished it. And when I was there, I didn't feel like I was the bottleneck.

I did not have a concrete statement of work because I did a previous engagement and was successful. So this time around I trusted them and we "winged" the project management but they obviously had other expectations.

What do I do?

Thanks YC people!


  👤 oblib Accepted Answer ✓
First I'll offer you learn from the experience.

1. "I did not have a concrete statement of work because..."

This was your mistake and there's really no good excuse for it. The lesson here is always spell out exactly what you are going to do.

2. "The data was several GB and it wasn't clean per se."

You should have alerted them to this issue as soon as you found it. Had you provided a detailed statement of work there'd be no disputing that cleaning the data was outside your scope of work.

3. "I did my job according to their proposed scope".

If the data you were working was never clearly defined there's a fuzziness as to what that scope was. They, it would seem, expected you to clean the data.

If they provided a sample of the data you'd be working with that didn't have any noise in it you may have some ground to stand on if you took them to court, but that's probably still not very solid ground to stand on in court if, in discussion, they implied it wasn't really a "sample" as opposed to a "rough example".

At some point, if the work order was clear, you should have informed them you were having issues parsing the raw data because it was not what they described. If you did that it would help your argument.

All that said, they were paying you a premium to get it right in the time allotted and you didn't deliver. Sometimes you have to suck it up and take the hit and learn from it. This may be one of those times because of #1.


👤 codingdave
As everyone else has said, lesson learned on always having a written SOW, and/or a contract.

Now you have a couple choices:

(Insert standard IANAL disclaimer here.)

1) Contracts do not have to be written to be binding. If you had a verbal agreement that amounted to a contract (specific details you would provide in exchange for specific compensation at the least), and you feel you met your side of it, you can bring in an attorney to argue it. Of course, this is the nuclear option, and may not be worth the trouble or damage to the relationship.

2) Sit down and tell them your side, and ask them to compromise on a deal that you both can live with. This may mean less money from them, or more work from you, or both. This may be the healthiest option for the relationship, but requires some negotiating skills.

3) Just accept what they give you. This is bad for you in multiple ways, but is the simplest and easiest answer.


👤 codegeek
"I did not have a concrete statement of work"

As others have already pointed out, this was the biggest issue. You can "wing" a few smaller projects but when it comes to high dollar stuff, you need more concrete SOWs. In software development world, concrete anything is hard. But you have to still try and ensure scope and client expectations are clear.

I know that you have learned your lesson already. But just to reiterate, a good consulting gig is 90% about setting the right scope and expectations and only 10% actual delivery (my opinion). So spend more time upfront setting the expectations before you do any actual work.

One approach is to make it milestone based. You deliver milestone x, you get paid $y. To test your clients on how they think, keep the first milestone short that can be delivered quickly. That will give you an idea of what is success for them.


👤 seanwilson
> they thought I only did 1 1/2 weeks of work on it although my git history says otherwise.

> all of a sudden they told me I did not do a good job.

> this time around I trusted them and we "winged" the project management

Sounds like a series of miscommunications you'll just need to put safeguards in for next time e.g. use a planning board to keep track of what's been done + what needs to be done, agree on how time will be tracked, meet more regularly to review progress (especially at the start of the project). Best not to beat yourself up over it and just learn from it instead - nobody's perfect!


👤 jdauriemma
What does your contract say?