Friday, October 11, 2013

Single Canonical Fail

There are few things out there in IT more delusional than the Single Canonical Form, the idea that IT can define a super schema, a schema so complete, so pure that all will bow down before it.  Sheer idolatry.  Whether it is for integration or for Data Warehousing the reality is that a Single schema is never going to be ‘canonical’, different people have different perspective and its this very contention between business areas that actually drives the business forwards.  Sales obeys the rules from Finance in certain areas and in others is in open rebellion as the KPIs for Sales compete against the need for regulation in Finance.  To forecast correctly means rigor and repeatability, but anyone who phones up Sales with an open checkbook is going to find their order fulfilled despite the claims of a sales process.

At the heart of a Single Canonical Form is a simple premise ‘as long as everyone can agree’ it’s the sort of premise that is wonderfully na├»ve in its inception. The reality is sadly that such a simplistic view ignores local perceptions and attempts to force a straight-jacket upon the business by providing a single, almost Stalinistic, view upon them.  By starting with that beguiling premise IT sets out on a journey that can only end on failure.  The Sales, Finance and Operations teams all have local KPIs, different division and regions have different strategies and all may have a different view on how they sell and whom they sell to.  This does not mean the business is dysfunctional or wrong, it simply means that the business is complex and not constrained within a single view of what should be done.

The Single Canonical Form aims to achieve the unobtainable and by doing so creates its own downfall.  Because it doesn’t meet the objectives of everybody then individuals are forced to create their own local solutions as the agility of the single canonical form is relatively, or indeed astronomically, low.  The goal of a single canonical form is to create a single view on one of the most variable things in a business: the view on information.  One part of the business may require only 10 pieces of information about a customer, another 200, neither are right or wrong it is simply their own local information, they critical element is that an individual customer be recognized across the two, not that 210 attributes be agreed.  The same goes for invoices, orders, contacts and everything else: agree when it matters, don’t bother when it doesn’t.

The Single Canonical Form is a straight-jacket on the enterprise, it’s a dumb idea based on an unachievable idea.  Its time for IT to grown up and work differently.


Chris Hayes said...

Great post Steve. You mention the lack of agility forcing the creation of local solutions (which I agree with wholeheartedly) - I think another issue is that as a canonical form is extended to cover more of your business the returns can diminish and become negative. The increasing cost and effort of extending the canonical (in search of the elusive single canonical form), and the increased complexity and loss of agility that results, can be a greater burden on your organisation than simply accepting the status quo.

Steve Jones said...

Absolutely true Chris, the cost of change is yet another reason why its a failed approach.

John said...

Good points although from a B2B perspective some base standard form such as X12 or EDIFACT is essential.

Chris Hayes said...

Agree John, but they are successful because they are focussed on meeting a reasonably specific challenge (i.e. B2B integration), and even then there are other B2B standards in use (as I'm sure you know) in specific industries.

I think the point here is to understand the optimum scope for any given canonical form - too narrow a scope and you don't really get the benefit, too broad a scope and we're back Steve's 'Single Canonical Fail'