2

(Not sure if there was a relevant stack exchange site for this, I saw a few ones related to open source in companies and figured this was similar, but different enough to warrant a new question).

We have a client that we're about to pick up for some work. We've gone off and done the exploration for their product and come to the conclusion that we're going to need to use a particular open-source library.

This library is in active development, and the author is taking contributions, however there are a few features that we'll need that haven't been built yet (and they aren't of immediate importance for the author). We've figured it'll be possible for us to build them into the library ourselves, and we would love it if we could contribute our changes back to the project. (We've tried to be active in Open Sourcing our own work when we haven't been developing it for a particular client).

However, we feel that it could be difficult trying to convince the client that a reasonable portion of the work they're paying us for will be given away for free to anyone else who wants it. It's also unlikely that we will be able to use this library again for future client work so we can't really afford to take the cost on ourselves.

Is it worth raising this possibility with the client and if so how? Or should we simply give the client our own private version with our changes?

  • What's the advantage for the client to open source? – Luc Franken Jul 28 '16 at 6:33
  • @LucFranken The only one I could think of is that the library will likely continue to be supported which could prove itself useful for them. I was wondering if there was anything useful here in general? – SCB Jul 28 '16 at 6:38
  • Does the licence require you to contribute changes back? – JacquesB Jul 28 '16 at 8:20
7

If the OS project is in active development, and you create a fork with your own custom modifications, then you can't upgrade to future versions of the main branch. Depending on the project this may be a big issue or a non-issue, but what if bugs or security issues are discovered and fixed in the main branch of the library? If you need to do the custom modifications anyway, contributing back is a net win for maintainability.

If the client is not immediate interested in OSS, you should avoid the ideological arguments ("contributing to the community" and so on), but just inform the client that you have to do the development in any case, and contributing back will make maintenance easier in the future.

  • +1 I would change only that the client should be informed that contributing will likely decrease costs. People don't always make the connect that "making maintenance easier" translates to "lower cost." I would go so far as to call this a risk. If there is a significant change to the library and then need to upgrade to it, the work required to get their custom code working on that new library may cost more than the original project. – JimmyJames Jul 29 '16 at 18:19
1

we feel that it could be difficult trying to convince the client that a reasonable portion of the work they're paying us for will be given away for free to anyone else who wants it

You are already doing this, its just that most of the code has been pre-written already.

That's the point here, they get all that work for free, but they will have to pay a bit extra for the extra work to fulfil their requirements. You could use a new library, but then the cost would be double as you re-implement everything in the OSS lib.

Be open and honest about this stuff with the client, when you explain that they get the majority of the work done for free and are just paying for extra bits specific to them, they'll be happy. You're more likely to have to explain why OSS is good, and why its not viral and going to turn their entire company to virtual dust. After all the media hype from companies who want to kill of OSS in order to sell more proprietary stuff, this might be a big ask.

  • surely the question is not about whether to use the library, but whether to contribute back the changes they make to it or whether to create a private fork – Ewan Jul 28 '16 at 8:11
  • @Ewan same difference - using an OSS lib isn't any different from using an OSS lib + custom changes, the customer still has the OSS lib. They are also billing for the work that is done, and that isn't any different whether they used an OSS lib or wrote their own. – gbjbaanb Jul 28 '16 at 8:41
  • The difference is the changes would be closed source and not distributed – Ewan Jul 28 '16 at 11:50
  • @Ewan that depends on the OSS licence - if you hand it to a client, and its GPL, then you are obliged to release them as open source. – gbjbaanb Jul 28 '16 at 15:06
  • I think we can assume the OP will obey the law. I just think you have misunderstood the question ie "Or should we simply give the client our own private version with our changes" – Ewan Jul 28 '16 at 15:53
-1

From what you've said, I would not raise this issue with the client.

Clarification - And don't contribute the code changes back to the project as you dont own them and havent got permission from the client

In my experience non programmers can have a negative view of open source products and it can be fully justified.

In this case, instead of hearing 'in active development by a single developer' they might hear 'unfinished project done by some unknown teenager in their bedroom' and question your choice of the library. Perhaps raising uncomfortable questions about future support.

Don't misunderstand me, I would still use the library, list it under '3rd party software used' etc but its not something to wave in the clients face.

If it was a well known project it might be worth contibuting for the qdos and bragging rights, but then you would have to take on the cost yourself rather than bill the client for it.

Another alternative might be if you can neogitate ownership of the code. It sounds like you might have your own libraries you use across projects which presumably you licence clients to use as part of their code. Adding features to these in order to support a project would still be billable work in my view. So if the library can be included in this group you would be free to contibute back to the project

  • 2
    I would always raise the issue with the client - depending on the contract you have with them, they could own the copyright, so submitting it to the OSS project could turn quite, quite bad. However, if the bill is for your time developing though, it'll be OK. – gbjbaanb Jul 28 '16 at 7:41
  • Yes. Dont raise the issue AND dont contribute – Ewan Jul 29 '16 at 9:38

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.