Monday, March 15, 2010
Why the vast majority of enterprises still do not contribute to open source...
First, let me get some of my own beliefs on the table. The trend of outsourcing is causing many enterprises to treat IT as a commodity whereby they pursue lower cost, lower quality resources to develop applications. In this model, the ability to have developers who simply intuitively grok the requirements disappears and is replaced with comprehensive documentation and arduous specification. In order for open source contribution to work in this model, it would require the enterprise to specify even more than they have in the past which becomes a non-starter.
We have all heard the phrase that you get what you pay for and outsourcing most certainly is the poster child. You can find many CIOs who talk about getting lower cost resources in India but few if any that believe that the quality of their portfolio has increased since outsourcing. In order for outsourcing to work, you have to lower your standards when it comes to code quality. So, if you have developers writing low quality code, would you then want to have it published transparently for the world to see or would you want to keep it secret?
For enterprises that aren't outsourcing, they have picked up on the latest buzzword known as innovation. The enterprise architecture community has rallied around the notion of assets and is busy inventorying things they think make their business unique. Of course, the most transparent way of measuring intellectual property is via the patent model and therefore the enterprise architecture team is wired to think about not only not being open but making even more things closed.
Find someone you respect and view their resume. Do you see numerous listings for patents on them? Unless making things open is on par with the prestige of making something patentable then open source will also struggle.
Most importantly, one needs to observe the human dynamics within large enterprises where the construct of influence plays heavily into the decision making process. The best way to influence commercial software is by paying lots of money for it while the model for open source may be to either contribute to it or to at least talk about. Ask yourself the question of when was the last time you saw an enterprise architect at a conference talking about open source (other than me)? Is it because the majority of enterprise architects are blissfully ignorant when it comes to understanding open source or is it because they have a media relations policy that forbids them from talking about certain things. You decide.
I of course contribute my time and thinking to open projects such as OWASP and have worked hard to influence the direction of projects I am passionate about including but not limited to the OWASP Top Ten, SAMM and others. Could my boss, just because he is my boss escalate our organizational concerns to OWASP because he has a higher title and expect that it will be considered deeper? You get the point.
Open source is not driven by abstract authority but by credibility and contribution. Sadly, many executives in large enterprises have nothing of value to contribute. Open source is a threat that will be defended against through subversion by all but the few who truly care more about the strategic direction of the business than their own inadequacies.
Speaking of being inadequate, I can say that my very first contribution to open source was enlightening. While I delivered working software that was secure, it failed the higher standard and was mercilessly refactored to the point that only one single line of original code survived.
Code reviews and feedback within most enterprises are cordial, where the focus is more on aesthetics than structure. I remember receiving comments via email saying don't quit your day job and you code like you are an enterprise architect. Of course, I am capable of making fun of myself, but the masses of developers in corporations have yet to receive meaningful feedback on their code and the day this happens, their egos will be shattered.
Ask yourself, why developers write software for large corporations and aren't working at Microsoft, Oracle and so on. In the back of their minds, there is solace in knowing that the only measure is speed of delivery and their bosses aren't smart enough to recognize quality or lack of if it were staring them in the face. Sadly, open source is smarter than them all...
Links to this post: