Colin's Journal: A place for thoughts about politics, software, and daily life.
Tim Bray’s assertion that IT professionals are implementing Enterprise Systems wrongly is a fairly seductive argument at first. The one sentence summary of his argument is:
The community of developers whose work you see on the Web, who probably don’t know what ADO or UML or JPA even stand for, deploy better systems at less cost in less time at lower risk than we see in the Enterprise.
He goes on to list companies such as Facebook, Google, Twitter, etc as examples of doing it the right way.
I don’t agree with his analysis. As commenters to the post were quick to point out, comparing a list of failed enterprise projects (including ones such as the NHS National Programme for IT that stretches beyond software solutions) to those few internet firms that have thrived is not instructive. For every Twitter (rumoured to be barely making a profit) there are hundreds of failed internet start-ups. IT department do not have the luxury to fail projects as frequently as start-ups fold. While governance of enterprise projects is often slow and cumbersome, it’s designed to improve the odds of success above this base level.
The assertion that UML and other enterprise IT tools and techniques are not used by internet firms is unsubstantiated. A quick search reveals that Google, Amazon and eBay have the enterprise role of “architect” among their job descriptions. I suspect all of the mature internet firms have similar roles, and use many of the same enterprise techniques as more traditional institutions.
As Erik Engbrecht points out, comparing the legacy-system ridden architecture of a typical enterprise to the “internet app is our company” environment of Twitter is also not useful. In many cases the quick dirty approach used to develop internet applications is the technique that creates the spaghetti architecture found within many enterprises.
There are undoubtedly lessons from internet companies that could be learnt by enterprise system professionals. Many of the technologies used in the enterprise are overly complex in comparison to internet based solutions. For example the poor use of SOA while integrating systems brings additional cost with limited benefits. However such learning is not a revolution, and will not reduce the complexity of implementing enterprise systems substantially.
Email: colin at owlfish.com