“That is never too often repeated, which is never sufficiently learned.”
— Lucius Annaeus Seneca
It has become a platitude to observe that change is a constant. However, making that observation is much easier than actually building an enterprise that has the ability to change in line with shifts as they occur over time.
Architecting over Space and Time
Arguably, architecture’s origins have had more to do with space than they have with time. In the initial days of architecture, enterprises struggled with the complexity of laying out the technical foundations that were beginning to sprawl as networks enabled computer-related processes to be distributed across the enterprise. The complexity continued its ascent as networks were extended by the Internet to go well beyond the boundaries of the traditional enterprise.
As technologies began to emerge rapidly, it became necessary to create new capabilities that had the potential to redefine the enterprise and to gain competitive advantage, or, in many cases, to simply survive. Whereas architecture’s original mandate was to deal with the scope and scale associated with the move from monolithic to distributed computing, a more challenging requirement emerged: the need to adapt in an agile manner to changing technology and business trends.
Architecting over time is even more challenging than architecting over space. Time is not just one more dimension. Time brings relative unknowns that make it difficult, even impossible, to define requirements in advance.
How do we build for a universe that we cannot see?
Architecting for a Parallel Universe
The first thing to realize is that we always architect for a parallel universe: one that exists in the architects’ minds and in the models and abstractions they create.
Even if we are architecting only in space, and not in time, the complexity of a typical enterprise exceeds the ability of the architect to work with all the detail that exists in reality. So, we abstract and simplify, making some things stand out in stark relief, relegating some to the shadows, and making some things all but nonexistent, as we struggle to find a representation that approaches the reality at some level, but in a manner that yields to the limited processing power of human minds. This ability to make sense of what might not be easily seen in its totality is part of architecture’s value proposition.
When we need to architect with consideration for the time dimension, things get worse. We can make some intelligent projections and predictions for the near term, but as time horizons stretch farther, we are reduced to guesses that are more likely to be wrong than right. And even when we are somewhat right in our conception, if we get the timing wrong, it may as well be wrong on the whole.
The critical assumption that our models do full justice to the reality is a flawed one. This flaw manifests itself in the repeated shifts and “transformations” we undertake every few years within enterprises, where the past was largely incorrect, but the proposed directions in the present will somehow, “this time,” take us into the future in a more predictable manner.
Perhaps, with repeated experiences of this kind over time, we might expect architects to build in some degree of humility, realizing that we do the best we can at the time we do it, but the best may not be good enough for a time to come.
Architecting with Humility
Yes, the world we architect for will change. And it will change in ways that we didn’t think it would. The architectural constructs we built business cases for and drove hard will give way to new ones that we are likely to evangelize with as much fervor as we did the old ones. And we will continue to do expensive and risky multi-year “transformation journeys” as we did when, say, cloud computing entered, and as we will when entirely new programming models based on artificial intelligence and machine learning will emerge.
Unless. Unless we do something different and refuse to subject ourselves to a punishment similar to what Sisyphus faced as he rolled a rock uphill only to have it roll all the way back down again each time.
As change comes faster and predictability diminishes, it may be worth taking a pause to reflect. Some enterprises are already doing this and introspecting so as to position for futures that won’t feel like the same Sisyphean challenges that we have become used to. But are we going far enough in erasing existing mindsets about our ability to make predictions? Are we doing anything about the mindset of seeking control through reducing variety purely because it is harder to grasp, and, in the process, giving up the ability to hedge better against unknowns? Are we operating with a mindset of “We will be wrong in some way” rather than one of “We feel confident in our direction?” In some ways, all this is not entirely new. Enterprises have been adopting Agile methodologies over the last few years that have some of these inherent questions and principles, but are we taking this further and deeper into what we think about as architecture?
This Advisor does not offer clarity on how to architect with humility. It is intended to provoke introspection and thought about an aspect of architecting that has generally not had as much attention as it should. Tell me what you think. Send email to email@example.com.