I'm the primary author of an open-source software program. I was contacted by a client who wished to contract me to add a (major) feature to the program so that it could be used in their company's application.

I estimated the amount of time it would involve (about 2 months fulltime) and multiplied by my consultant rate and gave the client the number. The price seemed high to the client, so I suggested that we divide the task in half: I would do some supporting and enhancing work on the existing program first (and not bill them for this part), and I would then work on adding the feature which should then be faster and easier. And this seemed like a good plan to the client. This plan would take more time overall (up to 6 months) but reduce the price tag for the client.

So I worked on the first half for a few months (still with no contract) and then reported to client that I was switching gears and starting the clock. A few weeks in, I had a prototype and sent client some sample input and output and described the remaining work.

Then I ran into complications. The feature is governed by an international Standard and one small part proved to be very complicated and tricky. I have kept client up to date on all these details.

But now I've overrun my timeframe (3 months on the billable half, 8 months overall), and more complications have cropped up and it may several more months of painstaking effort, with steadily less prospect of getting paid for my hours. The conversation with client has shifted to the licencing cost of other commercial software, which are all lower than my initial price.

But the kicker of the story is there exists GPL software which they could simply used for this[1]. It's going to be much more expensive to get the quality of output from my program up to the level which this GPL program already produces.

So I sent the client an email suggesting that they do this, and they could use my program as a means of demonstrating that they are using the GPL program in the correct and legal manner. They could use my program for this in its current form without my needing to finish the work on refining the output quality.

And the client mailed me back saying they were much more interested in linking to a library for "performance and maintanance reasons".

How can I

  1. Just be done with this
  2. Convince them that the existing GPL software really is perfect for them if they can give up their attachment to linking with it
  3. Get paid


[1] There are a handful of specific requirements for using the GPL software without purchasing a commercial licence all of which are met by installing normally from a Red Hat or Debian package and using the GPL software with a shell-out rather than linking to it as a library.

  • Just to clarify, have you been paid already? – Lyndonia Jul 18 '18 at 9:36
  • No, but I also haven't delivered them any software yet, just sample inputs and outputs. – luser droog Jul 18 '18 at 19:18

I am afraid that by mentioning the GPL, you saw the branch on which you are sitting. IMO, the first priority is to get paid. As there seems to be a contractual agreement with them, they have to.

Stop any work until payment. Then suggest your services for integration of that GPL solution. As this is a new task, feel free to raise your fee (after all you want to get rid of them, so you have nothing to lose).

They will probably put pressure on you by retaining money, but stay firm: you worked, you must be paid. The fact that there is (possibly) no official written contract doesn't matter. You can (hopefully) prove from communication with them that both parties agreed on a task, which you performed, and a cost, which you announced.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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