[development] Convince Client to Release Code
larry at garfieldtech.com
larry at garfieldtech.com
Mon Jul 13 16:43:45 UTC 2009
As others have noted, the time to be having this conversation with a
client is before any work is done, not after. Your contract (which you
want to have, period, even if it's a friend, and this is why) should
specify who holds the copyright on any code written for the project.
For Drupal modules, whoever holds the copyright is required to
distribute it under the GPL... *if* they choose to distribute it. There
is no legal requirement in the GPL that any of the code you write ever
be given to anyone but you and the client, just that if one of you does
so that it is under the GPL.
Most sites include some widely-used general purpose modules, some fringe
special purpose modules (either custom written or not), and some
site-specific one-off code that, while still GPL, is really not useful
to anyone else. How much of each varies widely with the site. There's
really no value to distributing the latter, and I'd argue that putting
that on Drupal.org is a net-negative as it just inflates the number of
modules and eats up valueable namespace. So any code that is not
generalizable you shouldn't bother distributing anyway.
For any code that is generalizable, I think the most persuasive argument
is that, especially for a hosted solution like you describe, *code is
not what differentiates him in the market*. It's the service he offers.
Code is incidental to that. If people want to replicate his service
and compete with him, replicating his service will be harder than
replicating his code.
If the code is not that important to the service, then he loses nothing
by releasing it. If that particular functionality is that important to
the service, then someone else trying to compete with him will replicate
the code that provides the functionality, release it, get the karma and
good will of doing so, which means the free support and increased
likelihood that someone will answer questions when he has them, etc.
The free, shared version of that functionality will eventually become
better than whatever your client's hidden version is, so his competition
will have *better* code at their disposal than he will, and he'll be
stuck with code that no one can support except him that is worse than
the publicly available, shared version. That's the worst possible
situation for him to be in.
Sometimes, releasing code does help your competition. Any Drupal
consulting shop that releases modules or makes patches to existing
modules is directly benefiting other consulting shops that they may end
up bidding against on a client. And those shops are doing the same in
return. With enough shops doing that (and there are), you're still
getting more free code and functionality than you're giving away.
Everyone is perpetually in "code debt" to the larger community in terms
of code given away vs. code gotten for free. It also means that other
module maintainers are more likely to consider your feature requests and
patches (even if they have to write them themselves) if they recognize
you as an active contributor. That's what makes open source work;
everyone is in debt to everyone. :-)
Fred Jones wrote:
> We have one client for whom we wrote a set of custom modules. I asked
> the client if we could put the modules on d.o and he balked. I tried
> to explain that he'll get good testing and also bug fixes and new
> features maybe, if others post patches etc.
>
> He feels that he (his organization that is) paid for the work and why
> should someone else now benefit? He also has this idea that other
> organizations like his will want a site like his and he has plans to
> provide a hosted service for them (while this idea may seem
> far-fetched, I do think he has some connections which might make this
> idea feasible).
>
> So he thinks if we release the code, then they will just grab the code
> and use it. I tried to explain that your average layman has no idea
> what Drupal is, no way to figure out your site is running Drupal, and
> if even he got that far, he has no way of building his site without a
> professional to put the pieces together (after they figure what those
> pieces are of course), and then they he would do just as well to use
> our hosted plan!
>
> But he hasn't accepted this. Are there any good arguments we can use
> to persuade him? I feel he has nothing to lose in releasing the code,
> but we have to convince him of that.
>
> Thanks.
More information about the development
mailing list