IT goes through cycles—fat clients vs thin clients, centralised mainframes vs distributed computing. These tend to be areas where the costs and benefits of either end of the spectrum are difficult to discriminate between the alternatives. It takes time for the industry to settle on an equilibrium position, and quite often technology change shifts the equilibrium before it is reached.
Centralised COTS versus distributed "best of breed" systems is one of these cycles. The advent of big ERP systems in the '90s provided an attractive option for businesses that struggled with the challenges of integration. The argument goes that integration is so hard and so costly that it is best to avoid it. Simply buy one big monolithic ERP system that satisfies all your requirements. But it didn't take long for the flaws in this approach to become apparent:
- Implementing one big central application is extremely expensive and risky, akin to a heart-lung transplant for your organization.
- The integration requirement doesn't actually go away, it just gets buried internally as hidden "database integration".
- One big monolithic system doesn't satisfy all your requirements. It might work for a number of commodity functions, but going down the monolithic path means you're happy to do business the same way as the vendor and all their other customers. For many organizations, that's fine.
These problems were highlighted recently by Tom Quinn, CTO/CIO of News Corp Australia in his CeBit presentation. Tom says that "ERPs are dead" because they fail to support the high velocity of change required in the current business/technology climate.
But the alternative seems equally unattractive—organizations struggle all the time with the cost and complexity of integrating many different applications. Monoliths are attractive because from the outside they look cohesive and consistent, but on the inside they are inflexible and don't scale. Distributed systems on the other hand are malleable and scale well, but they're all over the place in terms of APIs and interactions.
Building an enterprise platform, as companies such as Amazon.com and Netflix have done, is a way of obtaining the best of both worlds, a consistent and coherent view from the outside, plus flexibility and scalability on the inside.
Depending on your organization, this may not be easy. A large established business with legacy systems is very different to a small greenfield startup. But the task is certainly tractable with foresight, planning and the right attitude. The benefits are worthwhile in the form of a long-lasting asset that provides a platform for the business to grow and change in a controlled manner, enabling proactive change rather than being reactive.
I previously wrote about layered architectures and this is one of the critical ingredients for building an enterprise platform. Utilise applications—systems of record—as the bedrock of your IT systems, but encapsulate these in an externalization layer that decouples your business from applications. Above that we have an orchestration layer which embodies the processes, rules and unique "intelligence" of your organization. The orchestration layer allows your systems and your business to change collaboratively rather than in brittle lock-step.
This is the essence of Jeff Bezos' big mandate which was famously articulated by Steve Yegge when he described for his colleagues at Google how Amazon.com has a competitive advantage because it understands the benefits of a platform. Today there are many familiar examples of platform companies: eBay, Salesforce.com, Facebook, Expedia, Twilio—all companies that provide data and functionality that other companies can build upon across retail, marketing, social, travel, telecommunications etc. Platforms are the enabling technologies for new and flexible business models. But many many more platforms are provided internally for consumption by internal developers working on enabling business functionality that may only ever see the light of day through finished business products. Gradually some of these internal platforms are being externalised to support B2B collaboration or mobile enablement.
That's the great thing about platforms, they can take you where you don't know you need to go.
You might also enjoy:
The Digital Enterprise Shift 10 September 2014
Ansible Crash Course 09 March 2016
The Benefits of A Layered Architecture 11 June 2014
Developing Bulk APIs with Mule, RAML and APIKit 02 December 2014