The ABCDE of Modern Enterprise Architecture
A Comprehensive Approach in the Age of Software Dominance
The Modern Enterprise in the Age of Software Dominance
Marc Andreessen’s prescient statement, “Software is eating the world,” encapsulates the critical role software has come to play in driving innovation and competitive advantage.
In the 12 years since he wrote this, it has become evident that software has actually eaten the world, profoundly shaping the way businesses operate, enabling them to respond to ever-evolving customer and market demands.
The modern enterprise – regardless of its age – has had to evolve and, in many cases, redefine itself, to deal with how the world has changed around it.
The internet, web, and smartphone have changed customer and employee expectations – not just of modes of interaction, but of the content of interaction too. Organisations have had to become customer-centric to survive – government, financial services, retail, hospitality, and health, amongst others, all are now required to have a digital presence.
Enterprise Architecture exists at the intersection of business and technology – but traditionally has had a number of shortcomings that get more and more exposed with modern approaches to both delivering value and delivering software.
Modern Enterprise Architecture (MEA) is the set of practices that modern Enterprise Architects should consider following to address the complexities of today’s software landscapes, characterized by an intricate web of interconnected systems that must continually adapt to meet ever-changing business needs.
As Gene Kim, the author of The Phoenix Project, puts it
“We shape our architecture, and then the architecture shapes us. As the systems we build become larger, the cost of coordination increases. It can grow so large that all our time and energy is spent coordinating - it is at the expense of our value creating activities.”
Modern Enterprise Architecture (MEA) is a comprehensive approach that addresses this coordination cost & complexity head on. It understands that actively managing the complexity of the systems landscapes of modern enterprises is key; and continuously simplifying, and aligning teams, systems, and delivery of value is an essential activity.
Limitations of Traditional Enterprise Architecture
Traditional Enterprise Architecture (TEA) approaches have been effective to some extent in the past. However, they have become less suitable as the nature of modern product development, software development, and the nature of the modern enterprise itself, have evolved.
TEA is heavily dependent on upfront predictive planning and centralized decision-making, with the assumption that there is a distinct, upfront design phase in a software development initiative before coding commences. This design phase is expected to produce sufficient documentation for review and evaluation by Architecture Review Boards or Design Authorities, forming the heart of traditional architecture governance.
In contrast to the outdated design phase concept, modern development approaches embrace the idea of continuous design which allows for ongoing adjustments and refinements to a system’s architecture. Developments in agile architecture, particularly the concept of reversibility, have made it possible to implement changes more easily and efficiently. Reversibility emphasizes the importance of designing systems in such a way that decisions can be changed or reversed without causing significant disruption. This approach better accommodates the dynamic and evolving nature of modern software systems, enabling organizations to adapt more effectively and efficiently to new market demands and opportunities. But when development teams work this way, there’s a conflict with the TEA governance process.
This conflict is resolved in one of two ways - neither of which is optimal for the organisation: either the governance process is ‘faked’ by development teams – “governance theatre” where teams produce documentation solely to pass a review process, and carry on coding regardless; or the process is followed correctly, which then pushes teams back to an at best inefficient and at worst dangerous inflexible design that cannot evolve as understanding of problem and solution evolve.
TEA often fails to account for the importance of feedback loops and continuous learning, which are central to modern software development practices. Traditional approaches tend to emphasize formal processes and strict adherence to established procedures, rather than encouraging experimentation and learning from failure. Furthermore, TEA lacks the ability to observe and analyze interactions across components and subsystems, hindering organizations from gathering valuable insights and making informed decisions based on real-time data. This mindset can stifle innovation, impede organizational growth, and limit an organization’s ability to adapt and respond effectively to market changes.
Furthermore, TEA struggles to address the socio-technical complexities of modern software systems, characterized by numerous interconnected components and teams. Traditional approaches often focus on hierarchical structures and strict boundaries between different departments or functional areas – in particular with architects and architecture as a distinct discipline and often a large and distinct organisational department. This siloed approach can hinder communication, collaboration, and the sharing of knowledge across teams, leading to suboptimal system design and increased maintenance costs.
Lastly, TEA typically lacks mechanisms for diagnosing, managing and reducing complexity in existing legacy systems. The rigidity and inflexibility inherent in TEA approaches can lead to increased risk, as they do not account for incrementally changing requirements on these legacy software systems and their surrounding environment. This can result in a diminished ability to adapt to the rapidly evolving business environment and a slower response to emerging opportunities and threats.
In summary, the limitations of Traditional Enterprise Architecture stem primarily from its alignment with an explicit or implicit predictive “waterfall” software delivery lifecycle, and its focus on only one element of the software development and operational lifecycle (worse, an assumption that development is disconnected from operations). As a result, organizations practicing TEA may find themselves ill-equipped to compete in today’s fast-paced, software-driven business environment – or they may just find that the TEA process is ignored, bypassed or faked.
Modern Enterprise Architecture Practices
Modern Enterprise Architecture (MEA) is a comprehensive approach that addresses the complexities of modern enterprises underpinned by software systems by incorporating numerous practices from various modern ways of working, from systems thinking to DevOps, from product management to business agility, as well as modern approaches to architecture at scale. These practices fall under 5 main headings - an ABCDE:
Aligning people, business value, and technology
Better Value, Sooner Safer Happier as outcomes to drive that alignment
Continuous conversational governance -
DevOps at scale - following the infinity loop for the whole enterprise
Evolutionary enterprise architecture — evolving from today’s legacy landscape
Let’s cover each in turn:
Aligning People, Business Value, and Technology
The shift from project teams to long-lived value streams or product teams enhances the ability of MEA to drive continuous improvement and innovation, as it aligns teams more closely with the ever evolving value that the product or products deliver to meet the needs of the business and its customers.
In addition to this, central to MEA is a focus on architecture and patterns that align teams with systems to deliver business outcomes autonomously. These related patterns, such as Domain-Driven Design and bounded contexts, microservices, Roger Sessions’ Autonomous Business Capabilities, and event-driven architectures, all contribute to enhanced flexibility and adaptability, further addressing complexity challenges – and reducing coordination overheads.
Here MEA embraces socio-technical aspects, emphasising the importance of modular design for both systems and teams, and fostering a deep understanding of coupling and cohesion as fundamental design principles. This approach helps manage complexity by encouraging the alignment of organizational structure and communication patterns with system architecture, considering the interplay between Conway’s Law, its inverse, and the principles illustrated in Matthew Skelton and Manual Pais’ Team Topologies.
Another crucial people-oriented element of MEA is managing cognitive load. Daniel Terhorst-North introduced the concept of “software that fits in your head,” emphasizing the importance of keeping systems and teams and the relationships between them simple enough to understand and maintain. This idea aligns with the principles of Team Topologies, which seeks to create “software that fits in the team’s head.” By managing cognitive load at enterprise scale as well, MEA ensures that teams can effectively collaborate and make informed decisions about their systems, leading to better overall performance and adaptability.
Finally another type of alignment: MEA plays a vital role in aligning the goals and principles of enterprise supporting functions, for example service management, cyber security, infrastructure, and workplace technologies. By fostering collaboration and the adoption of modern working methodologies, MEA enables these distinct teams to work effectively towards common outcomes. This alignment is key to achieving a streamlined and efficient system landscape.
Better Value, Sooner, Safer & Happier
MEA focuses on achieving a balanced set of outcomes: better value, sooner, safer, and happier (BVSSH). This approach prioritizes delivering value to customers and the organization while minimizing risk, promoting a culture of continuous learning, and fostering a positive work environment. Business and architecture outcomes should both be measurable in terms of BVSSH.
Continuous Conversational Governance
MEA emphasizes small batch work and continuous delivery, enabling rapid iteration, adaptation, and fast flow of value to the organization. It also leverages automation techniques from Modern Software Engineering, DevOps, and eXtreme Programming to streamline various parts of the software development and operational lifecycle. As research in the book Accelerate and the State of DevOps reports shows, modern software engineering techniques are highly effective in driving better outcomes.
An essential aspect of MEA here is the establishment of an architecture community of practice, which replaces the traditional Architecture Review Boards or Design Authorities found in TEA. This community is composed of diverse stakeholders, including architects, developers, and other domain experts, who collaborate and share knowledge continuously – typically using chat technology like Slack or Microsoft Teams. They practice continuous architecture governance, maintaining logs of Architecture Decision Records at team and enterprise level, and adjusting as necessary in response to new information and changing requirements.
DevOps at scale - following the infinity loop for the whole enterprise
One key aspect of MEA here is the adoption of cloud-class technologies, which provide the scalability, flexibility, resilience, and most of all adaptibility required to meet rapidly changing business requirements. MEA also incorporates related practices, such as zero trust security, infrastructure-as-code, and GitOps, helping organizations maintain security and control over their software systems. These techniques not only help to manage security but also support MEA continuous governance, enhancing resilience and complexity management while still enabling rapid adaptation.
Modern Enterprise Architecture also emphasizes the importance of feedback loops and continuous learning. By leveraging advanced observability techniques to monitor and analyze interactions across components and subsystems, MEA enables organizations to gather valuable insights and make informed decisions based on real-time data.
Knowledge management to support learning uses multiple, aligned sources: visualization techniques, such as C4 Models and Wardley Maps, can be combined with observability data and metrics to illustrate how running systems are actually interacting – self-documentation where possible. As Ruth Milan writes - design visualisation allows architects and the broader technology organisation to look both forward to future potential changes – intention – and backwards on past changes - reflection.
Evolutionary Enterprise Architecture
MEA emphasizes evolutionary architecture, utilizing fitness functions that work at not just the level of a team or single application but also enterprise scale. These fitness functions enable a new form of automated architecture governance for systems of subsystems, across the enterprise, offering a more effective, responsive, and objective way to manage complex software ecosystems. This approach is another element replacing traditional phase-gated governance by architecture review boards and design authorities found in TEA.
MEA understands that evolution of the systems landscape can happen gradually or suddenly – punctuated gradualism – and encourages and works within both modes.
An essential aspect of Modern Enterprise Architecture is evolving legacy systems and components that were not originally designed for adaptability and change. These systems often form a significant part of an organization’s software landscape and present unique challenges in terms of maintenance, integration, and evolution. MEA provides strategies for upgrading legacy systems incrementally, including refactoring, strangler pattern application, and anti-corruption layers. By incorporating these strategies, MEA allows organizations to manage and, over time, minimize the complexities of their existing software landscape while still benefiting from the advantages offered by modern software engineering techniques and practices.
MEA continuously addresses complexity at the enterprise level by emphasizing the importance of ongoing investments in the simplicity of an organization’s system landscape. Modern enterprise architects work closely with senior organizational stakeholders to allocate a portion of teams’ development time for addressing existing technical debt and proactively preventing the accumulation of new debt. This approach streamlines the long-term development and maintenance of software systems, promotes adaptability, and enhances operational efficiency.
Aligning with the objectives, practices and most importantly practitioners of Site Reliability Engineering (SRE), DevSecOps and FinOps, MEA supports the creation of reliable, scalable, secure systems that meet evolving performance and cost requirements. SREs focus on system reliability, availability, and performance by setting and monitoring Service Level Objectives (SLOs), DevSecOps incorporates security concerns into the full continuous DevOps lifecycle, while FinOps aims to optimize the financial aspects of cloud computing by managing and allocating resources cost-effectively — all defining key evolutionary fitness functions for the modern enterprise. By fostering simplicity and addressing technical debt, MEA helps achieve the high reliability standards of SRE and the context for incorporating DevSecOps, while also facilitating resource optimization and cost management, which are key concerns for FinOps.
A New Approach for the Modern Era
In conclusion, Modern Enterprise Architecture offers a comprehensive, responsive approach that addresses the challenges posed by today’s software-dominated business environment.
By incorporating multiple practices, embracing DevOps and cloud-class technologies, and focusing on outcomes, continuous governance, evolutionary architecture, and most importantly on people as much as technology, MEA enables organizations to develop and maintain complex software systems more effectively, ultimately driving better business value and greater business agility.
Overall, Modern Enterprise Architecture offers a more flexible, responsive, and adaptive approach to enterprise architecture, where Traditional Enterprise Architecture falls short.