|Think about Loose Coupling|
Re: How to convince a client to release Perl code to CPAN?by roboticus (Canon)
|on Jun 22, 2007 at 12:08 UTC||Need Help??|
I think the way that I'd argue your case would be something like:
Suppose your company makes spatulas. You have to have machines to build your spatulas. These machines are definitely proprietary, as any innovations would help you build your spatulas better/faster/cheaper. But these machines are made of motors, screws, wire, brackets, etc.
Suppose you're building your own screws for your machines. Chances are, you're not building them as cheap as possible, and probably not to standards. (After all, you guys make spatulas and are interested in screws only to the point that you can make your machines.) Also, it's unlikely that your machines will interface with new machines you want (such as one that puts your spatulas in indestructible plastic-wrap). So you have quite a lot of effort invested in making screws that (a) aren't as good as they could be (i.e., they could fail in unexpected ways at the worst possible time); (b) aren't standard (so you have to do even more work building things to interface your machines with others); (c) have a much higher unit-cost than screws you could get off the shelf; and (d) aren't critical in any way to the process of building spatulas.
How do we address this?
If you give away your screw-making process, then others have the option of looking it over and make improvements at no cost to you, which helps case (a). If others use them, you build a community standard so your machines will more easily interface with others because you're using the same fasteners as other companies, mitigating case (b). Someone may decide to be a screw specialist and make great screws, and because that's all they do, they'll bring the price down (the better to crush their competitors), alleviating case (c). And none of this will impact your manufacture of spatulas, with the exception that the personnel who used to be making screws can be improving the parts of your spatulatronic genesis device that are critical to the arcane art of riveting flat flexy metal bits to handles.
So if others use your CPAN module and improve it, you can only benefit. If no one uses it, you get the benefit of putting your module into good order (since it will be in the public eye), and you get the benefit of always having a backup of it!