Wednesday, January 2, 2008

Open Source Antipatterns: How to hurt yourself with open source (2)

OK, so it's been a while since the first post in this series... Maybe there's an open source antipattern lurking? :-)

The second antipattern I'd like to describe deals with the costs of developing in open source. Since open source software typically can be redistributed freely (within the terms of use in particular cases, YMMV), somehow otherwise savvy tech and business people jump to the conclusion that open source is free. Free to develop; a sort of perpetual motion machine for creating software! Money for nothing!

But, of course, it does cost something to create open source software, even if the end result is made freely available. That's probably obvious (once the hype fog mentioned above clears). But, here's a secret: developing open source software makes you incur costs that you would have otherwise avoided if you decided to create the software some other way (say, for example, the standard closed-source model). That's not to say closed-source development doesn't have costs (potentially) avoided by open source-development, but rather the costs associated with open and closed-source development not always the same. To further complicate the picture, many open source initiatives are taken by employees on behalf of their companies, and so -- if you're not careful -- you can end up incurring both open source and closed source development costs for the same component! (Though, unless you try really hard, you probably will not incur all the possible costs associated with each.)

So now the antipattern: Not understanding the cost structure discussed above before embarking on open source development. Next, you (or worse, your boss!) discovers the open source-specific costs, and things get unpleasant. One way of helping the situation (aside from understanding the cost structure in advance) is to isolate the additional, open source specific costs and seek to share these specific costs with the community.