Friday, March 16, 2007

Enterprise IT and Business Processes

How successful is enterprise IT? Very successful, most business people would say; look at the boom in US productivity during the late 1990s, or look at the market capitalisation of the IT industry, or even the massive growth in IT-intensive industries such as financial services.

But to truly answer this question, you’ve got to ask what the goal of enterprise IT is – and measured against this goal, I don’t think enterprise IT is successful yet at all.

There are many definitions of what corporate IT is for, but nearly all of them paraphrase “IT is there to enable the business’ processes”. Only once you’ve understood the business processes, should you apply IT to make them faster, better, and cheaper.

There still isn’t a good way to fully document (in business terms) a process, and quickly and easily convert it into a working application, and back again, no matter what the UML / BPEL folk say.

That’s because, ironically, IT hasn’t yet properly automated its own processes. The most basic IT process is the one that starts with a set of requirements, and ends with a working application. This process is very manual and prone to massive cost, scope and time overruns.

We’re missing the spreadsheet of the 2000s, where business users could go in and create a quick application to support their needs.

Neither of the existing approaches (buy a process off the shelf via SAP or Oracle, or create your own using a BPMS) really does it for me. If you want a competitive advantage, it makes sense to stay clear from SAP; and BPMS are still some way off their end goal.

Fortunately, there’s plenty of years left of incremental improvement before we need a breakthrough. In the meantime, enterprise IT will have to get used to mediocrity.

Sunday, March 11, 2007

Virgin Media, BSkyB, and network monopolies

The recent spat between Virgin Media and BSkyB is partly a battle of billionaire egos between the bruising Rupert Murdoch and the self-styled plucky underdog Richard Branson. It's resulted in customer anger as Virgin Media's cable (previously NTL) stopped serving Sky TV channels, in a disagreement over fees.

Now the regulators are stepping in, and they have some very interesting questions to ponder. Should cable companies be forced to open up their distribution networks to competitors?

Of course, this is a question that applies in many industries. Should gas, water, or electricity companies be forced to open up their national networks to competitors? Should telecoms companies be forced to open up their national communications networks?

It's all about preventing monopolistic behaviour. And its a delicate balance - often, for example with water utilities, the technology seems designed to lead to natural monoplies.

But now the interent is starting to shake up the TV industry. It's the new distribution method for video (and much else), and it's very first principle is that anyone can request any URL. So, despite BSkyB buying up ISPs, they can't prevent their customers from accessing YouTube or www.bbc.com. And anyone using Virgin Medias' broadband will still be able to access Sky TV online.

I've already argued strongly that the industry will split between content generation (e.g. Sky TV) and content distribution (e.g. your local ISP). I just can't see what the synergies are for vertical integration.

So perhaps the regulators can afford to overlook the Sky TV spat, in the knowledge that the internet will soon recast the whole problem.

And more importantly, the consumer can look forward to the day when all media is available online, and the media companies won't be able to do anything about it.

Friday, March 02, 2007

XML Events 2.0

The latest draft of XML Events 2.0 contains a new, simple, and very powerful idea - allowing XPath to handle events and even animate elements.

But there are a few ways it could be extended even further.

XPath observers

Firstly, the draft spec hints that the "observer" attribute could in future be used to give any URI, not just from the current document. But it would be far better to allow an XPath statement, rather than a URI. Then you could specify a whole set of nodes. For example, consider:

<.script event="mouseclick" observer="//img">.
  document.getElementById("paragraph2").style.fontSize = "5";
<./script>.
which uses the XML Events namespace "ev" to alter the paragraph font when any image is clicked.

XPath event() function

Secondly, there's a new XPath event() function, which coupled with the new "while" attribute allows for animation. Consider this implementation of drag and drop:

<.script observer="//img" while="event(button) =1" />.
left="event.clientX";
top="event.clientY" 
<.script/>.

Not bad eh, especially compared to mountains of javascript. The new XPath event() function allows you to figure out mouse position and even the time when the event occured - which is very useful when it comes to animation and controlling timing.

<.style observer="//img" while="true()">.
./@css:left = //div1/@css:left + 10;
<./style>.

Note the "style" element - this is just a CSS stylesheet using XPath. It positions each image 10 pixels to the right of the div1 element. If the div1 element is moved, then the images will move to maintain their relative position.

There are two benefits to this approach. Firstly, rather than using CSS selectors, you can use the full power of XPath to indicate the elements being styled. And secondly, you can use all sorts of XPath functions to assign values - like avg() or sum() or even sin().

XPath + XML Events

So I would urge the XML Events authors to extend the use of XPath in their spec. Firstly, XPath should be used in the observer attribute, to allow any collection of elements to be handled. Secondly, please keep the new event() funtion - it's great! And thirdly, XPath should be used to allow the animation of XML values.