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
- Just be done with this
- Convince them that the existing GPL software really is perfect for them if they can give up their attachment to linking with it
- 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.