Breaking Bad with 3D Enterprise Systems is a book that details a practical and proven approach for building flexible applications. Blair Kjenner and Kewal Dhariwal combine several different techniques that allow project teams to create applications that not only met requirements, but could also handle new requirements with ease.
A special way of creating primary keys, the use of core data models, and proper data governance are some of the techniques that make up the 3D Enterprise Systems approach.
Kjenner recently described their approach through a social media posting. A great building analogy:
Imagine if builders winged as IT professionals do for creating systems. Houses would cost considerably more, be less safe, be more difficult to connect into municipal services, and not last as long.
Also, consider the productivity of construction crews if there were no standards. Each house would be a learning experience. Also, when teams of different specialties like plumbing and heating had to work together there would total chaos.
It would be just like the chaos we see when we try to integrate systems and aggregate data from many systems for reporting.
Now imagine if the IT Industry created building codes from the ground up for creating systems so they could be easily integrated. We could create a network of systems for conglomerates and aggregate data from many different systems for reporting and AI.
These systems would dramatically improve business efficiency because data would be entered once and securely shared with every other system that required it.
The two themes in the book that I really appreciate are objectively providing the whole picture and showing evidence on how this approach works. In terms of providing the big picture, the authors cover how the current process works and why it is flawed. They also explain why initiatives such as Software as a Service (SaaS), Electronic Data Interchange (EDI), and Enterprise Resource Planning (ERP) efforts don’t take us all the way, but stop short of achieving their goals. Kjenner has created a software tool that proves the approach works, and gives examples based on his experiences on how agencies and organizations have benefited from the approach.
There are small things I like about the book too, like the cool author-drawn artwork, easy-to-understand analogies, and highlighted key messages. Here is an excerpt from the book:
To illustrate this in a different way, consider a pinball machine where each post represents the system’s features. Adding a new feature to the system is like adding a post to the pinball machine and then firing a ball into the machine. Each time the ball hits a post, the cost of the system goes up by one thousand dollars. Firing the ball into a pinball machine with five posts drops out the bottom with minimal impact. If you fire it into a pinball machine with a thousand posts, the ball seemingly never drops out the bottom of the pinball machine.
This makes us realize that our current approach to ESs has hit the wall in addressing the needs of large organizations and conglomerates. We can only make monolithic systems so big before the risk and cost to an organization are too great.
In the future, we need to break systems into smaller systems that can communicate. However, unlike the current method of creating systems where systems are created on a function-by-function basis, we instead need to be able to create systems by locality (branch, department, retail outlet, etc.) with a central architectural design focused on integration. We then integrate the systems to exchange data between localities and roll data up from all localities to a central entity for reporting. As architects, we know it is possible to create an architecture for this type of system. We just need to begin with the end in mind.
The stretch goal is to create a framework and best practices that allow us to create ESs that can easily exchange data between systems and to allow us to share functionality between systems.