Monday, December 24, 2007
Why do projects fail in large enterprises?
Have you heard of an operating system named Linux? Did you ever hear of the thousands of contributors piling into a large meeting room to hear the sage wisdom of a project manager? Is the grand Linux comprehensive documentation stored on a sharepoint? I bet if you ask yourself how come open source projects can deliver high quality on time when folks don't even talk to each other, then the problem may not be communication after all...
The model used by Indian outsourcing firms is all about taking otherwise junior IT folks and making them usable regardless of their actual individual competencies. Outsourcing works because they have convinced others that process can become a substitute for competence while open source communities tend to prefer competence over process and hence can develop higher quality software.
Maybe enterprises should stop thinking about open source as a way to acquire products cheaply and instead think of open source as a methodology for software development. If you look at approaches such as Extreme Programming, you may come to realize that notions such as pair programming were created to fix fundamental deficiences in enterprise behavior by encouraging at least one other person to look at code before moving into production. Reality says that more than one person needs to review code in order for it to be of high quality and if only one does, it is more ceremonial than not.
Likewise, in an open source project, the architect is king and folks follow him not because of abstract authority but because of real leadership while enterprises tend to make project managers king whom manage but cannot lead. Architects via stewardship can ensure conceptual integrity while project managers with budgets and deadlines are handcuffed to delivery of perception management at the expense of high quality software.
Maybe open source projects work better than outsourcing because they have better acceptance criteria. If you consider for a moment all of the wonderful standards I have at work, it is still fundamentally easier for me to put crap code into production at work than it is for me to do the same with almost any open source project such as Liferay Enterprise Portal.
Ask yourself, what is the average years of experience for the offshore team working on your enterprisey software and then compare it to average years of experience for open source. I bet you will note that with experience and a desire to participate in a community comes quality...