Around the world introducing an Enterprise Architecture (EA) has been an initiative for most financial institutions (banks, insurance companies, government, etc.) for the last five years or so, and it is not over. I have been working with such companies and helped some of them to avoid making the worst mistakes. Most EA initiatives failed. My guess is that more than 90% never really resulted in anything useful.
Why did people fail? There are many reasons, but they can all be summarised by the word smart. They were not smart when they selected their solution. They were not smart when they selected their way of working. They were not smart when they organised their business and IT resources. Building an EA is not rocket science.
There are two common reasons specific to EA failure:
- Focus on paper-ware instead of executable software.
When enterprise architects work in an ivory tower without caring about what can be implemented, they produce too much models and documentation without executable solutions.
Enterprise architectures should be implemented incrementally, starting as early as possible. We call for such architectures for executable EAs.
- Big gaps between layers instead of seamless relationships.
Usually there are several layers such as a business layer, an application layer, a data layer and a technical layer. There are huge gaps between these layers which results in very brittle architectures. It is like trying to stand on a skateboard which is on top of another skateboard which in its turn is on top of yet another skateboard, etc. To have a chance these skateboards need to behave like one which is hard enough.
Thus the relationship between the business layer end the application and data layers are not straightforward and the relationships between the application layer and the data layer is as hard to manage as it was 20-30 years when we used methods like functional decomposition, or structured analysis and design. It is amazing that people haven’t learnt anything from component based development (with or without objects).
There are many other mistakes that people have made, many of which are related to organisational change in general. Examples include lack of business support for EA, not communicating the scope and purpose of EA, no strong IT leadership etc. In addition to these common challenges, all it takes to succeed at EA is to use best practices for modern software development, avoid upfront academic modeling, build both top down and bottom up, look upon the whole enterprise system as a system of interconnected systems.
Many of the companies that failed are now looking for the next silver bullet – Service Oriented Architecture (SOA). To me SOA is what EA should have become. SOA can be described as EA++ — it is Enterprise Architecture made better. SOA is clearly on the right path, but again adopting it requires that you work smart!
- By Ivar Jacobson