Introducing the Enterprise Engineering Framework
John A. Zachman, the single most influential person in the field of Enterprise Architectures, argues that:
- "IT has been manufacturing the Enterprise (building systems) for 70 years or so... but the Enterprise was never engineered";
- "In general, the information industry presently is not thinking about engineering entire Enterprises.";
- "The Enterprises of today are not integrated, not flexible, not aligned, not interoperable, not reusable and not meeting expectations"; and
- "Enterprise Architecture is not about building IT models. It’s about solving general management problems."
Zachman expressed these sentiments on multiple occasions despite the fact that at least 20 enterprise architecture frameworks exist that attempt to address the above.
While many frameworks feature style, elegance, and sophistication, they all fail to recognize the unique computational and transformative power of people; they concentrate on the information systems, but fail to engineer the enterprise as a whole; they fail to reduce and optimize the enterprise information flows.
Imagine if there was a concise and clear framework that would
- shift engineering focus from information systems to humans whose (implicit) knowledge and expertise help to achieve faster learning, adaptation, and growth;
- simplify enterprise structure and create proper alignment between human agents and digital constructs; and
- reduce coordination and communication needs and thereby streamline enterprise information flows.
You don't have to imagine it; we've created it. It's called the Enterprise Engineering Framework (EEF).
The Enterprise Engineering Framework (EEF)
The EEF radically changes the approach to enterprise engineering by precisely defining
- the types of activities that enterprise performs (enterprise computation);
- the main components responsible for performing those activities (enterprise composition);
- the mechanisms that enable enterprise components to act collaboratively in order to achieve common goals (enterprise coordination);
- the communication patterns that enable effective coordination (enterprise communication); and
- the optimal approach to digital transformation (enterprise transformation).
Nine basic but powerful premises comprise the foundation of effective enterprise engineering:
- 1Everything is computation.
- 2The main parts of the enterprise are individual (human and software) agents and composite agents (units).
- 3The supporting parts of the enterprise are infrastructure, platforms, boundary constructs, digital assistants, and tools.
- 4An enterprise is a flat network of units.
- 5There are two types of units: functional units and executive units. Functional units perform specialized activities and actively interact with the environment. Executive units set directions and boundary conditions (constraints) for other units.
- 6A unit is a flat network of individual agents.
- 7Composite and individual agents are intelligent and relatively autonomous; i.e., they encapsulate specialized intelligence, functionality, and decision-making power.
- 8Enterprise agents use event-driven coordination toward achieving their collective goals.
- 9Enterprise agents notify each other about significant changes in their states asynchronously in real time.
- 10Enterprise transformation is the combination of social, systemic, technological, and unit transformations.
The EEF not only integrates various specialized enterprise technologies and assigns proper responsibilities to each, but it also identifies the gaps and proposes the creation of new technologies.
Although enterprises of today do both physical/chemical and computational work, the EEF is deliberately interested only in the latter. Physical/chemical enterprise activities have been well supported by physical architecture for a few thousand years.
Today, even the most complex tasks related to art, science, design, or manufacturing can be either considered as pure computation or linked to a supporting computational activity that (at the very least) involves the creation of the respective digital representation, for instance, a database record.
Principle 1 Everything is computation.
Any computational activity that takes place in the digital enterprise—no matter whether it is a scientific algorithm, a design algorithm, an engineering algorithm, an artistic algorithm, or any other type of algorithm—can be performed by either a human agent or software agent.
Also, the integration of individual agents into a higher level construct—a complex social unit— creates a systemic effect often called emergence. Units are capable of performing complex computational processes with high levels of performance, reliability, and availability.
Principle 2.1 The EEF constructs the enterprise from universal building blocks—autonomous intelligent agents. The three types of agents are (1) individual human agents, (2) individual software agents, and (3) composite agents (units).
In addition to the universal building blocks, the EEF uses tools, digital assistants, boundary constructs, platforms, and infrastructure— the digital constructs that enhance the capabilities and support the functioning of individual and composite agents.
Principle 2.2 Managers and architects can use the EEF at two levels: an enterprise level and a unit level. At the enterprise level one can observe a flat network of units; at the unit level, a flat network of individual agents.
In this context, flat network means the absence of nested (network/subnet/sub-subnet) structure: i.e., units cannot contain other units. However, there may exist hierarchical relationships between units at the enterprise level and between individual agents at the unit level.
The enterprise itself can be defined as a networked agent (entity). Thus, one can view
- an industry as a network of entities (networked agents);
- an enterprise as a network of units (composite agents);
- a unit as a network of individuals (human and software agents).
Principle 2.3 There are two types of enterprise units: functional units and executive units. Units are organized into the enterprise network and maintain transactional (buying/selling, requesting/servicing, giving/taking), hierarchical (directing/reporting), and collaborative relations not only with other units, but also with the environment.
Functional units develop specialized intelligences and perform specialized activities such as production, distribution, sales, marketing, etc. In contrast, executive units develop the management intelligence and focus on making things happen by making sure that other units contribute their best to the whole that the executive unit represent. Executive units set and adjust boundary conditions within which their subordinating units must operate.
Principle 2.4 (the homogeneity principle). An enterprise can be composed only of composite agents (units); a unit can be composed only of individual agents. Therefore, neither enterprises nor units can contain both units and individual agents.
No matter the purpose, both functional and executive units have the same rather simple digital structure, which means that a generic (enterprise software) implementation can be configured and instantiated for a specific unit.
Principle 2.5 Individual (human and software) agents use digital tools to enhance and amplify their capabilities. Units use boundary constructs that give them autonomy and power, structure their interactions, and protect them from negative effects of the environment. Platforms and infrastructure provide authoring and runtime environment and manage the lifecycles of artificial agents, enterprise tools and boundary constructs.
The EEF strives to lower coupling and interdependencies between enterprise units and to optimize the coordination and communication needs. The event driven coordination leads units through the sequence of states toward some unifying goal. This type of coordination is based on the expectations that emerge from the roles the units agreed to play and their respective responsibilities.
Principle 3.1 Enterprise coordination is achieved with the expectation-based event-driven approach, which is implemented using the event-process-event pattern at the enterprise level and the event-task-event pattern at the unit level.
Sometimes the operations of individual agents can be governed by a set of predefined rules. These rules define start and end events, sequential or parallel flows of activities, and important decision points. This is the command-and-control type of coordination, which works best for production workflows, simple case management scenarios, and basic administrative processes. One can use Business Process Management (BPM) software to model, execute, monitor, and improve those types of business processes.
Principle 3.2 At the unit level, coordination can also be achieved with the command-and-control approach.
Because industry standards of today don't support event driven coordination, the EEF proposes the introduction of a new discipline —Worknet Management (WM); a new type of coordination mechanism—worknet; and a new and highly simplified modeling notation—Worknet Modeling Notation (WMN)—that uses events as flow elements and processes as connectors.
To lower coupling and interdependencies between enterprise agents, the EEF mostly uses asynchronous (non-blocking), one-to-many (publish/subscribe), and indirect (mediated and intermediated) style of communication.
Principle 4.1 (Intermediation). At the enterprise level, units communicate asynchronously; the intermediation services (queueing and publish/subscribe) are provided by a higher authority unit. At the unit level, individual agents communicate both asynchronously and synchronously. In the case of asynchronous communication, the intermediation services are provided by the unit itself.
To increase loose coupling, units publish only enterprise-level events, something of interest to other units. Individual agents publish only unit-level events.
Principle 4.2 (Mediation). At the enterprise level, communication is mediated to provide location transparency, protocol bridging, message transformation, and cross-cutting communication aspects such as security, logging, and auditing.
The mediated communication enables the strategic shift of the enterprise from point solutions to network-based scaled solutions. It binds message providers and consumers dynamically at runtime; resolves the differences between interacting agents' communication protocols, message exchange patterns, and invocation methods; monitors KPIs and adherence to service level agreements; and satisfies quality-of-service requirements for interactions, including security (user authentication/authorization, message encryption/decryption), logging and auditing, performance and reliability.
Principle 5.1 For the enterprises of today, the top-down transformation is the most effective approach to enterprise reengineering.
From technology and architecture points of view, the top organizational level is currently the green field—the least technologically developed and polluted space of the enterprise. It is easier to begin with establishing robust social constructs, boundary constructs, and coordination and communication mechanisms on the top level and then propagate the changes down to the lower enterprise levels.
Principle 5.2 The enterprise transformation is a combination of social transformation, systemic transformation, technology transformation, and unit transformations.
Social transformation involves simple, but radical changes in human architecture—the transformation of the enterprise into a network of social units. The respective exclusion of individual agents from the enterprise-level network might significantly change the power dynamics of the entire enterprise.
Systemic transformation will result in the creation of the boundary constructs of units. A unit's boundary consists of facades—which in turn are composed of interfaces—and not only protects the unit from negative effects of the environment, but also hides its inner workings from other enterprise units and the environment.
Once the boundaries are established, units can transform themselves (their purpose, function, process, structure, and culture) independently at their own pace based on the principles of unity, completeness, coherence and cohesion.
The technology transformation assigns new responsibilities and possibly new meanings to the incumbent enterprise technologies. In addition, the EEF introduces two new technologies and methodologies: Unit Oriented Architecture and Worknet Management. Unit orientation is the next level in the object/component/service oriented computing. Worknet Management offers an event driven approach to enterprise coordination and highly simplified modeling notation, which enables more effective implementation than that offered by modern Business Process Management suites.
- Unit Oriented Architecture
- Enterprise Transformation
- Defining Enterprise Architecture: The Systems Are the Enterprise by John A. Zachman
- Defining Enterprise Architecture: Misunderstandings by John A. Zachman
- Intro to EA: The Paradigm Problem by John A. Zachman
- Software Architecture Is Not Building Architecture by Bex Huff
- Cooperation vs Collaboration
- A Better Path to Enterprise Architectures by Roger Sessions
- What to Think About Machines That Think?
- What Will Change Everything?
The Enterprise was never holistically engineered, according to John A. Zachman.
The EEF is a lightweight enterprise reengineering framework focused on computational activities and the digital architecture of the enterprise. The physical architecture, which supports physical/chemical activities of the enterprise, may complement the digital architecture, but it is outside the scope of the EEF.
The main enterprise building blocks are individual human agents, individual software agents, and composite agents (units). The other parts are tools, boundary constructs, platforms, and infrastructure.
Two types of structures define the enterprise. The enterprise itself is a collection (flat network) of units. Although the network is flat, there exist asymmetric hierarchical relations (directing/reporting) between the units. A unit is a collection (flat network) of individual agents (both human and artificial). The individual agents may also have hierarchical relations.
At the enterprise level, computational activities of units are coordinated using an expectation-oriented style described by the event-process-event pattern. At the unit level, computational activities of individual agents can be coordinated using either the expectation-oriented or the command-and-control style described by the event-task-event pattern.
At the enterprise level, units communicate asynchronously; at the unit level, either asynchronously or synchronously, depending on the coordination style.
The EEF recommends the top-down approach to enterprise transformation. It begins with the social transformation, which streamlines the human architecture of the enterprise and partitions it into the collection of executive and functional units. The second stage is the systemic transformation that creates units' boundary constructs and enables effective enterprise-level communication and coordination. The last stage is the unit transformation, where each unit can be reengineered at its own pace.