Enterprise architects have been a staple of corporate IT departments for well over a decade now, starting in earnest with the advent of service-oriented architecture and corporate data modeling. The need for enterprise architecture was spurred by the need to gain control over an increasingly complex computing environment, and an increasingly large backlog of data and feature needs. But those needs are changing, and so is the job of the enterprise architect.
The use of the term “architecture” in this context comes, in part, from the idea that one can create a “blueprint” for how a business can run on technology. The “architect” is someone who looks at the materials available, interviews the “client” (aka the business) about desired form and functional outcomes, and engineers solutions to meet those needs.
As the corporation is a multi-“client” entity, the enterprise architect has been increasingly tasked with reconciling competing requirements to efficiently achieve form and function across the enterprise as a whole. To do this, enterprise architects were (and are) often granted control over large parts of how data, software and infrastructure are organized to efficiently address the greater good.
There is no enterprise architecture
Enter cloud computing. As I’ve discussed before, cloud computing is creating an environment in which software components and data collections intertwine to create a complex adaptive system. What this means is that “control” over the design parameters of enterprise computing is starting to be highly distributed among cloud infrastructure providers, service operators and those that build and run applications on those services.
In the end, the idea of “blueprinting” an ideal solution for an enterprise’s computing needs just doesn’t work. Things move to fast. People make decisions completely independent of what your business objectives are (or are perceived to be). There are entire data schemas, messaging formats, API definitions, and even entire business processes that an enterprise relies on that will be out of an “architect’s” control.
But saying “there is no enterprise architecture” is a bit extreme, so let me temper that thought—slightly. There is no way to precisely specify the design, implementation and integration of complex cloud-based application systems. So the role of the enterprise architect is no longer building and maintaining a stable computing model for the enterprise. In the age of computing as a single, global, complex system, that role has to shift.
There’s only enterprise product management
To what? Clearly, there is the need for someone to watch over how individual applications, data sets and services evolve within the new world. There is a need for someone to guide the alignment of those software components with business needs.
In businesses that are themselves complex, there are tremendous efficiencies to be gained by the smart application of IT. That element of the enterprise architect’s role doesn’t go away.
What does change are the skills needed to evaluate how business applications, data sets and services are going to interact—and survive—in a complex, adaptive systems environment. If developers are the DNA of software in the cloud, the enterprise architect becomes the immune system, encouraging the growth of systems that help the business thrive, and killing those that would cost the business.
In this sense, my friend Brenda Michelson, a consultant specializing in enterprise architecture, put it best: the role is no longer one of enterprise architect, but rather one of the enterprise product manager.
How it works
In software companies, the product manager “owns” the success of the product: what market it should address, what capabilities it should provide to address that market, how it should be presented to that market, and so on. A product manager finds him or herself performing a constant blend of market analysis, product definition, business development and messaging.
Just as software product managers must constantly work to make their products thrive in its complex market ecosystem, so too must the new enterprise product managers constantly evaluate ways to make their business systems thrive in a complex computing ecosystem. Yes, there is still architecture involved, but it’s no longer the primary role. The primary role is management and analysis.
Is there governance? Sure. The enterprise needs to run as efficiently as possible while remaining resilient. However, forcing developers to use specific services and tools will likely give way to a better approach: creating killer shared services that everyone wants to use.
Is there design? Absolutely, though I would argue it’s different design in many respects. The complexity of application design in a cloud environment is around the relationships between components, not the components themselves.
So, enterprise product managers should focus on how to design environments in which their products thrive. The system as a whole must provide support for resilient component integration. The “circuit breaker” pattern used by cloud-based companies such as Netflix is an example of this.
What there isn’t, generally, is an attempt to lock down exactly how business applications and data will act and interact system-wide. An enterprise product manager should be an expert in the concept of Observe, Orient, Decide and Act. And in the stability-resilience tradeoff.
One final note
Not all enterprise architects spent their days trying to lock down everything. Not by a long shot. However, the concept that complex systems can be architected, and we should strive to architect as much as possible, remains regardless.
I believe cloud computing is going to turn this on its head and create a world in which we architect some basic, simple mechanisms that make system-wide architecture both impossible and undesirable at scale. Then the magic of emerging behavior and intricate systems evolution will begin. That, my friends, will be an amazing thing to experience—and a new challenge to manage.
Feature image courtesy of John Grayson.