Tuesday, May 23, 2006

Complexity conservation

There is a thoughtful article by Mike Garrett which has the original notion that the amount of complexity in an information system is constant, and that you can only move around the complexity e.g. by putting more effort into the back-end system to shield some complexity from the end user. His article is discussing SAP BW but I like the idea. It is certainly true that in a truly bespoke reporting system everything is shielded from the user, but that requires huge IT resources, while just plonking a complex reporting tool on the user's desktops and hoping they will make sense of the data reduces demand on IT but is pretty much doomed because must users won't be able to navigate the complexity of the database (especially for something as complex as SAP, with 32,000 tables and counting).

However I do believe that a reasonably happy medium can be found if a layer is presented to the end user that uses their own terminology and hides the physical database implementation. This, after all, was what made Business Objects so successful with its "semantic layer". However this certainly passed some complexity back to the IT department, who then had to spend significant effort in building and maintaining the Business Objects "universes". If you go one step further and have a data warehouse that is driven from a business model, then this itself can generate a meaningful environment (such as a Business Objects universe) from the warehouse. This is what Kalido does, for example. Again, it is fair to say that the complexity has not entirely disappeared, but now some effort is needed to build the business model in the data warehouse. However where I think the article's neat idea falls down is to assume that the magnitude of the complexity is always the same. It seems clear to me that there is more effort in customizing every report to an individual user than there is in delivering an environment like a Business Objects universe (or even a carefully built Excel pivot table) which gives the end user a fair degree of freedom of formatting a and exploration. There us still less effort involved if you push the effort back one layer into the warehouse, since the warehouse can then generate multiple Business Objects universes, and not require each one to be customized by hand. Hence the further back in the stack you start the business modeling, the more ripple-through benefits you get by having less separate things to customize by hand. The end user still gets a flexible environment in terms that are meaningful, but there is less effort in total in delivering this environment. Further benefit would occur if all the operational systems were business-model driven, but this is just a pipe-dream today.

Complexity is one thing that should not be conserved if at all possible. Driving things from a business-model as far back in the stack as practical won't make complexity extinct, but may at least make it a little endangered.


Post a Comment

<< Home