Thursday, October 07, 2004

Customisation and products

I used to work for a low volume high value product house (in fact I have worked for two of those). Low volume high value software are always being modified. Small companies are selling these products to large organisations. These big organisations always want special changes, sometimes because they really need it, and sometimes because it establishes a power relationship. Modification requests can sometimes be an assertion of a power relationship, it makes a point.

As a result, successful niche products often have meta data driven architectures. Attributes can be added, forms can be re-designed and business logic added. I've always enjoyed writing these types of architecture, they are hard to get right and it is often challenging to make them perform.

Compare this with bespoke or high volume systems where it's about getting a fixed solution out there at minimal cost. Since maintenance and enhancement budgets for bespoke systems often comes out of seperate cost codes, the argument for building a flexible system is impossible to make. This despite the fact that the only constant in todays world is change.

What the IT world needs is a fast, efficient meta-data driven architecture for business apps. Whilst there are a few around, most either run like slugs or are too restrictive. However, I've seen plenty of business apps now, and surely delivering an architecture that supports the creation of these is achievable. There was a book written by Pete Eeles (and someone else) called something like Business Objects, it was written in the mid-90s and proposed a model that influenced SS when it wrote a COM based architecture. However, it (the 'business objects' model) just never seemed to provide the right degree of customisation. Customers want to build systems out of big lego bricks, but they don't want them to look like they were built from big lego bricks. *That* is the challenge.

If you know of any good meta data driven architectures that are efficient, scalable, reliable and unrestrictive then make a comment.