12. Architecture and Portfolio

12.1. Introduction

Regardless of whether you started off as a digital startup, or are an older organization now digitally transforming, your world is complex and getting more so.

Summarily, the prior decisions that might have been made quickly and casually by a product or project team become harder. The increasing challenges are due to both internal and external factors. Decisions made years ago come back to haunt current strategies with a vengeance. With scale, management needs some way of making sense across digital operations of mind-numbing complexity. Should we invest in 15 new internally-developed microservices, or sunset 12 existing ones and implement a commercial package developed by people we trust? When we have 1500 applications or services in our portfolio, how do we know that the proposed number 1501 is not redundant or outright conflicting with existing services?

The architecture provides tools to manage such problems, but doing so is difficult and controversial. Is the architecture merely drawings of HiPPOs? How can we maintain an experimental and hypothesis-driven approach in the midst of all the complexity? How do we know that our understanding of the digital operation is current and up to date? How much should we spend on keeping it so? What happens when management decides to set direction using these same abstractions, and architects find themselves now enforcing what had originally started as mere explanation and sense-making?

Vendor relationships become a two-edged sword, providing increased value with access to higher levels of vendor resources, but at the cost of greater lock-in. Pure open-source strategies inevitably give way to monetized relationships, as the risk of not having support becomes unacceptable.

Portfolio management in terms of information technology means looking at long-lived IT investments regarding their overall benefit, cost, and risk to the organization. This can and should be done regardless of whether the IT investment is external or internal facing. Products, services, and applications are the most useful portfolio constructs, although assets, technology products, and even projects also figure into longer-horizon value management. Enterprise architecture benefits from a tight alignment with IT portfolio management, as well; it is not clear that a firm boundary between them could be drawn.

This chapter is, in a way, summative: it reflects all of the concerns discussed in the previous 11 chapters. Every chapter represents topics of interest to the architect. Now, we discuss a language and way of thinking to merge these concerns.

Important
As with other chapters in the later part of this book, we are going to introduce this topic “on its own terms.” We will then add additional context and critique in subsequent sections.

12.1.1. Chapter 12 outline

  • Why architecture?

    • Defining Enterprise Architecture

    • Architecture organization

    • The value of Enterprise Architecture

  • Architecture practices

    • Architecture and governance

    • Architecture as a management program

    • Modeling and visualization

    • Repositories and knowledge management

    • The “rationalization” quest

  • Architecture domains

    • Architecture perspectives

    • Architecture layers

    • Other forms of architecture

  • Agile and architecture

    • The hubris of architecture

    • The hubris of Agile

    • Towards reconciliation

  • Portfolio management

    • Application value analysis

    • Application rationalization

  • Architecture standards

    • Business Architecture

    • The TOGAF® standard

    • The ArchiMate™ architecture modeling language

    • Industry verticals

    • Governmental frameworks

12.1.2. Chapter 12 learning objectives

  • Identify the value of architecture

  • Describe basic architectural practices

  • Define and distinguish between various forms of architecture

  • Characterize the friction between Agile and architecture, and techniques for resolving it

12.2. Why architecture?

alt text
Figure 213. St. Vitus Cathedral, Prague
Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as efficiently as possible within economic and technological constraints. Architecture must include engineering considerations so that the design will be economical and feasible; but the emphasis in architecture is upon the needs of the user, whereas in engineering the emphasis is on the needs of the fabricator. [[40], first published use of the term “architecture” with respect to computing system organization.]
— Fred Brooks
Planning a Computer System: Project Stretch

The word “architecture” is usually associated with physical construction: buildings, landscapes, civil infrastructure, and so forth. It was appropriated by systems engineers at IBM around 1960 to describe the problems of designing complex information processing hardware and software. This leads to some confusion, and occasional questions from “real” architects as to why IT people are calling themselves “architects.” Perhaps a different choice of word would have been advisable.

In our journey to date, we have covered:

We have also covered the practices by which ideas and intentions are established and translated by investment into actions, including:

As we have progressed in our journey and scaled our company up, all these areas have continued to evolve. Specialization emerges. You have people with deep experience in Cloud architectures and individuals with deep experience in e-records management and compliance. You do not have too many who are deep in both.

Your product portfolio (internal and external) is now in the hundreds or thousands. Some were built with the latest technology, and others run on older technologies now perceived to be dead ends. However, investing in rewriting or re-platforming them would not provide as much value as other uses of the funds, so you have to manage the risk of the older technology.

Investment decisions become harder. You are far beyond the days when you had a one-product focus. You have multiple interacting products and multiple interacting teams, and the relationship between the teams and outputs is not one to one. Understanding the business case for the investment gets harder; when you have a thousand services over multiple business units, how do you know if someone is proposing a redundant new one?

Moreover, there are the big headaches. A major commercial product version is going off support, and it is the perfect time to think about a rewrite or re-platform (say into the Cloud). However, the moving pieces and interdependencies are formidably complex, and if you get the analysis wrong, the business impact will be severe. You acquire another firm, with a lot of overlapping activities, and start to see the need for “Business Architecture” to clarify your understanding of business processes, organizations, and capabilities. Alternatively, a major outage hits the business hard, and all of a sudden the organizational priority (from the Board on down) is “fix this, so it never happens again.” Everything else is to go “on hold.” Except, of course, it cannot.

In response to these and a thousand other complexities of digital management as organizations scale up, a general-purpose coordination capability emerges sometimes called Enterprise Architecture. In this chapter section, we will discuss its definition, organizational dynamics, and value proposition. [1]

12.2.1. Defining Enterprise Architecture

The fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution [144].
— ISO/IEC/IEEE 42010
The Enterprise Architecture is the organizing logic for business processes and IT infrastructure, reflecting the integration and standardization requirements of the company’s operating model. The Enterprise Architecture provides a long-term view of a company’s processes, systems, and technologies so that individual projects can build capabilities—not just fulfill immediate needs [226].
— Jeanne Weill and Peter Ross
Enterprise Architecture as Strategy
Enterprise architecture (EA) is the representation of the structure and behavior of an enterprise’s IT landscape in relation to its business environment. It reflects the current and future use of IT in the enterprise and provides a roadmap to reach a future state [21 p. 35].
— Bente et al.
Collaborative Enterprise Architecture

“Architecture” as a term by itself is something you’ve encountered since your earliest days as a startup. Perhaps you used it to describe the choice of technologies you used for your products. Or the most important components in your application. Or the common services (e.g.,authentication) you developed to support multiple products. The architecture concept is therefore not something new or foreign. But what does it mean to say we have an “enterprise” architecture? Enterprise architecture is nothing but the unification of this book’s topics into a common, formalized, scalable framework for understanding. It means we are “doing architecture” comprehensively, considering the enterprise itself as a system to be architected. It also may mean we have a program for sustaining the work of those doing architecture in the technical, application, solution, data, process, or business domains.

In terms of our emergence model, Enterprise Architecture assumes multi-product, “team of teams” problems. As an overall domain of practice, Enterprise Architecture encompasses a variety of specialist domains (some of which we’ve already encountered) as we’ll discuss in the next chapter section. Some of those domains do make sense at smaller, single-product contexts (e.g., software architecture).

There are numerous definitions of enterprise architecture. The examples in the quotes above are typical. It can be defined as:

  • an organizational unit

  • an organizational capability

  • a formalized program

  • a professional discipline or set of practices

  • a process or process group; an ongoing activity or activities

  • a large-scale artifact (i.e. an integrated model consisting of catalogs, diagrams, and matrices) maintained on an ongoing basis for communication and planning

  • an integrated and standardized language for reasoning about complexity

In general, definitions of Enterprise Architecture characterize it as a coordination and problem-solving discipline, suited to large scale problems at the intersection of digital technology and human organization. An important function of architecture is supporting a shared mental model of the complex organization. We were first introduced to the importance of shared mental models in Chapter 5 and this need has only increased as the organization became more complex. Enterprise Architecture provides the tools and techniques for sustaining shared mental models of complexity at scale.

land surveyor map
Figure 214. Terrain, mapmaker, map

Confused? Consider the activity of map-making (see Terrain, mapmaker, map [2]).

In map-making you have:

  • The actual terrain

  • The capability of map making: surveying, drawing, etc.

  • The process of surveying and mapping it

  • The resulting map as a document (i.e., artifact)

And once the map is made, you might use it for a wide variety of purposes, and you also might find that once you start to use the map, you wish it had more information. Similarly, in Enterprise Architecture, it’s important to remember that there are different concerns:

  • Operational reality

  • The capability of representing it for planning and analysis (“being” an architect or an architecture organization; having the skills and tools)

  • The process of representing and analyzing the operational reality (“doing” architecture)

  • The actual representation (the “architecture” as a “thing” — a model, an artifact, etc. Recall our previous discussion of information representation).

And, like a map, once you have the architecture, you can use it for a wide variety of purposes, but also you may find it incomplete in various ways.

12.2.2. Architecture organization

There are three major themes we’ll discuss in terms of the overall organizational positioning of Enterprise Architecture:

  • The line versus staff concept and its origins

  • Contrasting the concepts of “business model” versus “operating model”

  • The other major organizational units of interest to Enterprise Architecture

Architecture as staff function
…​ the organization is weak at the top because there is no coordination of the exercise of powers provided for in the system. That coordination can be done only by a body organized for that purpose and having no other duties to perform; and in all the armies of the civilized world that duty is performed by a General Staff. They are called this because their duties are staff duties pertaining to the general conduct of affairs, and not merely to the work [of specific departments].
— Elihu Root
1903 congressional testimony on U.S. army re-organization (condensed)

We saw in Chapter 10 how governance emerges, as a response to scale and growth, and the concerns for risk and assurance in the face of increasing pressures of the external environment.

Architecture has a comparable emergence story, but for somewhat different reasons. Consider the quote from Elihu Root, above. Root was tasked with re-organizing the U.S. Army at the turn of the 20th century. There had been some embarrassing failures of coordination and organization, and it was clear that something was missing in the U.S. military: a centralized coordination function responsible for planning and logistics.

These lessons had also been learned by the Austrian, Prussian, and French militaries.

In previous ages, nobles would assemble and fight for their King, but their armies were poorly coordinated, and disputes over strategy would often arise. Each noble’s army would have its own quartermaster, couriers, intelligence, supply chains, and the like. This was both inefficient, and ineffective: overall plans of battle often could not be made or executed, and military operations would be bungled.

Moritz
Figure 215. Franz Moritz Graf von Lacy

As fighting wars became (unfortunately) a larger and larger scale endeavor, the need to centralize certain capabilities became more and more obvious. This culminated in the Napoleonic wars of the late 1700s and early 1800s with the creation of “general staffs” that were responsible for coordination of planning and execution across the increasingly complex military operations. The HQ “staff” and its shared services were deliberately distinguished from the warfighting “line.” The Austrian field marshall Franz Moritz Graf von Lacy (see Franz Moritz Graf von Lacy [3]) was one of the pioneers of this new style of organization, which was soon copied by the French army under Napoleon Bonaparte.

For example, the role of Napoleon’s staff officer Pierre-Joseph Bourcet under Napoleon is described thus:

On every occasion when an important decision had to be made Bourcet would write a memorandum in which he analyzed the situation and set forth in detail, with full explanations and reasons, the course which seemed to him best. In very many cases, his suggestions were adopted and were usually justified by success, and when they were rejected the results were seldom fortunate. [152]

What do obscure French and Austrian military officers have to do with today’s digital organizations? They are analogous to the line/staff as the basis for large organizations of all kinds. As Christian Millotat (and many others) have noted, "[m]any elements that have become integral parts of managerial economics and organizing sciences can be traced back” to military staff systems [186], p.7. These include:

  • Collecting and combining knowledge so that decisions are as well informed as possible

  • Supporting specialized roles and functions (e.g.,legal experts, engineers)

  • Operating supply chains and other services that function best when shared

Staff functions in the enterprise include planning, coordination, and operations; broadly speaking, and with key differences depending on the industry, the following are considered “staff":

  • Financial management

  • Human resources management

  • Legal services

  • Purchasing & vendor management (varies w/company and industry; for example in retail “merchandising” is a line function)

  • Information technology (however, with digital transformation this is increasingly overlapping with R&D and driven directly by line management)

  • Facilities management

  • Strategic planning & forecasting

While the following are considered “line” (analogous to the warfighting units in the military):

  • Sales

  • Marketing

  • Operations

  • Research and development (varies w/company and industry)

Enterprise architecture has as a key part of its mission the task of collecting and combining knowledge to support decision-making. Therefore, an Enterprise Architecture organization can be seen as a form of staff organization. Most often it is seen as a specialized staff function within the larger staff function of IT management, and with the increased role of digital technology, there are corresponding pressures to “move Enterprise Architecture out of IT” as we’ll discuss below.

The classic line/staff division is a powerful concept, pervasive throughout organizational theory. But it has important limitations:

  • Staff organizations can “lose touch,” become insular and self-serving and indeed accumulate power in dangerous and unaccountable ways. For this reason, officers are rotated between line and staff positions in the U.S. military.

  • Staff “expertise” may matter less and less in complex and chaotic environments requiring experimental and adaptive approaches.

  • If a feedback loop involves both line and staff organizations, it risks being delayed. The delay waiting for “headquarters approvals” has been a common theme in line/staff organizations.

In the history of line versus staff relations, we see tensions similar to those between Enterprise Architecture and advocates of Agile methods. The challenges, debates, and conflicts have only changed in their content, but not their essential form.

But in many cases, centralizing staff expertise and the definition of acceptable practices for a domain is still essential. See the discussion of matrix organizations and even feature versus component teams.

Enterprise Architecture and the operating model
The operating model is the necessary level of business process integration and standardization for delivering goods and services to customers. Different companies have different levels of process integration across their business units (i.e., the extent to which business units share data). Integration enables end-to-end processing and a single face to the customer, but it forces a common understanding of data across diverse business units.
— Weill and Ross
Enterprise Architecture as Strategy

In terms of overall positioning, Enterprise Architecture is often portrayed as mediating between strategy and portfolio management (see EA context, based on Ross., derived from [226 p. 10], fig 1-2).

EA context
Figure 216. EA context, based on Ross.

Notice the distinction between Enterprise Architecture as a capability and as an artifact. The practice of Enterprise Architecture is not the same as the actual Enterprise Architecture. For the purposes of this textbook, we define Enterprise Architecture’s concerns as essentially the enterprise operating model: process, data, organizational capabilities, and systems.

Author’s note

While the concept of an “operating model” is somewhat loose, I believe there is a general consensus that it is distinct from a “business model.” I also do not think that there is much value in distinguishing between the “Enterprise Architecture” (as an artifact) and the “enterprise operating model,” especially at the higher levels of the Enterprise Architecture.

Scott Bernard (author of An Introduction to Enterprise Architecture) claims that: [without Enterprise Architecture] “…​leadership will not have the ability to generate clear, consistent views of the overall enterprise on an ongoing basis, they won’t be able to compare business units effectively, and the locus of power for planning and decision-making will be at the line-of-business, program, and/or system owner levels with significant differences in how things are done and high potential for overlapping or duplicative functions and resources.” [22], introduction.

Now, truth be told, corporations compare business units all the time, on profit and loss and other enterprise metrics, without an architecture. If an enterprise is a holding company, by definition, it is not seeking a common operating model. So, it is important to understand the role of Enterprise Architecture within the context of the enterprise strategy and business model, which remain distinct.

But, assuming that some shared vision, intelligence, economies of scale, and shared services are part of the business model, the concept of an operating model is a powerful tool for categorizing critical information, and identifying redundancies, overlaps, and potential synergies.

One of the most frequently used visualizations of Enterprise Architecture’s concerns is the Zachman Framework (see A variation on the Zachman framework [4]).

Zachman framework
Figure 217. A variation on the Zachman framework

We were exposed to the data modeling progression from conceptual to logical to the physical data model in Chapter 11. The Zachman framework generalizes this progression to various views of importance to organizations, as shown in the columns:

  • What

  • How

  • Where

  • Who

  • When

  • Why

Overall, the Zachman framework represents the range of organizational operating model concerns well. Certainly, sustaining a large and complex organization requires attention to all its concerns. But what good does it do to simply document the contents of each cell? Such activity needs to have relevance for organizational planning and strategy; otherwise, it is just waste.

Peer organizations

It’s reasonable to associate the Business Model Canvas with strategy, and the Zachman framework with the Enterprise Architecture as an artifact (see Business model versus operating model).

This distinction helps us position the Enterprise Architecture group with respect to key partner organizations:

  • Organizational strategy

  • Portfolio and investment management

  • Infrastructure and operations

Organizational strategy

The operating model needs to support the business model, and so, therefore, Enterprise Architecture needs a close and ongoing relationship with organizational strategists, whether they are themselves line or staff. Defining digital strategies is a challenging topic; we have touched on it in Chapter 1, Chapter 4, and Chapter 8. Further discussion at the enterprise level will be deferred to a future edition of this book.

Portfolio and investment management

Architecture needs to be tied to the organization’s investment management process. This may be easier said that done, given the silos that exist. As Scott Bernard notes, “Enterprise architecture tends to be viewed as a hostile takeover by program managers and executives who have previously had a lot of independence in developing solutions for their own requirements” [22], case study scene 1.

Many organizations have a long legacy of project-driven development, in which the operational consequences of the project were too often given short shrift. The resulting technical debt can be crippling. Now that there is more of a move towards “you build it, you run it” the operability aspects of systems are (perhaps) improving. However, ongoing scrutiny and management are still needed at the investment front end, if the enterprise is to manage important objectives like vendor leverage, minimizing technical debt, reducing investment redundancy, controlling the security perimeter, and keeping skills acquisition cost efficient (more on this below in the section on Enterprise Architecture value).

Portfolio management is discussed in depth in a subsequent chapter section.

Business model versus operating model
Figure 218. Business model versus operating model

Infrastructure and operations

Finally, the Enterprise Architecture group often has a close relationship with infrastructure and operations groups. This is because in organizations where operations is a shared service, the risks, and inefficiencies of technical fragmentation are often most apparent to the operations team. In organizations where operations is increasingly distributed to the application teams (“you build it, you run it”) the above may be less true.

Other staff organizations that may develop close relationships with Enterprise Architecture include vendor management and sourcing, risk management, compliance, and security. Notice that some of these have strong governance connections (although we do not consider “governance” itself to be an organization, which is why it was not included in the discussion above).

12.2.3. The value of Enterprise Architecture

On the value side, Enterprise Architecture is unique in its ability to promote enterprise-wide thinking about resource utilization…​EA promotes the development of more efficient enterprise-wide common operating environments for business and technology, within which more capable and flexible business services and systems can be hosted. This, in turn, increases enterprise agility. Furthermore, the enterprise is better able to respond to internal and external drivers of change, which promotes greater levels of competitiveness in the marketplace. [22], chapter 3
— Scott Bernard
As a hygiene factor, benefits from Enterprise Architecture can be valued in terms of reduction in management escalations, emergency occurrences, and year-on-year operational expenses. As a strategic foundation, Enterprise Architecture facilitates the deployment of new capabilities. [21]
— Bente et al.
Collaborative Enterprise Architecture

Enterprise architecture often struggles to demonstrate clear, quantifiable value to the organization. Architects are usually among the most experienced and therefore expensive staff in the organization. It may seem to make historical and intuitive sense that architecture as a staff function is necessary. Yet, demonstrating this takes some thought and effort. Statements like “promoting enterprise-wide thinking” easily provoke skepticism. What are the benefits of so-called “enterprise-wide thinking"? And who receives them?

The following outcomes are often asserted for Enterprise Architecture:

  • Shortening planning & decision-making (e.g.,through curating information)

  • Curating a shared enterprise language and mental model

  • Increased speed of delivering new functionality

  • Reduced and simplified portfolios

  • Reducing duplication and re-work

  • Reducing headcount (e.g.,in processes)

Illustrated in Architecture impacts on enterprise value is a high level impact mapping representation.

Architecture value
Figure 219. Architecture impacts on enterprise value

The diagram suggests a number of specific, measurable outcomes from typical Enterprise Architecture goals. Without exploring every line of value:

  • A reduced technology portfolio can and should result in improved sourcing, improved support, improved security, reduced IT staffing spend, and potentially reduced development time. For example, vendors may offer more favorable terms when their products are preferred standards throughout an organization. A smaller product portfolio is easier to secure.

  • Better understanding of the current estate should reduce investigation times and outages, and reduce the risk of regulatory violations. For example, if regulators require evidence that employee medical records have not been removed from the country, architecture’s curating of that information will expedite compliance response.

  • Ensuring systems are adaptable (e.g.,they have service interfaces) and resilient (they are designed for operability) should improve both time to market over the product’s lifecycle, and ultimately effectiveness in customer acquisition and retention.

These are not intangible suggestions. We have previously studied the work and influence of Don Reinertsen, who emphasizes the critical importance of an economic model.

Important
Some might say that architecture’s value is “intangible.” If you are tempted to say this, you should read Douglas Hubbard’s How to Measure Anything: Finding the Value of “Intangibles” in Business [127].

We close this chapter section by discussing two current value concepts and how architecture contributes (or detracts) from them:

  • Cost of delay

  • Technical debt

Reducing cost of delay

We have covered the concept of cost of delay previously, at the team and product level. However, this powerful concept can also be applied at higher levels. cost of delay is not a concept familiar to most architects. It poses two important challenges:

  • How can architecture help reduce the cost of delay within the product portfolio?

  • How can architecture not, itself, introduce un-economical cost of delay?

As we’ve discussed previously, the definition of cost of delay is intuitive. It is the opportunity cost of not having a given product or service available for use: the foregone revenues, the cost of the workarounds and inefficiencies. If the architecture process becomes the critical path for a product or service’s release (a common experience), then the Architecture process is responsible for that product’s or services’ cost of delay.

The cost of delay can take various forms, some of them significant. For example: suppose there is a need to demonstrate a product to key clients at a trade show. This could be the company’s best opportunity to develop business; the sales team estimates $12 million in funnel opportunities based on previous experience that should result in at least $2 million in sales in the year, with projections of another $1 million in maintenance and renewals. However, if the product is not ready, these benefits will not materialize. If everything else is ready, but the Architecture process is delaying product readiness, then the Architecture process is incurring $2 million in the cost of delay. This is bad. The Architecture process is clearly impacting significant business objectives and revenue.

But the question still needs to be asked, “what benefits do we receive from having an Architecture process?” We discussed such benefits above. Are these benefits adding up to $2 million a year? No? Then your Architecture process does not make good economic sense. On the other hand, what if the architects were kept out of the picture, and the product team chooses an untested technology, instead of re-using a well known and reliable approach already proven for that company? What if that decision were the cause of missing the trade show? What if it can be shown that re-usable components identified as architecture standards were increasing the speed of delivery, and reducing the cost of delay, because they are reducing the need for product teams to perform risky (and yet redundant) Research and Development activities?

Quantifying these benefits across a portfolio is difficult, but should be attempted. cost of delay can and should be calculated at the portfolio level, and this can provide “enterprise-level decision rules” that can help an organization understand the cost and value of operating model changes [219 pp. 35-38] including instituting processes (such as Change Management or Technology Lifecycle Management), or even the establishment of Enterprise Architecture itself.

Technical debt revisited
Although immature code may work fine and be completely acceptable to the customer, excess quantities will make a program unmasterable, leading to extreme specialization of programmers and finally an inflexible product. Shipping first-time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite…​ The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation…​
— Ward Cunningham
OOPSLA '92

We touched on technical debt in Chapter 3’s discussion of refactoring. Technical debt is a metaphor first introduced by Ward Cunningham [75] in the context of software, widely discussed in the industry. It can be applied more broadly at the portfolio level, and in that sense, is sometimes discussed in Enterprise Architecture. Debt exists in the form of obsolete products and technologies; redundant capabilities and systems; interfaces tightly coupled where they should be loose and open, and many other forms.

Technical debt, like the cost of delay, can and should be quantified. We’ll discuss approaches to that in the chapter section on portfolio management.

Scaling the enterprise mental model
“standard Enterprise Architecture language and methodology is especially helpful in large, complex enterprises that are geographically dispersed, and which may have multiple social and work cultures that have promoted different ways of doing things.” [22], chapter 3.
— Scott Bernard
Introduction to Enterprise Architecture

We’ve often referred to the concept of common ground through this book. The architecture supports common ground understanding at scale, by curating a shared mental model for the organization. In doing so, it enables the “right emergent behaviors” (as Adrian Cockcroft suggests). It also enables communication across diversity and may improve staffing flexibility and mobility among teams.

12.3. Architecture practices

Before we get into a detailed discussion of architecture domains, let’s talk in general about what architects do and some common practices and themes.

As we mentioned previously, architecture itself as a term shows up in many ways, as role, artifact, program, and organization.

In this chapter section, we will look at:

  • The relationship of architecture and governance

  • Architecture as a management program

  • The importance of visualization as a practice in architecture

  • Architecture and the quest for “rationalization”

12.3.1. From the author: What do architects do, actually?

I was a Lead Architect (job class Systems Architect 6) for Wells Fargo for 6 years. This is a director-level position, and I was ultimately awarded the VP title, which in financial services tends to be honorary. (I never managed a large organization, but I did lead various ad hoc teams, more by influence than command). My assigned domain was the “business of IT,” including systems management, service management, portfolio management, and the data, processes, and tools of architecture itself.

Across an annual IT spend of around $5 billion, many of course were involved in all these questions, but I was a nexus and was often called on to lead workshops and discussions with senior executives. These folks were typically at the “2-down” level from the CIO, that is, executives reporting to one of the CIO’s direct reports, themselves leading large teams of teams. They called me in when they were struggling with managing one of the larger IT shops on the planet, especially when it came to processes, data, and systems internal to the IT organization. (I always admit, I never learned that much about banking; there was plenty to do just coordinating that IT pipeline and the thousands of systems it was delivering).

Comparing my activities during those 6 years with how industry standards (such as the TOGAF standard) describe architecture is interesting. Building models and “architectures” was only a small part of my work. I found myself involved in or playing the role of:

  • IT strategic planning

  • IT portfolio management

  • “Zoning authority,” e.g., defining what systems are “of record” for what data

  • Program architect, e.g., Application Decommissioning and Portfolio Rationalization for the Wells Fargo/Wachovia merger

  • Internal consultant (“first line of defense before calling Accenture”)

  • Technology standards governance

  • RFP owner for selecting new technologies

  • Data governance

  • Vendor product analysis, often in liaison with analyst firms such as Forrester Research and Gartner Group

  • Center of Excellence for data, process (BPM), and systems analysis and modeling

  • Solutions design standards and patterns

  • Continuous service improvement (called “critical systems review”)

  • Major incident root cause analysis

  • Project governance

  • IT ombudsman and process troubleshooter (“you architects say the process should work this way, but it doesn’t — help me”)

  • Shuttle diplomat — driving agreement between deeply conflicted business units or individuals, where relationships had broken down.

If I had to characterize the important skills for this role, they would start with communication and facilitation. In terms of the principles discussed in this book, the architecture team was a mechanism for synchronizing across the organization. It definitely fit the classic definition and value proposition of a staff organization.

12.3.2. Architecture and governance

Enterprise architecture has a clear relationship to governance as we discussed it in Chapter 10. It provides a framework for managing long-lifecycle concerns and various forms of enterprise risk, especially as related to digital and IT systems.

Architecture is an important part of the governance equation. Architecture becomes the vehicle for technical standards that are essential risk controls; a risk management organization cannot achieve this alone.

EA, therefore, may have a role in defining policies, especially at the mid-tier of the policy hierarchy — neither the highest enterprise principles, nor the most detailed technical standards, but rather policies and standards related to:

  • Choice of certain enterprise products expected to be heavily leveraged (e.g.,common database and middleware products)

  • Design patterns for solving recurring requirements (e.g.,user authentication, load balancing, etc.).

  • System of Record identification and enforcement

As discussed in Chapter 10, there needs to be traceability from tactical standards to strategic codes and principles. The preference for a given database should not be a policy, but having a process that establishes such a preference would be -— that is, a policy should exist saying (for example) “there shall be a Technology Lifecycle Management process with the following objectives and scope.” Where appropriate, such policies might also be linked to specific risks as controls or enablers.

As for all policies, it’s important to have some sort of sunset mechanism for Enterprise Architecture guidance. As Bente et al. note, Many EA-originated policies that appear obsolete today have not always been meaningless…​A frequent example is the uncontrolled proliferation of newly hyped technologies by the IT crowd, and the Enterprise Architecture group’s rigid attempt to reinstitute order. Once the technology has matured, the Enterprise Architecture rules often appear overly strict and suppress a flexible use of the appropriate technology [21], p.19.

The issue with the quote above is that the overall benefits of having (for example) a Technology Lifecycle Management process are not usually quantified in terms of cost and risk avoidance. Without an overall governance mandate and value proposition, Enterprise Architecture activities may seesaw in response to the “issue of the moment.” This is not a recipe for sustainable architecture; whose most important value proposition lies in the long term. Architecture, as a component of coherent governance, requires no less.

As we discussed in Chapter 10 governance emerges in part as a response to external forces. Architecture often plays a consultative role when external forces become governance issues, for example:

Governance is also concerned with efficiency, which also becomes a key architecture concern with associated practices:

  • IT portfolio rationalization

  • Business process optimization

  • Shared services and APIs re-use

  • Master and reference data management

Finally, does Enterprise Architecture promote effectiveness? Effectiveness is often seen as the primary responsibility of “the line” in line/staff paradigms. However, as the impact model suggests, establishing a foundation of re-usability and limiting technical choices can increase the speed with which new products and services are delivered.

12.3.3. Architecture as a management program

program
Figure 220. Large scale architecture program

The preceding section discussed the relationship of architecture to governance. As we covered in chapter 10, governance is not management. Here, we will cover the topic of architecture as a management program of activity, in part through examining an example large-scale architecture program.

Architecture as a program refers to a coordinated set of

  • processes,

  • job roles,

  • standards and practices,

  • artifacts,

  • organizations, and

  • cadenced and ad hoc activities

intended to serve a key coordination role. Illustrated in Large scale architecture program is a large-scale, coordinated architecture program in a large enterprise. Notice that this is not a single organization. The Architecture Program in this example spans a centralized Enterprise Architecture group as well as teams of Line of Business architects.

The Enterprise Architecture organization might report to a CTO, the Chief of Staff for the Office of the CIO, or the head of Corporate Strategy and Planning. It is a centralized organization with a small staff of domain architects and an Architecture Standards organization that owns two key cross-functional architecture processes.

Lines of Business have dedicated IT organizations, and these organizations have Chief Architects with their own staff. In terms of our discussion of line/staff organization, it is as if the line organization has its own staff function within it; another way to think about it is that the line/staff division is fractal (that is, it reproduces at different scales).

Within the central Enterprise Architecture organization, we have a number of director-level Domain Architects. These architects might focus on particular business problems (e.g.,Supply Chain) or architectural domains (e.g.,Data and Information, or Security).

It is the responsibility of the Domain Architects to create Domain Architectures, which are documents that lay out an overall point of view on a particular domain and often serve as standards. These architectures may be created according to a methodology such as the TOGAF ADM, with the support of a repository-based tool and language such as ArchiMate notation or various standards from the Object Management Group.

The domain architects also serve as a senior consulting pool and are assigned to significant programs and projects as needed.

The Architecture Standards organization is responsible for two organization-wide architecture processes:

  • Architecture Review

  • Technology Lifecycle Management

The Architecture Review process is part of the investment process, when initiatives are initially scoped and direction set. The process requires architects to review significant proposed investments in new systems for consistency with standards (e.g.,the Domain Architectures and approved technologies). In terms of the previous section’s impact model, this process is attempting to support many of the lines of value through controlling redundancy and ensuring re-use and application of previously learned architectural lessons.

The Technology Lifecycle Management process is the means by which new vendor and open source products are approved as fit for purpose and/or preferred within the organization. In terms of the previous section’s impact model, this process is tasked with reducing the portfolio of vendor products which reduces cost and risk as shown.

Both of these processes are enterprise-wide processes. They are owned, defined, and modified by the Architecture Standards organization, but projects and products across the enterprise follow these processes.

Finally, the Architectural Governance Council brings together the senior architects from the central Enterprise Architecture organization and the LOB Chief Architects. It is a virtual organization operating on a quarterly cadence, responsible for setting direction and resolving the most difficult questions that may emerge from the architecture processes and domain architectures.

Overall, this may seem like a complex structure, but similar structures are in place in IT organizations with budgets of $1bn or more. It would be questionable to see comparable structures in much smaller organizations. However, this structure is useful to examine; organizations of various sizes might choose to use different parts of it.

12.3.4. Modeling and visualization

blueprint
Figure 221. Gudea with blueprint, ~2140 BCE
The true measure of the value of a model is whether it actually influences behavior.
— Preston Smith and Don Reinertsen
Developing Products in Half the Time

We discussed the importance of visual management in Chapter 5. Making information visually available to help create common ground, is an important Lean practice (see Andon).

The word “architect,” whether in a building or digital context, is often associated with visualizations: blueprints, sketches, specialized notations, and so forth. Drawings have been used to represent structures for likely as long as writing has existed. The image at the beginning of this section is of Gudea, a Mesopotamian ruler known for building temples; on his lap is a blueprint (see Gudea with blueprint, ~2140 BCE [5]).

Judging simply by its history, visualization is, therefore, an essential tool for humans dealing with large scale complexity (and erecting buildings has always been one of the more complex domains of human activity). In digital and IT contexts, however, visualization has certain challenges and notable skeptics. Adrian Cockcroft, the former CTO of Netflix, stated: “Our architecture was changing faster than you can draw it…​ As a result, it wasn’t useful to try to draw it” [32].

blueprint
Figure 222. Whiteboard

Even in construction and engineering trades that rely on blueprints as a source of truth, keeping them up to date requires considerable discipline and process. In faster-moving digital organizations, visual models are almost always out of date unless they have been specifically refreshed for a purpose, or unless there is a strong formal process in place (and the value of such a process may be difficult to establish). That doesn’t mean that diagrams will go away. Co-located teams use whiteboards and dry-erase markers and will continue to use them (see Whiteboard [6]). There are important cognitive and human factors reasons for this that will not go away. Because of these facts, it is useful to understand some of the fundamentals of how humans interpret visual data.

Human visual processing
blueprint
Figure 223. Fast recognition means survival

Dan Moody notes [188]:

Visual representations are effective because they tap into the capabilities of the powerful and highly parallel human visual system. We like receiving information in a visual form and can process it very efficiently: around a quarter of our brains are devoted to vision, more than all our other senses combined [63]. In addition, diagrams can convey information more concisely [27] and precisely than ordinary language [8, 68]. Information represented visually is also more likely to be remembered due to the picture superiority effect [38, 70] …​Visual representations are also processed differently: according to dual channel theory [80], the human mind has separate systems for processing pictorial and verbal material. Visual representations are processed in parallel by the visual system, while textual representations are processed serially by the auditory system…​ .

As the above quote shows, there are clear neurological reasons for diagramming as a communication form. To expand a bit more on the points Dan Moody is making:

Human vision uses parallel processing. This means that a given image or visual stimulus is processed by many neurons simultaneously. This is how we can quickly recognize and act on threats, such as a crouching tiger (as in Fast recognition means survival [7]).

A large percentage of our brain is devoted to visual processing. You will see figures quoted from 25% to 66% depending on whether it’s “pure” visual tasks or vision-driven tasks involving other brain areas.

The old saying "a picture is worth a thousand words" is consistent with the science. Diagrams can be both faster and more precise at conveying information; however, this has limits.

Finally, pictures can be more memorable than words.

Visualization in digital systems
A message to mapmakers: Highways are not painted red, rivers don’t have county lines running down the middle, and you can’t see contour lines on a mountain.
— William Kent
Data
blueprint
Figure 224. The first software flowchart

Architects and architecture are known for creating diagrams -— abstract graphical representations of complex systems. The first known instance of applying graphical techniques to a digital problem was in 1947 (see The first software flowchart [8], and visual notations have evolved along with the field of computing ever since. Notable examples include

  • The IBM flowcharting template (see IBM flowcharting template [9])

  • The Gane-Sarson data-flow diagram notation

  • The Chen entity-relationship notation

  • The Barker entity-relationship notation, including the “crow’s foot” to indicate cardinality

  • Harel state charts

  • The Unified Modeling Language (see UML sequence diagram [10])

(We touched on data modeling in Chapter 11). We will examine the ArchiMate® Modeling Language, a standard of The Open Group, for a current and widely used notation, in more detail in a future chapter section.

blueprint
Figure 225. IBM flowcharting template

Research at Microsoft suggests that developers use diagrams for four purposes:

  • Sharing

  • Grounding (defining ambiguous interpretations)

  • Manipulating

  • Brainstorming

They argue “diagrams support communicating, capturing attention and grounding conversations [4]. They reduce the cognitive burden of evaluating a design or considering new ideas [13]” [58].

But visual notations have been problematic in the Agile community; as Fowler notes in his essay Is Design Dead:

[Agile method eXtreme Progamming] de-emphasizes diagrams to a great extent. Although the official position is along the lines of “use them if they are useful," there is a strong subtext of “real XPers don’t do diagrams"…​ I think the issue comes from two separate causes. One is the fact that some people find software diagrams helpful and some people don’t. The danger is that those who do think that those who don’t should do and vice-versa. Instead, we should just accept that some people will use diagrams and some won’t. [98]

There is no question that some IT professionals, including perhaps some of the most skilled software engineers, find little of use in diagrams . As Martin Fowler says, “people like Kent [Beck, eXtreme Programming originator] aren’t at all comfortable with diagrams. Indeed, I’ve never seen Kent voluntarily draw a software diagram in any fixed notation.” However, it seems likely that Kent Beck and others like him are members of a programming elite, with a well-honed mental ability to process source code in its “raw” form.

blueprint
Figure 226. UML sequence diagram

However, if we’re building systems to be operated and maintained by humans, it would seem that we should support the cognitive and perceptual strengths of humans. Because diagrams are more readily processed, they are often used to represent high-level system interactions — how a given service, product or application is related to peer systems and services. Building such depictions can be helpful to fostering a shared mental model of the overall system objectives and context. The more complex and highly scaled the environment, the more likely one will encounter such artifacts as a means to creating the mental model.

The strength of human visual processing is why we will (probably) always use graphical representation to assist in the building of shared mental models. Specialists in the syntax and semantics of such designs will therefore likely continue to play a role in complex systems development and maintenance. Currently, if one seeks to hire such a specialist, one recruits some kind of architect — that is the professional role with the skills.

Note that flowcharts, data models, and other such diagrams tend to be associated more with the idea of “solutions” or “software” architecture. We’ll cover the architecture domains in the next chapter section, including examples of Business Architecture diagrams.

Limitations of visualization
The big picture is part of the standard mindset of EA, which everyone immediately associates with the activities of an enterprise architect. However, many of these big pictures you meet in practice have been over-abstracted to the point of insignificance and no longer address any relevant question. [21], p16.
— Bente et al.
Collaborative Enterprise Architecture

Visualization has a number of limitations:

  • It may be better suited for static structures than for dynamic processes,

  • diagrams may have no real information content,

  • diagrams are difficult to maintain, and there are diminishing returns the more they are elaborated and refined (e.g.,for archival purposes)

  • conversely, diagrams become less accessible the more complex they are,

  • visualization can result in distorted understandings,

  • ultimately, diagrams rely on deeper shared understandings that must be understood and managed.

Despite the familiarity of simple flowcharting, visual notations don’t scale well in terms of representing program logic. Therefore, for dynamic or procedural problems, they tend to be used informally, as sketch or whiteboarding, or at the business analysis level (where the flowchart represents business logic, not detailed software). Dynamic processes also change more often than the static structures, and so must be updated more frequently.

More static structures, including data and class models and systems interactions, are still often represented visually and in the case of data models can be transformed from conceptual representations to physical schema.

However, any diagram, whether of a dynamic or static problem, can reach a level of density where it’s no longer useful as a visual explanation. As diagrams become more complex, their audience narrows to those most familiar with them. Past a certain point, they exceed the limits of human visual processing and then are of little use to anyone.

For example, the illustration in Complex diagram [11], while intimidating, is likely useful to those who work with and study it. It would take some familiarization.

blueprint
Figure 227. Complex diagram

However,the diagram in Another complex diagram [12] is essentially unusable, as visually tracing any given line is too difficult, and it would be easy to mistakenly identify one bubble as dependent on another:

blueprint
Figure 228. Another complex diagram

This may seem like an obvious critique, but architectural diagrams of similar complexity and unusability have too often been produced. This brings up broader concerns of the limits of human cognition; recent research shows that it is difficult for humans to hold more than 4 things in working memory -— this is lower than previous estiamates [192]. Diagrams with more than 4-7 elements risk being dismissed as unusable.

Another issue with some diagrams is that they do not give a good sense of perspective or scale. This is sometimes seen in the Business Architecture practice of “capability mapping.” For example, suppose you see a diagram such as shown in Simple capability map.

capabilities
Figure 229. Simple capability map

Diagrams like this are common, but what does it mean that all the boxes are equally sized? Are there as many lawyers as sales people? Operations staff? It’s not clear what the advantage is to putting information like this into a graphical form; no interactions are seen, and the eight areas could more easily be expressed as a list (or “catalog” in the terms we’ll introduce below). This brings us to the final problem listed above: visualizations rely on some common ground understanding. If boxes and lines are used for communication, their meaning should be agreed upon — otherwise, there is a risk of misunderstanding, and the diagram may do more harm than good.

Regardless of the pitfalls, many architecture diagrams are valuable. Whether drawn on a whiteboard, in Powerpoint or Omnigraffle, or in a repository-based architecture tool , the visualization concisely represents a shared mental model on how the organizations will undertake complex activities. The diagram leverages the human preference for visual processing, accessing the powerful parallel processing of the visual cortex. Ultimately, the discussions and negotiations the architect facilitates on the journey to driving organizational direction are the real added value. The architect’s role is to facilitate discussions by abstracting and powerfully visualizing so that decisions are illuminated and understood across the team, or broader organization.

12.3.5. Repositories and knowledge management

Artifacts are generally classified as catalogs (lists of things), matrices (showing relationships between things), and diagrams (pictures of things).
— The TOGAF Standard
Version 9.2

The question was asked above, “why put things into a picture when a report is all that is needed?” We know that sometimes a picture is worth a thousand words, but not always. And sometimes the picture’s components need more description than can conveniently fit on the actual diagram. This brings us to the topic of Enterprise Architecture as knowledge management. Knowledge management is a broad topic, with a scope far beyond this book. But in the context of a digital organization, architecture can serve as an important component of an overall knowledge management strategy. Without some common ground of understanding, digital organizations struggle, and Enterprise Architecture can help.

Catalogs, diagrams, matrices

As the above quote from the TOGAF standard indicates, architecture can elegantly be represented as:

  • Catalogs

  • Diagrams

  • Matrices

For example, consider the image shown in Process and function diagram.

process-function
Figure 230. Process and function diagram

It can be read as saying that the “Quote to Cash” process depends on the following functions:

  • Sales

  • Contracts

  • Accounts Receivable

Notice that a matrix (Process and function matrix) can be read in the same way.

matrix
Figure 231. Process and function matrix

“Quote to cash,” which appeared as a chevron in the diagram, is now one of a list:

  • Quote to Cash

  • Procure to Pay

  • Hire to Retire

This list can be called a “catalog.” Similarly, there is another catalog of functions:

  • Sales

  • Contracts

  • Accounts Receivable

  • Vendor Management

  • Accounts Payable

  • Human Resources

  • Information Technology

  • Payroll

  • Benefits

The functions appeared as rounded rectangles in the diagram.

There are pros and cons to each approach. Notice that in about the same amount of space, the matrix also documented the dependencies for two other processes and six other functions. The matrix may also be easier to maintain; it requires a spreadsheet-like tool, where the diagram requires a drawing tool. But it takes more effort to understand the matrix.

Maintaining a catalog of the concepts in a diagram becomes more and more important as the diagram scales up. Over time, the IT operation develops significant data by which to manage itself. It may develop one or more definitive portfolio list, typically applications, services, assets, and/or technology products. Distinguishing and baselining high-quality versions of these data sets can consume many resources, and yet managing the IT organization at scale is nearly impossible without them. In other words, there is a data quality issue. What if the boxes on the diagram are redundant? Or inaccurate? This may not matter as much with a tight-knit team working on their whiteboard, but if the diagram is circulated more broadly, the quality expectations are higher.

Furthermore, it is convenient to have data such as a master lists or catalogs of processes, systems, functions, or data topics. We might also want to document various attributes associated with these catalogs. This data can then be used for operational processes, such as risk management, as we have discussed previously. For these reasons and others, Enterprise Architecture repositories emerge.

Architecture data management

When we establish a catalog of architectural entities, we are engaging in master data management. In fact, the architectural concepts can be represented as a form of database schema (see A simple metamodel).

metamodel
Figure 232. A simple metamodel
Note
A data model that organizes data about data and its related systems can be called a metamodel.

Thus, material that we first saw in diagram form can be stored in a database. Systems that enable this are called Enterprise Architecture repositories. Their data schemas are often called metamodels.

Architecture repositories require careful management. A common anti-pattern is to acquire them without considering how the data will be maintained. The concepts in the repository can be subjective, and if it is intended that they be of high data quality, investments must be made. Some kind of registration process or decision authority must exist for the creation of (for example) a new, official “system” record. Misunderstandings and disagreements about the very meaning of terms like “system” or “technology.” (We discussed some of the general issues in Chapter 11, with the ontology problem). Such issues are especially difficult when Enterprise Architecture repositories and metamodels are involved. Frequent topics:

  • Is an “application” different from a “service"? How?

  • What is the relationship between a “capability” and a “function"? Or a “capability” and a “process?”

  • How can we distinguish between “systems” and “technologies"?

  • What is the relationship between a “product” and a “service,” especially if the service is a market-facing digital one?

  • What is the relationship between:

    • Value chain

    • Value stream

    • Process

    • Activity

    • Task

And so on. One might expect that there would be industry standards clarifying such issues, and in some cases there are. In other cases, either there are no standards, or the standards are obsolete or conflicting.

Finally, there are a number of other systems that may interoperate with the architecture repository. The most important of these is the configuration management database (CMDB) or system (CMS) that underlies the IT service management tooling. These tools also need to know at least about systems and technologies and may be interested in higher-level concepts such as business capability. However, they usually do not include sophisticated diagramming capabilities or the ability to represent a system’s future state.

Other tools may include project management systems, portfolio management systems, risk management systems, service level management systems, and others. Application and service master data, in particular, is widely used, and if the Enterprise Architecture repository is System of Record for this data there will be many outbound interfaces.

An economic view
Note
The discussion below also applies to the Configuration Management Database (CMDB) as well as other similar repositories.

Part of the challenge of any repository is what data to manage. How do we think more systematically about this? First, we need to understand why we want to assemble this data in a ready-to-query repository. There are two major reasons why we store data:

  • There are no other sources for it. If we don’t establish a system of record, the data will go unmanaged. We won’t know what servers we have, or what applications we are running.

  • There may be other sources for the data, even systems of record. But we need an operational data store to bring the various data sources together in a way that makes them more efficient to query.

For either kind of data, you need to have an economic understanding of why you want it. Suppose you need to find out what applications you are running because you want to rationalize them. You could invest weeks of research into the question, costing perhaps tens of thousands of dollars worth of yours and others’ time, to create a one-time spreadsheet.

But what happens when there are multiple purposes for the data? You find out that the security group also wants a master list of applications and has been compiling a different spreadsheet, for example. What happens when the same engineers and managers are asked for the same data over and over again because there is no repository to maintain this organizational memory?

The challenge is, when does it make economic sense to pre-aggregate the data? The economic graph shown in Economic value of Enterprise Architecture repository may assist in thinking about this.

econ curve
Figure 233. Economic value of Enterprise Architecture repository

The graph may be familiar to those of you who studied economics. On the left, you have the assumption of no architecture repository, and on the right, you have a comprehensive architecture repository. With a less comprehensive architecture repository, you are paying some cost in research and outage impacts. You also are incurring more risk, which can be quantified. On the other hand, with a comprehensive architecture repository, you incur more costs in maintaining it. You need processes that have a direct cost to operate, as well as imposing indirect costs such as the cost of delay (e.g.,if updating the architecture repository slows down the release schedule).

But in the middle is a sweet spot, where you have “just enough” architecture repository data. This optimal architecture repository scope represents the real savings you might realize from instituting the architecture repository and the necessary processes to sustain it. This is not a complete business case, of course. Your projected savings must be offset against the costs of acquisition and operations, and the remaining “benefit” needs to exceed your organization’s hurdle rate for investments.

A simple example: Let’s say that you have identified a set of use cases indicating $250,000 maximum savings from an accurate and optimally scoped architecture repository. The implementation is projected to cost $200,000 over 3 years, for net benefits of $50,000. This means that you have an ROI of 25% ($50k/$200k). You can’t get 25% return on investment in the stock market, so the CFO sees this as a good use of money. On the other hand, if you only are projecting $15,000 in net benefits, for an ROI of 8%, the CFO may well say, “I can do better with other projects, or by leaving our money in the stock market.”

Of course, estimating benefits such as reducing redundant research are not simple. The book How to Measure Anything by Doug Hubbard [127] is a very useful resource for these kinds of problems. You may need to consider using techniques such as Monte Carlo Analysis for business benefits that are more probabilistic. But you do not need to throw up your hands and say it’s all just “intangible,” successfully making challenging business cases of this nature is possible.

12.3.6. The “rationalization” quest

A foolish consistency is the hobgoblin of little minds.
— Ralph Waldo Emerson

“Rationalization” is often listed as one of the major outcomes of Enterprise Architecture. What is meant by this? Let’s return to our scenario of one company acquiring another. As the newly merged company takes stock of its combined assets, it becomes clear that decisions need to be made. Among other areas, redundant systems exist for:

  • Marketing

  • Human resources

  • Accounting

The digital pipelines also are inconsistent, one being based on Github and Travis CI, the other being based on local Git and Jenkins.

Decisions need to be made as to which systems will be “go-forward.” While the teams involved will have strong input into the system decisions that affect them and will do most of the work, there is concern that some overall view and coordination of the effort is required. What if teams cannot come to a consensus? What if there is an opportunity to save money by standardizing on one vendor to support multiple diverse teams? For these reasons, the company assigns an architect to work closely with the overall merger program.

A merger is a dramatic example of a rationalization scenario. Established, ongoing companies, even without mergers, find that redundancy tends to accumulate. This is a normal outcome of the innovation and commoditization cycle; when technologies are new, organizations may experiment with several providers. When they become more standardized, and commodity, the desire for efficiency drives rationalization.

One of the challenges for rationalization is whether the economics and business context of any given rationalization effort are well understood. Consistency as an end in itself is not necessarily valuable. The impacts on enterprise value must be established: will the organization actually benefit from improved vendor leverage, operational integration, or a reduced security attack surface? If not, perhaps seeking “rationalization” is not the best use of organizational resources.

We close this section with some case studies on rationalization.

Application rationalization
One core question decided by governance is how much autonomy is granted to business units or geographical regions. In case this autonomy is high, would a quest for high IT integration and standardization not be like fighting windmills? [21 p. 45]
— Bente et al.
Collaborative Enterprise Architecture

A large electronics retailer purchases a smaller chain of stores specializing in vinyl records and CDs, just as the market for these are declining. The decision is made to integrate all the systems: Point of Sale, inventory, HR & Payroll, etc., in the interest of efficiency and rationalization.

Work progresses on this effort for nearly a year, and then the surprising news is announced: the newly acquired company is to be sold off! All the work that went into rationalizing the systems is wasted, and the independent operating model for the smaller chain has to be completely restored. Clearly, in this case, rationalization was not rational.

Data and information

A large financial institution had allowed its computer systems to become fragmented. Acquisitions and independence among the lines of business meant that if a customer moved, they might need to contact customer service repeatedly to change their address. This was a failure of master data management; there was no clear system of record for the customer address.

While we first discussed this kind of issue in Chapter 11, solving the problem requires more than data architecture. Establishing one data source as “master” requires considerable engineering in such an environment: there are capacity, security, interface, and business process concerns to work through, that in this particular case took tens of millions of dollars of investment, in response to increasing customer unhappiness.

And once a system of record is established and the data interfaces have been constructed reflecting its status, its role needs to be preserved. Independent teams may once again start to master their own customer data, “just for now,” because perhaps accessing the system of record seems to be too much work. Avoiding such scenarios is why some architecture organizations institute project reviews.

Technology rationalization case #1
A-380
Figure 234. Airbus A380

In 2006, Airbus was in the midst of developing the gigantic A380 aircraft. Because of the scale of the effort, multiple teams of engineers in different countries were working on the effort. As William Ulrich says of the German and French teams, “having failed to coordinate efforts to wire the world’s largest plane, they were surprised to learn that they had used different approaches to designing the A380’s wiring system” [271], p. 32. This was because the teams were using different software for wiring design of the critical wiring design software [61]. The use of different software to fulfill the capability resulted in a year’s delay, a $4.5bn order loss to Boeing, and a 26% drop in Airbus stock. [13]

Technology rationalization case #2

Henrik Kniberg worked on the PUST project for the Swedish national police, which was a project to deploy laptops to the Swedish police. Because of its urgency, it was allowed to use Lean and Agile techniques, and received favorable media coverage and was generally deemed a success [158].

Unfortunately, a drive for technology “rationalization” resulted in the re-platforming of the system on a commercial platform; the Siebel CRM system [157]. Furthermore, an open loop waterfall method was used to deliver the system. Kniberg reports that the result has been an unsuccessful rollout, unhappy users, and cost to the Swedish police department of about 1 billion pounds ($1.6B).

As we have discussed, there can be an economic case for rationalization. It reduces support costs and increases vendor leverage. However, 1 billion pounds would have bought a lot of support & vendor leverage for the “nonstandard” technologies. It is hard to see that this was an economically rational decision, especially given the particular risks of police work (the system in question is used by officers in the field, to keep records on criminal cases). It does not take much imagination to think of scenarios where a difficult to use system for a police officer could have costly or even tragic results. In this case, the quest for rationalization appears misguided.

Service or technology rationalization?

A large U.S. company with a robust architecture program found itself with a serious controversy. A request had been made of the Technology Lifecycle Management process for the Subversion version control system to be approved for use by development teams. A central version control team (what might now be called a Release Engineering team) was opposed to this, citing duplication of technologies with their chosen platform of PVCS.

Multiple version management systems already did exist, as different platforms had different requirements. In general, the thinking was that the approval process should simply verify that the tool was “fit for use” and not worry about redundancy.

However, as the discussion escalated, it became clear that the central release engineering team was worried not so much about the technical capabilities of Subversion, but rather a “loss of franchise” for their services — they had been established as the primary shared service for source control. Many teams did use their shared services, but there was also a regulatory issue — they were seen as an authoritative and auditable repository by regulators.

So the situation was complex; was the company “rationalizing” at the technology or service level? Ultimately, a solution (unsatisfactory to most) was arrived at that the Subversion-using team still had to use the central source repository as a system of record. They could develop locally using Subversion but were still expected to archive their source in the central tool.

In the next chapter section, we will go into a more thorough discussion of the service/application “level” versus the technology “level.”

12.4. Architecture domains

In the last section, we discussed what architects do. The focus was primarily architects in a “team of teams” environment, not strictly at the level of a single product team. However, while this chapter has a strong Enterprise Architecture orientation, it is also about the practice of “architecture” more generally. In this chapter, we will break down the different forms of architecture and their relationships.

We have seen the Zachman Framework previously. The higher levels are considered “business” or “operating model” concerns. Meanwhile, the lower levels are more technical. In discussing the various domains of architecture, however, a simpler structure is useful. The numerous columns in the Zachman framework don’t necessarily translate to specific architecture domains (for example, there are many data architects representing the “what” column, but not many who specialize strictly in questions of timing -— the “when” column). Similarly, we can simplify the number of rows by consolidating them into three.

ArchiMate is a modeling language and standard of The Open Group which we will discuss more later in the chapter. It uses a framework that can be viewed as a simplification of the Zachman model (see Simplified view of the ArchiMate framework [14]).

archimate
Figure 235. Simplified view of the ArchiMate framework

As we look at the overall structure of the architecture disciplines, we have three disciplines that correspond to the columns. We’ll call these “perspectives":

  • Data Architecture

  • Process Architecture

  • Capability Architecture

And three disciplines that correspond to the hierarchical layers:

  • Business Architecture

  • Application Architecture

  • Technology Architecture

Does this mean that we have nine flavors of architecture, one for each intersection? Not necessarily. Some intersections make more sense than others, and some tend to merge with their neighbors. For example, see the Data Management Body of Knowledge [76], which covers the gamut of information and data topics from high-level glossaries all the way down to physical database administration. Data architects can and do work across all levels in their perspective.

12.4.1. Architecture perspectives

Data architecture

From top to bottom, the data architecture (“what”) perspective includes concepts such as :

  • The universe or domain of discourse

  • Ontologies, semantics, and conceptual models

  • Logical data models

  • Data subjects & records

  • Classes

  • Entities/attributes/relationships

  • Tables/columns/constraints

We covered data architecture in depth in Chapter 11.

Process architecture

Process architecture is concerned with why and how activities are performed. It includes the detailed, step by step understanding of activities, in a transparent way. From top to bottom, it includes concepts such as:

  • Value chain

  • Value stream

  • Business process

  • Algorithm

  • Workflow

  • Activity

  • Procedure

  • Task

  • Step

Importantly, processes CROSS organizations. An “onboard employee” process, as we have seen, may require participation from multiple organizations. We covered process management in depth in Chapter 9.[15]

flowchart
Figure 236. A flowchart
Capability architecture

The last column in the figure Simplified view of the ArchiMate framework represents steady state activities. “Hire employee” is a process; “Manage Human Resources” is a capability. We do not necessarily know all the steps or details; we just know that if we ask the function or capability for some result, it can produce it. This perspective includes:

  • Function and its relatives

  • Function

  • Capability

  • Service (sometimes)

We defined function previously in Chapter 9. Note that there is little consensus (and as of 2016 much industry debate) around whether functions are the same as capabilities; this textbook sees them as at least similar. Capability is an important concept in Business Architecture, as it has emerged as the preferred concept for investment. We do not invest in data, or process, except as they are realized by a supporting capability. A comprehensive graphical depiction of “capabilities” may be used to help visualize portfolio investments, sometimes using green/yellow/red color coding — this is called "capability heat mapping.”

12.4.2. Architecture layers

Business Architecture
Business architecture offers views of the business that are unavailable from other sources, including IT. Business architecture can tell you what is being done, by which business units, for certain customers, involving various products, via certain processes, involving selected business information. Business architecture generated blueprints serve as the basis for root cause analysis of critical business requirements while providing the foundation for establishing a solution-oriented roadmap that leaves the speculation and guesswork by the roadside. In a word, business architecture delivers “transparency” to a wide variety of internal teams, roles, and business units [271 p. 195].
— William Ulrich
Business Architecture: The Art and Practice of Transformation

Business architecture is defined by the Business Architecture Body of Knowledge (BIZBOK) as “a blueprint of the enterprise that provides a common understanding of the organization and is used to align strategic objectives and tactical demands.”

BIZBOK goes on to say that “the value of Business Architecture is to provide an abstract representation of an enterprise and the business ecosystem in which it operates. By doing so, Business Architecture delivers value as an effective communication and analytical framework for translating strategy into actionable initiatives. The framework also enhances the enterprise’s capacity to enact transformational change, navigate complexity, reduce risk, make more informed decisions, align diverse stakeholders to a shared vision of the future, and leverage technology more effectively.”

BIZBOK covers the Osterwalder Business Model Canvas extensively. [47 pp. 282-297]. In so doing, it clearly implies that the concept of the business model is of interest for business architects. Because of this, it’s helpful to view business architecture as the component of Enterprise Architecture most concerned with the business model, in addition to the operating model.

More specifically, there are a number of concerns that Business Architecture includes:

  • Value streams

  • Capabilities

  • Organization

  • Information

  • Stakeholders

  • Vision, Strategies, and Tactics

  • Initiatives and Projects

  • Decisions and Events

  • Metrics and Measures

  • Products and Services

  • Policies, Rules, and Regulations

from [47 p. 2]. The reader might notice some overlap with CObIT enablers, which also include Information, Policies, and Organization.

On the other hand, we DO NOT expect to see in Business Architecture the following:

  • Specific technology products (Oracle 11g)

  • Software architectures (design patterns, class models, etc.).

  • Detailed deployment diagrams

  • Specific project plans

  • Detailed flowcharts

  • Specific devices

Application architecture

Application, or application systems, like data, process, and capability, is a fundamental and widely used architecture perspective, as well as a layer. It can be defined as "a fixed-form combination of computing processes and data structures that support a specific business purpose.” [25 p. 125]. An application system is practically relevant, obtainable and operable. (You can buy, or realistically build, one of these).

Application architecture can have two meanings:

  • The architecture of a given application

  • The architecture of application interactions

For this book, we’ll leave the architecture of a given application for solutions and software architecture. Application architecture is the interaction of multiple applications (which may include digital products and/or services, depending on organization terminology). In a complex, multi-product environment, application architecture tends to focus on the interfaces and interactions between the application systems. It’s often a concern when systems are considered for retirement or replacement (for example, when a comprehensive ERP solution is brought in to replace several dozen home-grown applications).

Application architecture is also concerned with the application lifecycle, as covered at the start of this section.

Technical architecture

Where Business Architecture intersects with the business model, technical architecture overlaps with actual engineering and operations. In particular, technical architecture tends to be concerned with:

  • Identification of new technical platform capabilities: for example, does the organization need to bring in a NoSQL platform? Private cloud?

  • Choice of vendor products, once a technical need is established

  • Establishing infrastructure services as appropriate

  • Defining appropriate usage, including infrastructure design patterns

  • Tracking the lifecycles of the selected products and dependent services, and making appropriate plans

12.4.3. Other forms of architecture

There are other kinds of architecture that don’t fit neatly into this arrangement:

  • Solutions architecture

  • Software architecture

  • Information architecture (UX-related definition)

Solutions architecture

Solutions architecture, especially, is a loose term. In general, it is restricted to one product, or a few products which are working together, as a “solution” to a business problem. Within that scope, it may incorporate concepts from infrastructure to Business Architecture. It also connotes more technical concerns.

Software architecture
Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.
— Grady Booch

“Architecture” in the sense of pure software is a topic with much research and writing. In this book, it has been a concern since Section 1, and so we don’t talk as much about it here. Software architecture is usually aligned with application architecture, but not all application architecture is software architecture; application architecture may also include packaged solutions whose internal architecture is not a concern.

Information architecture (alternate usage)

Information architecture may mean the higher, more business-relevant levels of data architecture. However, the term also is used in relation to application architecture, in the sense of how the user understands the meaning and data represented by a website or application, or even just the navigation structure of a website.

12.5. Agile and architecture

…​we encountered companies that, despite having a fully institutionalized Enterprise Architecture in place, were in a state close to paralysis…​Although Enterprise Architecture has reached the mainstream, a skeptical undertone with regard to its effectiveness has always existed. (p 12-13)
— Bente et al.
Collaborative Enterprise Architecture

The relationship between architecture (both “enterprise” and other forms of architecture) and current Agile, DevOps, and digital product development approaches is too often troubled. However, the hope is that this book has given you a set of tools for resolving these concepts in a productive way.

This section will challenge you by presenting the polemical arguments directly and frankly, concluding with thoughts on finding common ground.

Author’s Note

As a practicing architect, I can confirm that there is often friction between developers with an Agile perspective and architects, whether “enterprise” or other kinds. This carries through into industry discussions and conference presentations. Unfortunately, positions in the technology world sometimes get taken to extremes. I think the best approach to resolving this conflict is through careful understanding of the perspective of each “side” as both have some validity.

The following sections, "The hubris of architecture" and "The hubris of Agile" are intended to be representative of the viewpoints of practitioners holding these positions, and are deliberately extreme. Both positions should be read and evaluated together. I recommend framing the conversation in terms of architecture’s value impacts and quantifying wherever possible.

12.5.1. The hubris of Architecture

The goal of Enterprise Architecture is to act as a guide, perhaps a pathfinder, who takes the enterprise on a transformational journey—from an incoherent and complex world with line-of-business separation, product-specific stovepipes, legacy systems estate, and costly operation to a more rationally organized and useful state with multiservice, revenue-generating platforms and an efficient operational regime. On the way, radical surgeries may be required to eliminate duplication, reduce costs, improve reliability, and increase agility in the business. Enterprise Architecture acts as a strategic foundation for business enablement. [21] p9

Product development organizations often experience architecture and its goals as unwarranted interference, imposing a high cost of delay with little apparent return on investment. Architecture approvals can be required on:

  • application designs

  • database designs

  • selection of technology products

and other such topics. When development cannot proceed without those approvals — or if the approvals come at the cost of expensive re-work — the experience can often be challenging. Bente et al. warn: “if enterprise architects claim to be the only decision-making body in technical matters, there is a huge risk that they create a bottleneck…​The practical consequence is that projects deliberately circumvent the enterprise architects…​” [21 p. 19]

And, looking more broadly at the practice and history of IT architecture, the case against it is strong. Enterprise architecture has presented itself as a solution to complexity, long IT time scales, business frustration, and other various IT problems. These issues are at this writing being solved, but not by architecture -— at least not visibly. Instead, visible and publicized progress has come through the increasing adoption of Agile and DevOps practices rethinking open-loop, slow feedback, batch-oriented delivery. Architecture has failed in many ways:

  • It failed to realize the emergent issue of too much enterprise work in process, instead championing the proliferation of enterprise processes and their associated queues.

  • Architects' motivation for “efficiency” and interest in capability mapping did not help the cause of cross-functional teams. Instead, functional silos were reinforced as supply-centric “capabilities, ” and the project-centric anti-pattern of “bringing the team to the work” was promoted as enterprise standard operating procedure — despite the growing evidence of Scrum and Agile success. The iterative, experimental narrative of Lean Startup did not originate from EA.

  • Despite a professed interest in systems theory, architecture has failed to adopt a workable systems perspective on digital delivery. It did not recognize the fundamental problems of stage-gated delivery, big bang releases, queue proliferation, and so forth. Architecture “gap” analysis resulted in project recommendations, again “bringing the team to the work.”

  • Architecture has often deserved the criticism of “top-down planning,” which in complex systems domains too often doesn’t work. Architects frequently fall into the trap of the HiPPO (Highest Paid Person’s Opinion). A sense of Lean Startup experimentation, of placing bets on options and testing hypotheses, is not part of the mainstream Enterprise Architecture culture. Instead, the architecture is presented as an established fact, with “governance” to ensure conformity. Hypothetical “synergies” emerging from “common platforms” are often offered as justification for architecture, with little follow up in measuring actual value delivered.

Justifications for architecture often invoke “complexity” in the portfolio of systems. In response, architecture has often given in to the desire for a complete “radical surgery” systems re-engineering, the temptation of the “clean slate.” But as Jez Humble accurately notes,

A common response to getting stuck in a big ball of mud is to fund a large systems replacement project. Such projects typically take months or years before they deliver any value to users, and the switchover from the old to the new system is often performed in “big bang” fashion. These projects also run an unusually high risk of running late and over budget and being canceled. Systems re-architecture should not be done as a large program of work funded from the capital budget. It should be a continuous activity that happens as part of the product development process. [129], chapter 10

Architecture methodology, with its focus on identifying capability gaps for feeding into the project portfolio process, has perhaps been too prone to supporting these large, troubled programs. As we know from our earlier chapters, large system changes are inherently risky, and any intervention into a complex system is better undertaken as a series of smaller, incremental changes with frequent monitoring and assessment.

12.5.2. The hubris of Agile

Instead of tapping into the existing knowledge of the organization the autonomous team is prone to reinvent the wheel, and the wheel that they reinvent will not always be superior to the one we are currently using [219 p. 104].
— Donald Reinertsen
Managing the Design Factory

The Agile community has its own blind spots and challenges. Speed is seen as a good in itself, too often without an economic model. Agile teams often clash with enterprise governance processes that have sound compliance and financial benefits. Phrases like “you aren’t gonna need it” are used to justify lapses of due diligence on critical capabilities, and standard platforms and vendors are seen as unreasonable limitations on team autonomy -— to the point where it seems some teams' interest is primarily in padding their resumes with as many new technologies as possible, regardless of the long-term consequences for the organization.

The limitations of cost of delay
When it comes to system implementation, the temptation to be fast, often under the nom de guerre of agile, can soften quality controls and threaten product usability, reliability, safety, and lifecycle cost [177].
— Ruth Malan

cost of delay is a real and often overlooked issue, in understanding the net value of architecture. But it is only a factor and does not eliminate the value proposition of architecture. If the cost of delay is only a few hundred dollars a month, but the risk or technical debt represent millions, then the delay may be appropriate. Don Reinertsen, who has done more than anyone to promote the idea of cost of delay, emphasizes that all decision-making must take place within an economic framework and that means that the other architectural impact factors on organization value must also be considered [220], chapter 2.

Documentation

Documentation has been a core concern of the Agile movement, being mentioned in one of the four core principles of the Agile Manifesto:

"Working software over comprehensive documentation” [6+]+.

When documentation primarily takes the form of secondary artifacts, it is appropriate to question the need for it. “The code is the documentation,” some will argue. While it is true that good coding practices result in easier-to-understand (and maintain) source code, the code cannot be the only documentation. As Ruth Malan notes,

…​for systems of sufficient scope and complexity to warrant teams (of teams) working on (incremental) implementation and evolution, the sheer mass of code can make it hard to discover the essential structure from bottom-up decisions made entirely through the medium of code. [177+]+

In terms of systems theory, a complex software system has emergent behavior, not obvious from just looking at its components. Because the system’s behavior can’t be reduced to its pieces, “self-documenting code” can only go so far. The behavior of the assembled components as a system needs to be represented somehow, in a way that transcends the mere mechanics of the pieces. Abstraction is necessary to understand and communicate emergent behavior, and this leads inevitably to visual representation. Without some attention to documenting overall context and systemic intent and behavior, the effectiveness of the overall human/computer system degrades. For example, Alistair Cockburn reports that the Chrysler Comprehensive Compensation project, one of the first widely-reported Agile projects, was eventually halted, and

…​left no archived documentation …​ other than two sentence user stories, the tests, and the code. Eventually, enough people left that the oral tradition and group memory were lost [64 pp. 41-43+]+

In short, failure to sustain a shared mental model of a complex system is a risk that may result in loss of that system’s value.

Sourcing and technology standards

Agile and DevOps are software-development centric, and have transformed that world. However, digital organizations don’t always build everything. There is a complex web of supplier relationships even for organizations with robust software development capabilities, and many organizations would still prefer to “buy rather than build.” Software may be consuming the world, but that doesn’t mean everyone employs — or should employ — software developers. Agile has not had a primary focus on sourcing, and evaluating commercial software is not a common Agile topic.

Suppose you have an idea for a digital product, and you know that you will be (at least in part) assembling complex services/products produced by others? Suppose further that these provided services overlap (the providers compete)? You need to carefully analyze which services you are going to acquire from which provider. You will need a strategy, and who is it that analyzes these services and their capabilities, interfaces, non-functional characteristics, and makes a final recommendation as to how you are going to bring them all into one unified system?

It is easy to say things like, “the teams get to define their own architecture, ” but at some point, the enterprise must reckon with the cost of an overly diverse supplier base. This is a very old topic in business, not restricted to IT. At the end of the day, supplier and sourcing fragmentation costs real money. Open source, Commercial-off-the-shelf, cloud, in-house…​ the options are bewildering and require experience. In a sense, the supplier base itself is an inventory, subject to aging and spoilage. (We can consider this another way of understanding technical debt). A consistent evaluation approach is important (preferably under an economic framework; see Reinertsen & Hubbard). And at some point, product development teams should not have to do too much of their own R&D on possible platforms for their work.

Architecture as emergent
“At Netflix, we had no central control [of the architecture] …​ The goal of architecture was to create the right emergent behaviors…​” [32]
— Adrian Cockcroft
former CTO Netflix

The Agile Manifesto is well known for saying “The best architectures, requirements, and designs emerge from self-organizing teams” [6]. This is one of the more frequently discussed Agile statements. Former Netflix CTO Adrian Cockcroft has expressed similar views (quote above).

A key question is whether “architecture” is considered at the single product or multi-product level. At the single product level, collaborative teams routinely develop effective software architectures. However, when multiple products are involved, it is hard to see how all the architectural value scenarios are fulfilled without some investment being directed to the goals of cross-product architectural coordination. It helps when rules of the road are established; both Amazon and Netflix have benefited from having certain widely accepted platform standards, such as “every product communicates through APIs.” Netflix has had a long-term commitment to Amazon cloud services; it is probably not acceptable for teams there to decide on a whim to deploy their services on Google Compute Engine or Microsoft Azure, so at least in that sense Netflix has an architecture. The question gets harder when layered products and services with complex lifecycle interactions are involved.

Microservices can reduce the need for cross-team coordination, but as we previously discussed, coordination needs still do emerge.

12.5.3. Towards reconciliation

So how do we reconcile Agile with architecture practices, especially Enterprise Architecture and its concerns for longer lifecycles, aggregate technical debt, and governance? We need to understand why we look to architecture, what utilizing it means, and how it ultimately adds value, or doesn’t, in the organization.

Why: Creating the context

One principle throughout this book has been “respect the team,” because true product value originates there. If teams are constantly fragmented and their cohesion degraded by enterprise operating models and governance mandates, their ability to creatively solve business problems is hampered. Command and control replace emergence, motivation declines, and valuable creativity is lost. Enterprise architecture must first and foremost protect the precious resource that is the high-performing, collaborative, creative team. As we’ve discussed, imposing multiple governance checkpoints itself adds risk. And while it’s inevitable that the team will be subject to organization-wide mandates, they should be given the benefit of the doubt when autonomy collides with standardization.

When Enterprise Architecture takes on true Business Architecture questions, including how digital capabilities are to be enabled and enhanced, Agile insights become an input or kind of requirement to Business Architecture. What capabilities require high-performing, cross-functional teams? What capabilities can be supported by project-based temporary teams? And what capabilities should be outsourced? The more valuable and difficult the work, the more it calls for the careful development of a common mental model among a close-knit team over time. Driving organizational capability investment into long-running team structures becomes a strategy that organizational architects should consider as they develop the overall organizational portfolio.

Architecture adds value through constraining choices. This may seem counterintuitive, but the choice is often between re-using a known existing platform or engaging in risky research and development of alternatives. R&D costs money, and itself can impose a delay on establishing a reliable digital pipeline. But ultimately, the fundamental objective remains customer and product discovery. All other objectives are secondary; without fulfilling customer needs, architectural consistency is meaningless. Optimizing for the fast creation of product information, tested and validated against operational reality, needs to be top of mind for the architect.

What: The architecture of architecture, or the digital pipeline itself

The digital pipeline ultimately is a finely tuned tool for this creation of information. It, itself, has an architecture: business, application, and technical. It operates within an economic framework. To understand the architecture of the digital pipeline is in a sense to understand the “architecture of architecture.”

As we’ve discussed above, architecture, like staff functions generally, is in part a coordination mechanism. It collects and curates knowledge and sustains the organization’s understanding of its complex systems. Architecture also identifies gaps and informs the investment process, in part through collecting feedback from the organization.

If architecture’s fundamental purpose is enabling the right emergent behavior, there are still questions about how it does so. Architecture adds value in assisting when:

  • systems are too big for one team

  • features are too complex to be implemented in one iteration

  • features require significant organizational change management

As a coordination mechanism, it can operate in various ways including planning, controlling, and collaborating. Each may be appropriate for a given challenge or situation. For example, different approaches are required depending on whether the product challenge is Flower or Cog. A flower is not engineered to fill a gap. A cog is. Market-facing experiments need leeway to pivot, where initiatives intended to fill a gap in a larger system may require more constraints and control. And how do architects know there is a gap? It should be an hypothesis-driven process, that needs to establish that there is a valuable, usable, feasible future state.

How: Execution
Another possible objection against agile methods is that the processes in EA, and in the enterprise generally, are simply not operating with a time window of the typical sprint length of three weeks. This, of course, is true. But it is not, on closer inspection, a counter-argument against the application of agile principles to EA—just the opposite. The long process cycles add to EA’s lack of transparency and promote a silo mentality. Agile techniques can help here. [21]
— Bente et al.
Collaborative Enterprise Architecture

As an executing capability, architecture operates in various ways:

  • Planning and analysis

  • Governance and approvals

  • Collaboration and guidance

Ideally, planning and analysis occur “upstream” of the creation of a product team. In that guise, architecture functions as a sort of zoning or planning authority -— “architecture” is not a process or organization directly experienced by the product team. In this ideal, there is no conflict with product teams because once the team is formed, the architect’s job is done. However, this assumes that all the planning associated with launching a new product or capability was done correctly, and this itself is a kind of waterfall assumption. Some form of feedback and coordination is required in multi-product environments.

alt text
Figure 237. What is your cost of delay?

It is in the “governance and approval” kind of activity that conflict is most likely to emerge. Cadence and synchronization (e.g.,coordination strategies) with the potential to block teams from pursuing their mission should be very carefully considered. If there is a process or a queue of architecture approvals, it at least should be operated on cost of delay of the work it’s blocking. And more generally, across the organization, the process should be tested against an economic model such as establishing a nominal or portfolio-level cost of delay. Like other processes, architecture itself can be assessed against such a baseline.[16]

Queued approvals are only one way of solving issues. A rich and under-utilized approach is using internal market-type mechanisms, where overall rules are set, and teams make autonomous decisions based on those rules. Don Reinertsen, in the Principles of Product Development Flow, discusses how Boeing implemented distributed decision-making through setting tradeoff rules for cost and weight. Rather than constantly routing design approvals through a single control point, Boeing instead set the principle that project managers could “purchase” design changes up to $300 per unit, to save a pound of weight. As Reinertsen notes,

The intrinsic elegance of this approach is that the superiors didn’t actually give up control over the decision. Instead, they recognized that they could still control the decision without participating in it. They simply had to control the economic logic of the decision. [220 p. 42].

One particular work product that architects often are concerned with is documentation. The desire for useful documentation, as mentioned above, reflects architecture’s goals of curating a common ground for collaboration. As Bente notes, “In an agile project, explicit care must be taken to ensure proper documentation—for example, by stating it as part of the condition of satisfaction of a user story or in the definition of done” [21 p. 170]

Architecture Kata
…​standardization on a particular toolchain or technology stack is neither necessary nor sufficient for achieving Enterprise Architecture goals such as enabling teams to respond rapidly to changing requirements, creating high-performance systems at scale, or reducing the risk of intrusion or data theft. Just like we drive product and process innovation through the Improvement Kata, we can drive architectural alignment through it too.

Architectural goals—for example, desired performance, availability, and security—should be approached by iteratively specifying target conditions at the program level. Following the Principle of Mission, set out a clear vision of the goals of your Enterprise Architecture without specifying how the goals are to be achieved and create a context in which teams can determine how to achieve them through experimentation and collaboration. [129], chapter 10.
— Jez Humble et al.
Lean Enterprise

Toyota Kata was discussed in Chapter 7. In Lean Enterprise, Jez Humble et al. argue that it can provide a useful framework for architecture objectives. Toyota Kata emphasizes end-state goals (“target conditions”) and calls for hands-on investigation and response by participating workers, not consultants or distant executives. Architecture can benefit by understanding “gaps” in the sense of Toyota’s target conditions, and then support teams in their collaborative efforts to understand and achieve the desired state. The architectural impact model can assist in thinking through suitable target conditions for architecture:

  • top-line impact through re-use (lowering cost of delay)

  • bottom-line impact through portfolio rationalization

  • risk impact through minimizing attack surface and re-use of known good patterns and platforms

alt text
Figure 238. Australian strangler vine surrounding tree

Keeping the target operating condition specific is preferable. When architecture scopes problems too broadly, the temptation is to undertake large and risky transformation programs. As an alternative, Humble suggests the "strangler pattern,” proposed by Martin Fowler in 2004 [97]. This pattern uses as a metaphor Australian “strangler” vines that grow around trees until the original tree dies, at which point the strangler vine is now itself a sturdy, rooted structure (see Australian strangler vine surrounding tree [17]).

To use the strangler pattern is not to replace the system all at once, but rather to do so incrementally, replacing one feature at a time. This may seem more expensive, as it means that both the old and new systems are running (and cost savings through sunsetting the old system will be delayed). But the risk of replacing complex systems is serious and needs to be considered along with any hoped-for cost savings through replacement. Humble and Molesky suggest:

  • Start by delivering new functionality—at least at first

  • Do not attempt to port existing functionality unless it is to support a business process change

  • Deliver something fast

  • Design for testability and deployability

The strangler pattern is proven in practice. Paul Hammant provides a large number of strangler pattern case studies, including:

  • Airline booking application

  • Energy trading application

  • Rail booking application

and others [114].

Of course, there are other ways architecture might add value beyond system replacement, in which case the strangler pattern may not be relevant. In particular, architects may be called on to closely collaborate with product teams when certain kinds of issues emerge. This is not a governance or control interaction; it is instead architecture as a form of shared consulting “bench” or coordination mechanism. Not every product team needs a full-time architect, the reasoning goes, so architects can be assigned to them on a temporary basis, e.g., for one or a few sprints, perhaps of the technical “spike” (discovery/validation/experimentation) variety.

In order to successfully meet this role, the architect needs to have the hands-on technical ability. Many Agile authors are dismissive of “ivory-tower” architects who do not do “hands on” work, and in fact, if an architect is going to sit with a technical team as a solutions advisor they clearly need the technical skills to do so. On the other hand, not all architects operate at the solutions level, nor are the problems they face necessarily programming problems, as you’ll see in the following sidebar, The challenge of the “hands-on” architect.

The challenge of the “hands-on” architect

Architect is a broad category as we have seen. It includes individuals who are talented at single-product designs, as well as those tasked with managing the overall interactions between hundreds of systems.

It is well and good for architects to maintain some technical facility, but in the case of true, portfolio-level enterprise architects, how to do so may not be obvious. What if one’s portfolio includes multiple platforms and languages? It is simply not possible to be hands-on in all of them. Some of the most challenging systems may be a complex mix of commercial product and customization, e.g., ERP or core banking systems. Choosing to be “hands on” may not even be welcomed by a given team, who may see it as meddlesome. And other teams may feel the architect is “playing favorites” in their choice of platform to be “hands-on” with.

Clearly, if the organization is running primarily on (for example) Node.js, having strong JavaScript skills is important for the architect. But in more heterogeneous environments the architect may find strong data management skills to be more useful, as often interfaces between systems become their primary concern.

Another form of being “hands on” is maintaining good systems administration skills, so that the architect can easily experiment with new technologies. This is different from being adept in a given programming language. One recent positive trend is lightweight virtualization. In years past, experimenting with new products was difficult on two fronts:

  • First, one had to obtain high-performance computing resources capable of running demanding software. Sometimes these resources needed unusual operating systems (e.g.,“in order to try our software, you have to run HP-UX version 11” -— not a capability most architects had in their back pocket).

  • Second, one had to obtain demonstration version of software from vendors, who would usually start a sales cycle if you asked for it.

Times have changed. Demonstration versions of software are increasingly available with little overhead or risk of triggering unwanted sales calls. Platform requirements are less diverse. And lightweight virtualization (e.g.,the combination of Vagrant and Virtualbox) now makes it possible for architects to be hands-on; modern laptops can run multiple VMs in cluster architectures. Significant experimentation can be carried out in working with systems of various characteristics. Being able to evaluate technologies in such a virtual lab setting is arguably even more useful than being a “coding architect.” Product team developers do the programming; the architect should be more concerned with the suitability and feasibility of the integrated platform.

Evaluating architecture outcomes

Finally, how do we evaluate architecture outcomes? If an organization adopts an experimental, Toyota Kata approach, it may find that architecture experiments run on long time horizons. Maintaining an organizational focus on value may be challenging, as the experiments don’t yield results quickly. Curating a common ground of understanding may sound like a fine ideal, but how do we measure it?

First, the concept of Net Promoter Score is relevant for any service organization, internal or external. Its single question “Based on your experience, on a scale of 1-10 would you recommend this product or service to a friend?” efficiently encapsulates value in a single, easy to respond to query.

As digital pipelines become more automated, it may be possible to evaluate their digital exhaust impact on architecture services:

  • are architecture standards evident in the source and package managers?

  • are platform recommendations encountering performance or capacity challenges?

In a world of increasing connectivity and automation, there is no reason for architects in the organization to lack visibility into the consequences of their recommendations. Ultimately, if the cost of operating the coordination mechanism that is architecture exceeds the value, it provides, then continuing to operate it is irrational.

12.6. Portfolio analysis

…every product and every activity of a business begins to obsolesce as soon as it is started. Every product, every operation, and every activity in a business should be put on trial for its life every two or three years.

Each should be considered the way we consider a proposal to go into a new product, a new operation, or activity – complete with budget, capital appropriation request, and so on.

One question should be asked of each: “if we were not in this already, would we now go into it?” And if the answer is “no,” the next question should be: “How do we get out and how fast?” [83]
— Peter F. Drucker

The aggregate digital investments of any large enterprise are massive. Whether capital or expense, whether internally hosted or externally sourced, the IT portfolio consumes tremendous amounts of time, money, and expertise. In this chapter, we have discussed architecture in terms of catalogs, diagrams,and matrices, sometimes stored in architecture repositories. But architecture repositories are in general not analytic tools. Nor is architecture an analytic discipline (it is not usually strongly quantitative). Architecture too often relies heavily on interviews and expert opinions, approaches that are sometimes critiqued as relying on the “Highest Paid Person’s Opinion.” Portfolio management can be a means to bring in a more quantitative approach.

We first discussed portfolio management in Chapter 8. How do we define portfolio? [25] defines it as “things of consequence managed over the long time horizon.” The concept of TOGAF catalog is a good place to start. Frequently, portfolio management starts at the application level; the application portfolio can be seen as a sort of alternate “chart of accounts” by which digital investments can be grouped.

Portfolios are intended to provide a consistent basis for comparison and understanding. Items in the portfolio should be comparable. They may rely on both objective and subjective data points:

  • Objective data

    • Business revenue/value

    • Cost

    • Risks

    • Staffing

    • Service levels, changes, incidents

    • Product obsolescence (quantifiable technical debt)

  • Subjective data

    • Usability

    • Customer satisfaction (net promoter score)

    • Engineering assessments (subjective perceptions of technical debt)

Digital investments and costs typically include some or all of the following:

  • Hardware investment, depreciation or leasing

  • Software licensing (typically 15%-20% annually of initial acquisition, required for vendor support).

  • Floor space – i.e., real estate charges

  • Facilities infrastructure: power, high volume air conditioning (HVAC), raised floor, racks, etc.

  • Network connectivity and related infrastructure (e.g.,directory services software, security perimeters, and the like)

  • Operational software infrastructure: monitoring systems, batch schedulers, backup systems, and so on, all with their own associated costs.

  • Operations and support staff. Staffing typically can come in various flavors:

    • Data center operations monitors

    • Help desk operators

    • Application specialists

    • Senior engineers

    • Senior IT executives and customer relationship managers

    • Business-side lead users and process and information specialists

    • Vendor relationship owners and contract managers

12.6.1. Application value analysis

Application portfolio management may concern itself with any or all of the following:

  • Business or financial value of applications in terms of what they support/enable

  • Application functions (examined for redundancy)

  • Application total cost of ownership

  • Application complexity

  • Fitness and currency of underlying technical products

  • Application service performance

  • Application customer feedback

A four-box is often used for application value analysis:

Table 28. Standard IT portfolio “4-box”
Low Technical Fitness High Technical Fitness

High Business Value

Re-engineer or replatform.

Consider outsourcing carefully.

Invest as needed to exploit value.

Low Business Value

Retire if possible or outsource

Improve understanding of customer requirements

Retire service if no longer serving a purpose but reclaim/re-use platform, capabilities & assets

12.6.2. Application rationalization

What does it mean to rationalize"? There are three steps:

  1. Take an inventory of the items to be rationalized.

  2. Categorize them to identify redundancy.

  3. Consolidate redundancy

This implies some basis for classification so that the investments can be compared. This is where industry taxonomies, such as found in vertical standards, may help. You may call your application “Peoplesoft HR,” “Workday,” or even an internal brand like “HR2020,” but a reference taxonomy categorizes it as simply a “Human Resource Management System.”

Data integrations may also be a way to identify redundancy. When two systems start exchanging more and more data, a useful question is whether there is still a need for both or if a more economical, integrated solution is possible. Just beware of the risk of overly ambitious consolidation efforts.

Through analysis and understanding of redundancy, business and technical value, applications (and related concepts such as services and capabilities) can be managed as a coherent investment strategy. For further information, see the books referenced at the end of this chapter.

12.7. Architecture standards

This section briefly describes a number of key architecture standards for the student’s reference.

12.7.1. Business Architecture

Note
We previously discussed the Business Analysis Body of Knowledge. Although they have similar names, BABOK and BIZBOK are distinct in terms of content and their sponsoring organizations.
  • The Business Analysis Body of Knowledge (BABOK), from the International Institute of Business Analysis, [134], focuses on business analysis: “the practice of enabling change in an enterprise by defining needs and recommending solutions that deliver value to stakeholders."

  • The Business Architecture Body of Knowledge (BIZBOK) is a broader, more diverse set of guidance from the BA Guild+[<<BAGuild2016,47>>]+. It defines Business Architecture as “a blueprint of the enterprise that provides a common understanding of the organization and is used to align strategic objectives and tactical demands."

12.7.2. The TOGAF® standard

The TOGAF® standard, a standard of The Open Group, is a general-purpose framework and method, currently in Version 9.2. It is "a detailed method and set of supporting resources for developing an Enterprise Architecture. Developed and endorsed by the membership of The Open Group Architecture Forum, the TOGAF standard represents an industry consensus framework and method for Enterprise Architecture that is available for use internally by any organization around the world…​" The TOGAF standard dates from 1995 and is based on even earlier work from the U.S. Department of Defense, dating back to 1986 [264].

12.7.3. The ArchiMate® Enterprise Architecture modeling language

The ArchiMate® Specification, a standard of The Open Group, is an open and independent modeling language for Enterprise Architecture that is supported by different tool vendors and consulting firms. The ArchiMate Specification provides instruments to enable Enterprise Architects to describe, analyze, and visualize the relationships among business domains in an unambiguous way. The ArchiMate specification is currently at version 3.0.1, and there is an associated ArchiMate Model Exchange File Format Standard which provides a standard file format for the exchange of ArchiMate models between different tools.

12.7.4. Industry verticals

Industry sectors often develop architectural representations of their concerns. Examples include:

  • Association for Retail Standards (National Retail Federation)

  • Banking Information Architecture Network (BIAN)

  • The Enhanced Telecom Operating Model and related work of the Tele-Management Forum

  • The ACORD architecture for insurance

  • The Exploration, Mining, Metals and Minerals (EMMM™) Forum of The Open Group

12.7.5. Governmental frameworks

Governmental architecture frameworks are often used to standardize architecture, for example:

  • The U.S. Federal Enterprise Architecture Framework (FEAF)

  • The U.S. Department of Defense Architecture Framework (DODAF)

  • The U.K. Ministry of Defense Architecture Framework (MODAF)

This section to be expanded in future editions.

12.8. Conclusion

Architecture is a challenging topic for both the student and the practitioner. Its value is too often unclear, but when it is eliminated, it tends to re-emerge in response to operational learnings. “If we’d just had some architecture, X would not have happened” is too often heard.

As humans, we think in abstractions and architecture is an expression of this. The architect skilled in doing so, in sense-making across the landscape and providing guidance on the main decisions, identifying opportunities, and taking care for stewardship of the longer horizon will remain a valuable asset to the digital organization as it scales up into the largest problems.

12.8.1. Discussion questions

  • Should digital professions continue to use the term “architect"?

  • Debate the pros and cons of having an architecture organization approve designs or technology platform choices. Be prepared to argue either side.

  • Debate the pros and cons of visual modeling

  • Do you agree that architecture is a form of staff function? Why or why not?

  • Read the articles by Bloomberg below and discuss whether there is any future in architecture.

12.8.2. Research & practice

  • Build a virtual machine cluster and install or develop software for it, ideally including a database. Obtain a modeling tool or template for ArchiMate modeling and draw a representation of the software or data architecture. (There is a list of ArchiMate resources here).

  • Draw the same idea in two different ways in ArchiMate.

  • Draw two or three catalogs and associated matrices and diagrams. Make sure all are consistent (e.g.,lines correspond to matrix intersection data)

  • Compare and contrast any two industry vertical architectures.

  • Compare and contrast business model versus operating model, and in the same analysis consider the distinction between Enterprise Architecture and Business Architecture. Can Enterprise Architecture be equated with the operating model? If Business Architecture is a subset of Enterprise Architecture, does that mean it also is primarily concerned with the operating model? Alternatively, is Business Architecture also concerned with the business model?


1. Image credit https://www.flickr.com/photos/aigle_dore/6365091333, downloaded 2016-10-25, Image copyrights Moyan Brenn, commercial use permitted
2. Image credits https://www.flickr.com/photos/endogamia/3979040177, https://www.flickr.com/photos/perspective/8474999166, https://www.flickr.com/photos/martye_green/2354576085, downloaded 2016-10-16, all commercial use permitted
3. Image credit https://en.wikipedia.org/wiki/Franz_Moritz_von_Lacy#/media/File:Count_Franz_Moritz_von_Lacy_(oil_on_canvas_portrait_HGM).jpg, downloaded 2016-10-04, labeled as public domain by Wikipedia
4. loosely based on [289] and succeeding work
5. Image https://www.flickr.com/photos/daryl_mitchell/16189447931, downloaded 2016-10-10, commercial use permitted
6. Image https://www.flickr.com/photos/simonov/15484240880, downloaded 2016-10-10, commercial use permitted
7. Image https://www.flickr.com/photos/samiksha/2436037856, downloaded 2016-10-10, commercial use permitted
8. From [277], public domain assumed.
9. Image https://www.flickr.com/photos/mwichary/3249179483, , downloaded 2016-10-10, commercial use permitted
10. Image https://www.flickr.com/photos/raphaelstolt/514643232, , downloaded 2016-10-10, commercial use permitted.
11. Image https://www.flickr.com/photos/pushandplay/2968259379, downloaded 2016-10-10, commercial use permitted
12. Image https://www.flickr.com/photos/taedc/9614791576, downloaded 2016-10-10, commercial use permitted
13. Image credit https://www.flickr.com/photos/44400809@N07/4081438180 downloaded 2016-10-11, commercial use permitted.
14. Similar to [203], section 2.6
15. Image credit https://www.flickr.com/photos/lespetitescases/16715406524, downloaded 2016-10-16, commercial use permitted
16. Image credit https://www.flickr.com/photos/julianlim/4598412264, downloaded 2016-10-25, commercial use permitted
17. Image credit https://www.flickr.com/photos/cynren/16011788979, downloaded 2016-10-23, commercial use permitted