Enterprise open source as a quality tool

bneijt

There are not a lot of companies who publish any of the source code online. And why would they: documentation takes time, you need to package it some way and the only thing that can happen is that somebody secretly becomes rich from your work. Worse yet, the company may loose face when security bugs are discovered.

In the meantime, we developers know all know to look at open source involvement when we look at hiring. We know that if you publish code online you are willing to be open for suggestions and criticism from the outside world. Further more, if you are able to get patches accepted, you know how to work with a team you have not worked with yet and how difficult it can be to do it right. Working openly will set you open to opinion, and if you think your code is good, why should you not?

I think it should no longer be our secret that public code requires some good aspects from developers, because I think the enterprise could also use this knowledge in large systems.

What will your supplier say if you ask them to publish the code online? No documentation, no issue tracker, no build instructions just the following: the code, your copyright notice, a very strict license, and your and their name with website link.

If they say they won't do it, ask why not. If they say it's a lot of work, they are lying. If they say the code needs to be cleaned up first, they haven't been writing the right code in the first place. If they say it can't be done because of security issues, they might be practising security through obscurity. The exercise in itself can help you get a discussion around: why can't your code be made public.

Last issue you might have, is the licensing. What if competition walks away with your code? Well, thankfully there are very strict open source licenses available you can use to protect yourself from that. For example, if you publish your code using the GPLv3 license, you can be sure that if your competition ever uses your code for a service, they will have to release their new code to their users under the GPLv3 license. This means you will be assured of seeing their changes, if they use your publicized code.

So go out there and discover what is holding your project back from publishing code online.

Comments (1)

  1. ehsavoie - Reply

    July 27, 2012 at 11:48 am

    Hi,
    GPLv3 is not Cloud Compatible, thus I could use your code (or a fork of it) on my cloud app, or on my server.
    Affero GPLv3 would be better.
    The problem that also arise is that you would have to prove that competition did use your code also which (as we have seen in the Oracle vs Google)is not that simple.
    But freeing the code is quite refreshing for our old dev habits, now you just can hide your awful hacks under the carpet anymore. I think this is a far better way to introduce change than any agile coach would be able to do.

Add a Comment