Chapter 7

Toward Pragmatism
Lean and Agile EA

Content

So far we have taken a good look at the state of EA today. We have analyzed both the benefits and the shortcomings of contemporary patterns in EA. Enterprise architecture is a sound, sensible, and necessary step for a large company to stay competitive and make best use of its IT investments. However, the current way of actually creating an EA, enterprise architecture management, is somehow trapped between the Scylla of over-formalization and the Charybdis of under-empowerment.1

So, what can help in this dilemma? The goal of a well-functioning EA is worth pursuing, but the path is riddled with obstacles and ambiguities. Pragmatism is one way out this dilemma. The word pragmatism is derived from the Greek word pragma, meaning act or deed. Pragmatism is “a practical approach to problems and affairs” (Merriam-Webster, 2011). Being pragmatic means stripping intellectual concepts down to their core so that they become mere tools for achieving simple, concrete goals.

Pragmatism

The Meaning of Pragmatism

The online dictionary Merriam-Webster lists pragmatic as the second most frequently looked-up word.2 Evidently, pragmatism is both a popular and a confusing notion in our time. It is an appealing concept in a world of increasing complexity, a shortcut with both opportunities and risks.

A prominent example for brutally pragmatic behavior can be found in ancient Greek history. According to mythology, reign over Asia was promised to the man who could untie a sacred knot in the ancient town of Gordium. Alexander the Great (356–323 BC), conqueror of Persia, didn’t even attempt to unbind the knot, but just cut it with his sword.

On a meta level, one could say that Alexander disposed of the concept of “untying knots” since it was irrelevant to his agenda (giving a demonstration of his willingness and ability to rule over Asia) and concentrated on the core idea of having the knot loose to fulfill the ancient promise. In general, cutting Gordian knots relates a violent act that may be justified in some cases and less so in others.

A caveat for pragmatism in EA, with its inherent long-term orientation, is the trade-off between agility on one hand and stable planning on the other. How pragmatic can EA actually be without losing the important qualities of any kind of enterprise-level processes: repeatability and measurability? This chapter will attempt to find a satisfactory answer to this question.

A natural approach to unloading some ballast from EA and cutting through knots not worth untying by hand can be found in the principles of lean and agile software development. Cornerstones of these methodologies are reduced process overhead, people empowerment, and a strong focus on deliverables. Lean and agile methods can help make EA more down-to-earth, efficient, lightweight, and flexible, without neglecting the traditional qualities, processes, and tasks of EA work. Basically, this approach puts the first two of our three central maxims from the previous chapter into practice:

• Establish a lean set of processes and rules instead of overloading the stakeholders with bureaucratic processes and unsolicited artifacts

• Adopt evolutionary problem solving instead of blueprinting the whole future rigidly on a drawing board

The architecture factory: Applying lean and agile methods to EA

To avoid one misunderstanding right from the start: We do not assume that all IT development projects are executed according to the lean or agile methodology. Our approach to enterprise architecture works with waterfall projects just as well as with agile or lean projects. The proposal we are making here is to apply lean and agile principles to the EA processes themselves, irrespective of the methodology used in the downstream software development projects.

EA as practiced today has all the traits of a well-developed IT profession—methodologies, frameworks, tools—but it lacks an effective implementation and integration into the enterprise context. EA should make sure that architecture is not an art practiced in the seclusion of the enterprise architect’s study room. It should also ensure that the enterprise architect doesn’t turn into the IT handyman, fixing the odd problem here and there. The vision for a well-positioned EA group is a scalable and cost-efficient delivery organization for architectural services that operates in a fast and flexible way. In other words, it should work like an architecture factory.

The concept of a “software factory” came up at the end of 1960, when frustration about the error-prone and painstakingly slow ways of software programming was on the rise. The idea was to introduce to software creation a semi-automated assembly process and techniques from modern mass production (Bemer, 1968). The original vision of a fully automated software production process has not come true. However, the factory notion, maximizing effectiveness while minimizing time and costs, has diffused into mainstream thinking in the IT community. Characteristic properties of a factory include reliability, reproducibility of results, a sensible division of labor, defined supplier and delivery channels, the use of standardized tools, and so forth.

What kind of factory is meant here? It should be clear that architecture creation should not and cannot be turned into a fully automated process. It is nonsense to strive for a full-fledged factory model where human architects are reduced to performing a limited set of standard activities in a standardized environment. In fact, such a goal might have brought EA into its poor shape in some enterprises.

The most appropriate vision for an EA factory is a semi-industrialized shop, dedicated to craft manufacturing. If we were talking about car manufacturing, the architecture factory would resemble the small, highly specialized shop for producing high-end sports cars rather than the huge plant producing 500,000 compact cars per year.

In German, there is a subtle but clear difference between Fabrik (factory) and Manufaktur (manufactory), whereas in English the two terms are synonyms. A Fabrik is a shop for fully automated mass production; a Manufaktur is a small and customized shop where high-end products are created using a high amount of craftsmanship. The Volkswagen Phaeton, their top-of-the-line model, is built in a so-called Gläserne Manufaktur in Dresden, Germany. This is a brand-new showcase plant with wooden floors and huge windows, where skilled workers apply a lot of manual customization. Since the word factory sometimes has a negative connotation, our architecture factory should be understood here in the sense of a German Manufaktur.

In the ideal architecture factory, the enterprise architects and other stakeholders in EA are highly skilled individuals who work in a custom-tailored environment. The factory supports their effectiveness and creativity via lean processes, guidelines, and tools. Most major consulting firms operate with a comparable model in the EA consulting domain. EA is run as a dedicated practice with experienced consultants and analysts, a carefully nurtured knowledge base, and a formal engagement model and delivery process.3

The production tools of the EA factory are EA frameworks, maturity models, processes, governance models, and so forth. They just need to be organized in a “sufficiently factory-like” manner. This means again avoiding the extremes. There should be neither too much nor too little of a “factory notion” within EA. Too much of it leads to the bureaucracy trap of overregulation, overdecomposition of workflows, and overstandardization of tools and activities. An EA organization with too few factory characteristics, on the other hand, neglects the overall organization structure. It tends to be unstructured, poorly organized, and unpredictable and leaves each enterprise architect in his own private silo, coping with an overwhelmingly complex enterprise and IT environment around them.

Lean and agile principles as facilitators for the architecture factory

How can EA accomplish the tightrope walk between too much and too little factory affinity? Here we can learn from software engineering in general. The lean and agile methodologies have introduced certain new principles to traditional software development. They have replaced the inflexible, ponderous waterfall model with a more lightweight, efficient, and human-centric approach: lean and agile software development methods.

Talking of factory models again: The waterfall model is like a Taylorian factory—many processes, strict division of labor, strong decomposition of tasks, organization of the software creation process in a sequential assembly line. Above all: The waterfall approach requires strict up-front planning to avoid changes in the complex production machinery later on.

Lean and agile methodologies have formulated their antithesis: welcoming change, creating and planning incrementally, and focusing on structured human interaction instead of channeled reporting lines. At the same time, lean and agile methods fully subscribe to the factory notion, too. They do not strive to abolish organizational structures and revert to the software-developing “noble savage”4 working on her own. Lean and agile methods introduce a reduced and efficient organization to produce large and complex software systems. As they focus on the highly skilled individual interacting with her peers, their factory notion is very close to the craft manufacturing shop we formulated previously as an ideal model for EA.

So, let lean and agile principles create the same kind of factory for EA if they can do it so successfully for software development in general. The traditional EA has waterfall roots and a strong tendency toward its methods. Barry Boehm described the waterfall pattern5 as a reversal of the Agile Manifesto (Beck et al., 2001). Malicious tongues could interpret it as a description of contemporary EA:

 Processes and tools over individuals and interactions

 Comprehensive documentation over working software

 Contract negotiation over customer collaboration

 Following a plan over responding to change

If lean and agile are the antithesis of a waterfall, they can also be a suitable tool to make EA less waterfall-prone. The ultimate goal of a lean and agile architecture factory is highly skilled and creative yet at the same time industrialized architecture creation. Its processes are streamlined and optimized—but in a pragmatic way, by concentrating on the essential qualities of architectural work, avoiding an overdose of structure and regulations.

Adepts and critics of lean and agile methods could argue that these methods, or at least their practitioners, often show some fundamentalist, near-religious traits. Can they really be applied in a pragmatic way to an enterprise domain like EA? Indeed, both lean and agile methodologies worship a utopia to some extent.

In agile methods, it is the perfect socialism of a team free of hierarchy and politics. Agility comes from a history of “organizational anarchists” (Beck et al., 2001). This bears the risk of a clash with the rather conservative enterprise culture. And of course, the agile community is not free of self-deception and hypocrisy.6

Lean software development, on the other hand, sometimes shows an uncritical worship of the “ideal company,” into which Toyota is often superelevated.7 This surely obscures the reflections how lean methods can be applied to the rather humble and chaotic enterprises that you find in real life.

So, it seems appropriate to take any promises of silver bullets in the lean and agile methodologies with a grain of salt. We will use the ideas from both areas like a toolbox: Not every tool fits everywhere. In the end, stripped from their ideological elements, many lean and agile practices boil down to plain common sense. We will see that they can be applied in a fruitful way to make EA more pragmatic.

Definition of a lean and agile EA

It is now time to define what a lean and agile EA looks like and how the vision of a pragmatic architecture factory can be achieved. Lean and agile concepts overlap to some extent. Therefore, we can cherry-pick the best of both worlds for the EA field.

Lean and Agile Architecture Factory

Building Blocks for the Lean and Agile Architecture Factory

The following building blocks form a lean and agile architecture factory, as shown here:

No. Building Block Goal
1 Get rid of waste by streamlining architecture processes. Values the sparse time of enterprise IT stakeholders by focusing on lean processes with as little management overhead as possible.
2 Involve all stakeholders by interlocking architecture scrums. Makes sure that all stakeholders are involved by focusing on structured human interaction as a main channel of information flow.
3 Practice iterative architecture through EA Kanban. Welcomes change, favors iterative design over large-scale, up-front planning, and supports this approach by tools and methods.

We will describe the lean and agile terms used in this definition (waste, scrum, Kanban) in the subsequent introduction to lean and agile concepts.

Building Block 1: Get rid of waste by streamlining architecture processes takes up an essential element of lean methodologies, the elimination of “waste,” to analyze the EA processes for unnecessary bureaucracy, overprocessing, delays, and so forth. By removing such wasteful activities, we can streamline EA processes.

Again, the lean quality of adopting a top-down, holistic perspective that is strictly goal oriented helps strip off needless ballast from the EA processes. One example of avoidance of waste is just-in-time modeling (modeling not more than is required at this moment), which is inspired by the lean idea of avoiding in-process inventory.

The lean approach has been tailored toward complex, repeating activities that are to be optimized. EA has a lot of them. Lean principles can be used to streamline top-down decision-making or design processes, such as the creation of an EA vision, an IT strategy, or the design of a complex IT transformation. Rule (2010) describes the effect of lean management in the following way:

 Being effective is (…) achieved by developing your organization’s ability to deliver its strategic goals—consistently, repeatably, predictably, efficiently. This requires intelligent and engaged management of the end-to-end value stream.

Therefore, Building Block 1 combines the essential lean quality of “optimizing the whole,” together with its value stream concept, with the scrums and iterations of agile development.

Building Block 2: Involve all stakeholders by interlocking architecture scrums makes sure to include all stakeholders on a regular basis. It forms a kind of “clocked” factory approach to producing EA artifacts. Agile is an iterative way to design a system—whether a house, a production plant, a software system, or a whole enterprise.

Being iterative is the canonical approach for an architect, since architecture is exploratory in nature, especially due to the immature and evolving nature of both business and IT today. This way, the enterprise architect is not overburdened by an up-front mental picture of the complete system in her mind. Instead, she can focus on the structure and problems of the more nearby deliveries and trust in the ability of selective refactoring later on, in the sense of an intentional architecture as coined by Leffingwell (2011). The use of sprints and architecture scrum teams introduces a regular heartbeat to architecture work and allows for a more iterative work mode in which information is shared regularly and early.

In our building blocks, agile principles come into the picture when EA is realized to deliver in a timely way and to get everyone on board. To put it simply, agile methods are good for “doing.” They have a strong focus on human interaction, which is a very important part of EA, and provide a number of practices in structuring that interaction. In addition, agile methods have been designed to welcome ad hoc change, helping to make EA more pragmatic and flexible.

Flexibility also plays an important role in Building Block 3: Practice iterative architecture through EA Kanban, where architecture backlogs and an EA Kanban board are introduced as a tool for prioritization and focusing on nearby deliveries. We will show that agile concepts for different granularities of requirement definition are well matched to the architecture layering and partitioning defined in EA frameworks.

TOGAF is taken as an example in Building Block 3 to demonstrate how a well-established EA framework can easily be adapted to an iterative work model. This way, the central agile notion of continuous integration is applied to EA. It allows the enterprise architects to deliver intermediate results—strategies, visions, guidelines, and plans—in a flexible and lightweight manner to their recipients. EA work can be tuned to prefer communication over perfection when it comes to modeling.

The building blocks are of an exemplary nature. We do not claim to have discovered the silver bullet of wisdom that can save EA once and for all. These are just effective tools that we have used a good deal in our IT careers and that make a lot of sense in architectural processes as well. We will outline them in detail in subsequent sections. For now, let’s first take a more detailed look at lean and agile methodologies. The next section will give you a backdrop against which to value our building blocks again. If you are already an adept practitioner of these methods, feel free to skip this discussion and jump directly to the detailed building-block descriptions.

Lean and agile principles

Lean and agile project practices have gained in importance and acceptance over the past decade. They are no longer a playground for innovators and early adopters. When it comes to agility, even conservative organizations express their interest, since there is a solid track record of successful agile projects in the industry. The inherent shortcomings of the waterfall approaches and the accelerated business dynamics simply force IT departments to rethink their traditional ways of software development.

Therefore, agile methods have long left the niche area of garage-based startups and state-of-the-art consultancies and have created a footprint in the traditional world of enterprise IT. Lean software development, on the other hand, has its roots in the Toyota production system. Originally a set of principles designed for optimizing a car-manufacturing process, lean methods have been very successfully applied to general business processes, specifically software development.

Although coming from quite different origins altogether, lean and agile techniques are strongly related. The lean approach, originating from being a simple and consistent rule set for a huge, well-oiled machine (the car factory), borrows many of its practical software development methods from the agile approach.

In contrast, agile methods have their roots in self-organizing teams who designed a pragmatic process that suited their idea of productive software better than the heavyweight waterfall approach did. By simplifying the production environment, agile methods introduced “lean” thinking to software development before the term became a hallmark of its own within the IT community.

In the following sections, we take a closer look at lean and agile methods separately to understand their origins, benefits, and shortcomings. It should be noted that this is not an in-depth description of lean and agile methods; rather, it is an introduction for a reader not accustomed to these methodologies to understand the later discussions, when we apply lean and agile thoughts to EA itself.8

We will also analyze the degree of overlap between the two approaches. Finally, we will define our concept of a lean and agile EA, where the lean and agile parts can help make such a waterfall-prone and long-term-oriented area as EA more pragmatic and flexible.

Team-driven and flexible: Agile software development

The traditional waterfall approach in software development assumes that a computer system can be designed and planned in advance, whatever the system’s complexity might be—even if the implementation time spans several months or even years. However, the effort to capture all requirements of a moderately complex application up front, by way of a paperwork exercise, is enormous. Despite all attempts, one usually misses the expectations of the users and stakeholders.

To ask a user to rigidly and exhaustively define how she would like to work with a new application two years from now means asking too much. Something similar can be said about the up-front design of such an application. Everyone in the software business has stories to tell how far the specification can deviate from the executable software system, if the planning lead time is too long. It should be understood that a long planning lead time is not the root cause of the problem, it is just its symptom. Essentially, planning time is an indicator of complexity. The reason for integration failure doesn’t lie in the disturbances and changing requirements during that phase. Even without them, it is simply beyond our human capabilities to accurately sketch a complex system with some million lines of code entirely at the drawing board.

The consequence is often a big-bang integration failure when the first end-to-end tests are run. Or, even if the original requirements have actually been met, the business situation has changed, rendering the original design useless. A particularly nice example of this phenomenon is the Safeguard Ballistic Missile Defense System, which was developed for the US army between 1969 and 1975 in an effort of over 5,400 person years. It stayed operational for merely 133 days after six years of development. The system had been overtaken by both political and technical developments: By the time it was finished, the ABM disarmament treaty with the Soviet Union had been signed, and the new Soviet missiles had actually become faster than the anti-missile-missiles (Broad, 2000).

These shortcomings of traditional software development practices triggered the creation of the agile development methodology. As the failure of projects completed using the waterfall approach became commonplace, the frustrations among IT practitioners made them embrace agile practices in their work culture.

Agile methods, in contrast to the waterfall model, accept the limited capability of humans to envision complex systems and their interactions with the environment. Agility continuously delivers working software to users and stakeholders and welcomes them saying, “This is not quite how we want it!” The short delivery and feedback cycle supports an experimental capturing of the user’s true requirements.

Agile ideas in software development have been around for longer than one might think (Larman and Basili, 2003). After some theoretical work by Walther Shewhart and W. Edwards Deming in the 1930s and 1940s, NASA (always at the leading edge of innovation in software development) started using an iterative development model in some projects in the 1950s. From 1970 onward, incremental and iterative methods, backed up by the occasional lighthouse project, were discussed among software professionals. Ironically, even the inventor of the waterfall concept, Winston Royce, strongly leaned toward an iterative approach for certain project types.

However, only since the mid-1990s have agile techniques become a force to be reckoned with in software development. They owe a good part of their success to the perception that they are something like an “anti-establishment” approach to software development, going against the traditional waterfall model. As many large IT projects suffer from the inherent shortcomings of the waterfall model, the agile approach received more and more attention.

Agile Manifesto

The Four Values of the Agile Manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

(Quoted from Beck et al., 2001.)

Agile Manifesto

The 12 Principles Behind the Agile Manifesto

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with preference for the shorter timescale.

4. Businesspeople and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity—the art of maximizing the amount of work not done—is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

(Quoted from Beck et al., 2001.)

The term agile was coined in the Agile Manifesto (Beck et al., 2001). This set of values and principles was formulated by a group of people who, coming from different backgrounds, had grown tired of ineffective, heavyweight processes. Agile is an umbrella term for various similar development approaches. The Agile Manifesto expresses their essence in four key values and 12 principles.

The 12 principles of the Agile Manifesto outline ways to implement the four key values. There is no such thing as the agile practices. Agility comprises many variants: scrum, XP, feature-driven development, and many more. Elaborating on them goes far beyond the scope of this book and is well enough captured in numerous standard works such as Cohn (2009) or Shore and Warden (2008). However, there are common denominators across all agile flavors. In the following subsection, we take a closer look at those practices and attempt an impartial view into their benefits and shortcomings.

Agile Glossary

A Short List of Core Agile Terms

When you take a closer look at the agile methodology, you are bound to meet the some terms over and over again. Therefore, we list them here (in alphabetical order) as a kind of “agile glossary”:

• Continuous integration. Continuous integration means a tool-supported automation of software build and test execution, which is repeated in continuous loops. This way, a noncompiling code, or code that causes tests to fail, is noticed with only a minimal delay after checking it into the source code management system.

• Iteration. A development cycle, usually between two and four weeks long.

• Pair programming. Two developers team up to develop code together in front of only one computer. This practice stems from XP.

• Product owner. A role in agile development, acting as a representative of the project customer.

• Refactoring. Restructuring the code without changing the system’s external behavior.

• Scrum team. A team of agile developers, typically between 6 and 10 members.

• Scrum master. A team role, responsible for moderating (not managing!) the team and protecting it from outside disturbances.

• Sprint. A sprint is one iteration. The precise content of an iteration is planned only at the beginning of the sprint.

What is the agile methodology good for? The main practices, with benefits and shortcomings

The most well-known characteristic of agility is its iterative, time-boxed approach. Software is developed in cycles of a fixed length, most often two or three weeks long. It is an iron rule that an iteration is not prolonged. Instead, if a feature cannot be completed in that timeframe, it is dropped and taken up again in the subsequent cycle. The goal of an iteration is always a feature that is completely “done.” In development, this means a piece of software that is fully tested and can be shipped.

This iterative approach, on one hand, helps in shaping the users’ and stakeholders’ requirements. A customer representative is present in all major agile meetings. The customer is not only invited to, but even responsible for, giving his input to each iteration planning. On the other hand, the short cycles are a way to respond to the accelerated changes in the business and technology environment. This allows development projects with a time horizon of two or three years to catch up with these changes along the way at much shorter time intervals.

Agile thinking accepts that an application system, designed one or two years ago, no longer matches the actual needs when it is eventually rolled out. The agile approach provides the means for continuous modifications that are necessary because of the way users’ work has changed, the company has been reorganized, or the product and service portfolio looks different now.

The short development cycles are accompanied by strict governance on quality. One of the most popular prejudices about agile methods is that “Agile means anarchy.” Actually, the opposite is true. Although the agile methodology emphasizes self-organizing teams, it has firm principles in place. Test automation and continuous integration are central concepts in agile projects. The worst blame for an agile developer is that she or he “broke the build.” The ultimate goal is to have the software in a fully deployable state after each iteration (ideally, but not always achieved in practice, even throughout the iteration).

This principle—keeping the system always in a deployable state—creates a natural limit on the amount of (temporary) havoc that the developers may wreak on the system between two deliveries. This is sensible, but it also creates a scaling problem for complex features. It is hard to implement a complex feature so that it “fits into one iteration.” Complexity comes in three flavors:

1. Systems too huge for one scrum team

2. Features that are too complex in themselves to be implemented in one iteration

3. Features that by their integration into a complex system cause ramifications and ground-level work that do not fit into an iteration

Type 1 complexity can be addressed by decomposing the system into components that are as loosely coupled as possible. Each component is developed by one scrum team. Coordination between the scrum teams is handled by a so-called scrum of scrums. This is a coordination board, scheduled usually once a week, where the key representatives of individual scrum teams (for instance, scrum masters and product owners; see the following discussion) meet and discuss integration issues, conflicts, and so forth. This is a standard and proven way to run large agile programs.

Handling complexity of types 2 and 3 is more tricky, since decomposition is not so straightforward if you cannot distribute the problem on several scrum teams. Following the agile paradigm strictly, teams usually solve issue 2 by slicing complex features in such a way that they can be implemented across several iterations. Problem 3 is often addressed by deliberately oversimplistic solutions that fit into one iteration, including all integration work.

Both approaches can have negative consequences with regard to architectural integrity: an unnatural system partitioning in the first case, “refactoring hell” (an endless succession of refactoring operations) in the second. Here, the agile methodology requires deliberate architectural planning to achieve a proper balance between long-term considerations and quick wins.

This is part of the tricky relationship between agile methods and architecture, which we will discuss later in more detail. Another aspect is that the core concept of agile techniques is a cross-functional, self-organized team. The team takes common responsibility for delivering the product. Each team member must fulfill this responsibility in an end-to-end fashion. There are only two predefined, exposed roles:

• The scrum master, responsible for moderating (not managing!) the team and protecting it from outside disturbances

• The product owner, acting as a representative of that project customer

Beyond these two, specialist roles such as architect are subject to some debate in the agile community. Some authors frown on such dedicated roles in the team, a sign of the tension between the architectural “wisdom of the few” and the agile notion that “the team is everything.”

The agile team favors direct communication over written documents. This is in line with common sense: Humans communicate most effectively and efficiently when they come together in a trustful atmosphere, expressing their insights and opinions with words, drawings, symbols, gestures, facial expression, voice modulation, and so forth. Agile has several elements promoting a directly perceivable experience of the development process.

Agile Glossary

User Stories

User stories are the agile way of formulating requirements. They have a fixed wording:

 As a …, I want to …, so that …

This automatically associates them with a specific stakeholder or role and transports the user intention in the so that part. A user story describing a book retail website feature might be:

 As a book shopper, I can read other customers’ reviews of a book online so that I can decide to buy it or not.

A user story normally also contains a condition of satisfaction, describing under what circumstances it can be considered “done.” Before composing user stories, the team initially compiles a definition of done. This is a general declaration applying to all user stories, listing those conditions that always must be met in order for a user story to be “done.”

In addition to user stories, epics are used for the more coarse-grained agile requirement descriptions. Each epic can be broken down into several user stories.

One is the daily scrum round, another is the wall on which user stories are put as small yellow sticky notes instead of rows in the project manager’s Excel sheet. User stories in the Ongoing part of the wall are an ever-present incentive to get the task done. In the same way, moving such a sticky note from Ongoing into the Done quadrant (in front of the team during the scrum meeting) gives a special sense of satisfaction to an agile team member.9 This way, the entire software development process is implicitly visible and traceable to all the stakeholders.

As sensible as focus on direct communication may be, it also gives rise to some skepticism about agile methods with regard to proper written documentation. Agile proponents seem to hear it frequently—at least that would explain the many voices claiming that the opposite is true (in a more or less unnerved tone10) and that being agile doesn’t mean writing code without documentation.

The truth is, as we know from our own experience, that in agile methods it is just easier to “forget” documentation than in waterfall methods, where the written document is a mandatory process step. 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. With an effort, agile projects can produce excellent documentation, as opposed to poorly managed waterfall projects that can come up with hundreds of pages of irrelevant gibberish.

In summary, agile values and principles essentially bring customer centricity, the human touch, professional integrity, and a sense of belongingness into the work culture. At the same time, it demands a high degree of trust and accountability among all team members and stakeholders. It does not suffice to “do” agile methods; the organization must to some extent “be” agile to fully implement this methodology and to benefit from it.

Silver bullet, or special tool for the innovator niche? Agile in the enterprise world

Despite the frustration of both IT executives and professionals with the waterfall methodology and its “big bang—big crash” integration shock, it is still the predominant project execution model in the enterprise world.11 Agile methodology has gained a foothold there, but it still resides in a niche. Common wisdom (outside the agile community) considers it to be mainly suited for innovative projects with limited cost pressure,12 although there is some indication that adoption of agile methods generally results in a productivity gain.13 All in all, agile techniques meet several obstacles in the enterprise world:

• Scaling. Agile techniques have their roots in rather small-scale projects and have been designed, in their original form, for a developer team with up to roughly 10 members. There are methods for scaling agile methods to larger teams and multisite development (see, for instance, Larman and Vodde, 2009; Cockburn, 2007; or Leffingwell, 2011). But one must be aware that scaling agility is a less well-trodden path than running large programs in waterfall mode and should not be attempted without guidance from process experts. Another challenge lies in the agile methodology’s rather hands-on attitude toward software architecture—a topic of special importance for large and complex software systems. We will look at this issue in depth later.

• Testing. The agile methodology has a strong affinity for test automation. If the quality assurance of an enterprise mainly relies on managing manually executed test cases, agile concepts are harder to put into practice. In addition, there are areas such as performance tests, load tests, and stability tests where continuous testing work (as preferred by agile methods) is not economically feasible. This requires a reconciliation of the agile testing paradigm with classical waterfall planning and execution of test phases and milestones.

• Role definitions. The individual work and its results are frankly exposed to the whole team, in practices like pair programming or by continuous integration, which immediately drags one’s contributions and faults onto the stage. Perfectionists have to learn to provide simple solutions and enhance the design only upon stakeholder requests. In addition, agile techniques do not value titles much; instead of being “senior specialist” (or any other shiny job designation), the only honest title for an agile developer can be “team member.”

• Organizational resistance, process incompatibilities, and culture clash. Introducing agile practices can meet a whole range of defense mechanisms. One can expect a certain clash between the agile activity and the enterprise culture. “To some, this [agile] scenario may appear to be unsupervised, chaotic, and even unprofessional (…). [T]he combination of casual dress, pairing, constant communication, and stuff stuck all over the walls does not fly well in some corporate circles,” writes Leffingwell (2007, p. 90). The agile methodology’s egalitarian spirit is to some extent orthogonal to hierarchical thinking and structures in more conservative enterprises. All of a sudden, the project manager can no longer give commitments without the consent of the team. Agile projects demand constant stakeholder attention and contribution—the good old “create a package and throw it over the fence” mentality doesn’t work anymore. Buyers need to give up the illusion that they can create a requirement specification and get the perfect solution back without any additional contribution. Many more examples can be found. In some cases, the friction results from a “we always did it this way” mentality. In others, agile methods uncover hidden omissions and problems in an organization’s processes.

• Outsourcing. Outsourcing of agile projects is possible, but it presents considerable obstacles. First, agile methods are easiest to implement in a time-and-material contract model, which often clashes with budgeting and procurement policies. The preferred outsourcing model (fixed-price projects with detailed requirements specified up front) is in conflict with the agile methodology’s principle of local planning and welcoming change.14 Second, especially when it is an offshoring project, agile projects cause a wide range of problems that require a lot of management commitment and process expertise (on both supplier and buyer side) to overcome.15 However, one should be careful not to condemn agile methods as unsuitable for outsourcing and offshoring. Agile methods are simply less often practiced than waterfall methods. The waterfall methodology is not inherently better; everyone in business knows many stories of failed outsourcing projects.

• Budget planning. The budget-planning process of an enterprise typically takes quite some time. In particular, funding for larger projects requires at least a year, and promoters of a project candidate must put a reliable price tag on it in advance and convince the sponsors of its business value. The board will likely reject project proposals, stating, “We’ll start off agile with N developers, and let’s see where we end.” An agile project will only have a chance to be approved with a precise effort estimation and a project road map in the granularity of epics describing the project’s target.

Agile techniques often enter an enterprise through the back door, as a niche methodology used in handpicked innovation or pilot projects. Despite the obstacles, there is a lot of enterprise interest in agile methods, indicating that the adoption rate will further increase beyond that niche.

Agile and architecture: An antagonism?

There is an objection that we should look at in more detail: agility and architecture, does that fit? Doesn’t Principle 11 in the Agile Manifesto claim: “The best architectures (…) and designs emerge from self-organizing teams” (Beck et al., 2001), declaring something as specialized and top-down as EA obsolete? Does it make sense to apply something to EA that actually despises architectural planning?

Indeed, some authors advocate an architectural practice in Agile projects that can be called lightweight at best, nonexistent at worst. They express a lot of mistrust toward the traditional architecture paradigm. “Software architecture has a history of excesses that in part spurred the reaction called Agile,” write Coplien and Bjørnvig (2010, p. 85). Following their concept of design means streamlining architecture to the point of nonexistence: “We will strive for an architecture delivered as [application programming interfaces] APIs and code rather than duplicating that information in documents. While the interface is the program, the code is the design” (p. 85).16 Such a definition of architecture may work for small teams and simple applications, but it doesn’t scale up to larger and more complex systems.

With no intention of bashing an otherwise fine book, we believe that Coplien and Bjørnvig is a showcase of the naïve view of EA that some agile apologists seem to have.17 In contrast, other authors propose a modern, balanced way of thinking about agile architecture. Breivold, Sundmark, Wallin, and Larsson (2010) could not find proof for many of the concerns associated with agile methods and architecture. Leffingwell (2011, p. 386) introduced the phrase intentional architecture18 as an extension of the purely “emergent architecture” from Agile Manifesto Principle 11:

 Even minor, system-level redesigns can cause substantial rework for large numbers of teams, some of whom would otherwise not have to refactor their module. It is one thing for one team to redesign their code based on lessons they have learned; it’s quite another to require ten teams to do so based on another team’s lessons learned. (…) For developers, architects, and businesspeople who have experience building large-scale systems and portfolios (…) a solely emergent architecture is counter to our experience.

The looming refactoring paralysis as a consequence of a purely emergent architecture is only one side of the coin. 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 at closer inspection not 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.

Having looked at the relationship between agile methods and architecture as a concept, let’s also inspect the architect as a person in the agile world. The status of this role is, at first sight, a bit unclear. Agile techniques put emphasis on an empowered team and a spirit to get things done. Therefore, architects are often viewed as notorious residents of the ivory tower. “Things are usually easier said than done, and software architects are notoriously good at coming up with things to say,” writes Timothy High (Monson-Haefel, 2009, p. 102).

In addition, any specialization is viewed with a certain skepticism. In an ideal agile world, every team member should be involved in every essential development task, especially in the design of the system. This is manifested in the “all hands on deck” paradigm.

An enterprise architect, on the other hand, has a planning horizon of years (instead of just the next two sprints) and performs a highly specialized task that is very far away from designing and coding the end product. That somehow makes her a legal alien in the agile world: eyed with skepticism, tolerated, but not really at home.

The agile architect is therefore a highly adaptable being—responsible for the design but at the same time carefully aware that the true decision power should be in the hands of the team. Johnston (2010) writes:

 In an agile development team many people will contribute to these [architectural] things. The agile architect will help all team members to contribute to the architecture, taking good ideas from everyone and making them part of a coherent whole. The architect may also adapt ideas originating elsewhere, but without losing the team’s ownership of the solution.

Kruchten (2004), in an admittedly not completely serious post,19 formulates:

 The architect doesn’t talk, he acts. When this is done, the team says, “Amazing: we did it, all by ourselves!”

 When the architect leads, the team is hardly aware that he exists.

Somehow this evokes the notion of a white magician, pulling the strings in the background on behalf of the higher good of architectural order and clarity. This idealized image feels a little bloodless and quixotic. However, the question remains whether this is really a sign for natural antagonism between agile methods and the architect’s profession. There is no more consensus and clarity in the image of an architect in EA, either. This role somehow oscillates between the Machiavellian master of political power games (as some enterprise architects would like to see themselves) and the overstrained inhabitants of the EA ivory tower you sometimes meet in real life.

Learning from mass production: Lean software development

The lean paradigm stems from the Toyota Production System. At the end of the 1940s, the company faced a challenge to produce inexpensive cars for a striving post-war society. Mass exports were not yet an option (Toyota entered the US market only in 1957, ten years later), and production quantities were low. Therefore, the economies of scale (which Ford achieved by its highly synchronized production system, inspired by Taylor20) were not fully available to Toyota.

Henry Ford had managed to produce goods in high quantities and short timeframes but at the price of quite limited flexibility, as expressed by his famous quote, “Any customer can have a car painted any color that he wants so long as it is black” (Ford and Crowther, 1922, p. 71f). This inflexibility could be tolerated when producing for a huge US market, but not in Toyota’s case.

Therefore, the Toyota Production System, introduced by Taiichi Ohno (Ohno, 1988), focused on optimizing production efficiency by consistently eliminating “waste,” unnecessary or even harmful steps in the design and production processes. At the same time, aspects of human motivation had a much higher importance than in the Taylorian Ford system, adding “respect for humanity” as an explicit value.

In the late 1980s, under the inspiration of the Japanese economic miracle of the past 20 years, Japan was hyped as a role model for industrial efficiency in the Western world. Against this backdrop, lean became a popular buzzword in management theory. The term was coined by John Krafcik (1988) and made popular by the books of James P. Womack (Womack, Jones, and Roos, 1990; Womack and Jones, 1996) and others. They transferred lean management principles to general business organizations. Mary and Tom Poppendieck (Poppendieck and Poppendieck, 2003, 2007) eventually established lean techniques as a software development method by condensing lean thinking into seven principles, adapted to the software creation process.

The Seven Lean Principles

 Principle 1: Eliminate waste.

 Principle 2: Build quality in.

 Principle 3: Create knowledge.

 Principle 4: Defer commitment.

 Principle 5: Deliver fast.

 Principle 6: Respect people.

 Principle 7: Optimize the whole.

(Quoted in Poppendieck and Poppendieck, 2007.)

Principle 1: Eliminating waste

Lean thinking starts with the definition of value created by the process under consideration, whether industrial production, software development, or architecture creation. This value needs to be defined from a customer viewpoint. Enterprise architecture can be seen as a product; from that perspective, the value of EA lies in the artifacts and services created by the EA group in interaction with other players in the enterprise. We discussed these artifacts and services in Chapter 3, “What Enterprise Architects Do: Core Activities of EA.”

Based on this value definition, every step in the product creation process can be divided into two categories: value adding and non value adding. In an ideal lean world, the value stream contains only value-adding steps and therefore would have an efficiency of 100%. The realistically achievable efficiency is much less than that.21 All non value-adding steps are considered Muda (the Japanese term for waste) in the lean philosophy. Eliminating waste means working toward an ideal value stream and is therefore the core principle of lean thinking.

Already in the manufacturing-focused Toyota Production System, the interpretation of waste goes way beyond defective pieces and leftover raw material that needs to be discarded. Waste also comprises unnecessary processing steps (i.e., work applied without need), inventory, and waiting. Poppendieck and Poppendieck (2003, 2007) adapted the seven kinds of waste originally described by Ohno (1988) to the software world and provided their interpretation of each waste type for software projects. We have added our interpretation of waste in EA to this compilation, as listed in Table 7-1.22

Table 7-1 The Seven Types of Waste

Waste in Production Waste in Software Creation Waste in EA
In-process inventory Partially done work Partially done work
Overproduction Extra features Over-architecting
Extra processing Extra processes, relearning Redundant processes
Transportation Handoffs Handoffs
Motion Task switching Task switching
Waiting Delays Delays
Defects Defects Defects

Some authors have added other waste types; Liker (2004), for instance, also lists “unused creativity” of employees as the eighth type of waste. This certainly makes sense, especially when you analyze waste in the IT and architecture field. However, we will cover the broad participation of all EA stakeholders in the architecture decision processes at length in Chapter 8, “Inviting to Participation: EA 2.0.” Therefore we will leave it at the original seven types in this chapter.

Some of the waste types are transferable to software creation and EA in a pretty straightforward way (waiting, defects). For others, a bit of creative thinking is needed. The work pieces that are created in manufacturing correspond to the features of a software system. This explains the interpretation of in-process inventory and overproduction to partially done work and extra features in software development. In EA, overproduction can be translated to over-architecting. In that case, the architects create more architecture than needed or make it more elaborate and detailed than justified by the need at hand.

Transportation and motion mean, in the production process of tangible goods, a physical movement of half-finished pieces from one plant to another or within a machine tool. In software creation, the “plants” are essentially development teams, and the “machines” are the individual developers. So, waste here means time and traction lost in knowledge transfer and handover procedures between teams and by overloading a developer with too many parallel tasks. This explains the translation for both the software and the EA area to handoffs and task switching.

Extra processing, finally, is interpreted in two different ways in Poppendieck and Poppendieck (2003) and (2007). Both make sense, therefore they are both listed here. Extra processing means applying manufacturing steps to a work piece that are either overdone or not required at all. That matches a wide range of debatable extra processes in software creation, from the beloved daily status reports in times of crisis, over specifications written but not read, to elaborate QA checklists that are never seriously evaluated. In Poppendieck and Poppendieck (2007), extra processing is translated into relearning, which describes the unnecessary rebuilding of competences and skills not retained in the team from earlier work experience.

For EA, we interpret extra processing as redundant processes, which fits better with the procedural character of EA. Other than in the case of over-architecting, the right piece of architecture is created on the proper level of detail—but some steps in the architecture creation process are wasteful, such as performing architecture reviews that are too fine-grained or are done just to demonstrate authority (“I just want to have a say on it”) without any value added.

Several tools are used in lean manufacturing for detecting waste in the production processes. The most prominent one is the value stream mapping. The processing steps are noted as a flow diagram, using a dedicated notation that allows us to mark the type of operation, storage, movement, or delay. We will look into waste detection tools for EA more closely in the section “Building Block 1: Get rid of waste by streamlining architecture pocesses.”

Principle 2: Build quality in

The statement Build quality in expresses a very similar attitude to the agile methodology’s emphasis on persistent quality control. The common notion between the two is that quality is not added as an afterthought by a quality assurance phase at the end of the project (with all its undesirable side effects). Instead, quality is ensured on a daily basis as part of the actual software creation. Lean software development draws support from agile techniques with regard to the measures for achieving this daily quality control, such as continuous integration, test-driven development, and refactoring.

The quality of architecture artifacts is usually assured by peer reviews, stakeholder signoffs, and approvals. A mentality to ensure quality during creation, instead of (or in addition to) milestone-based acceptance, requires a continuous and broad participation of all members of the IT community, down to the development teams on the ground. The EA participation concepts described in Chapter 8 can help in dealing with quality assurance.

Principle 3: Create knowledge

The Create knowledge principle describes the focus on building and retaining knowledge about the complex processes of software creation and about the domain for which the software is designed. Lean thinking involves constantly monitoring and fine-tuning the production process. Faults are considered a normal part of a lightweight trial-and-error approach and seen as an opportunity to learn, as long as a strict policy for immediate fault correction is in place (see Principle 2: Build quality in).

Lean thinking regards the popular myths of getting things right the first time and a zero-defect mentality as counterproductive, since they tend to create a risk-averse and uncreative atmosphere.23 Instead, lean thinking tries to create an environment that allows a sequence of small decisions that can be easily verified and taken back with little cost if needed.

Principle 4: Defer commitment

Defer commitment means that decisions are taken as late as possible to keep one’s options open. This allows being open to change, just like the “welcoming change” attitude in agile thinking. It also induces a simple design (read “as simple as possible”), by avoiding a premature preference for one out of several possibilities for architecting a solution.

The principle also implies using abstraction as a means to switch to a different solution in some modules of the architecture later on. The effect that is perhaps valued most by practitioners is that the architect has more time to learn about the subject and usually has to deal with less uncertainty when she defers commitment to the last responsible moment.

Principle 5: Deliver fast

The principle Deliver fast expresses the high value of a quick response to new or changed customer requirements in lean thinking. On one side, the ability of fast delivery is a result of the flexibility created by all lean principles; a lightweight process is easier to set up than a heavyweight one and will therefore create quicker results. On the other hand, this principle specifically expresses that lean thinking regards speed as a value in itself. Not only is IT quick-changing; also outside IT, in the customer’s domain, situations change rapidly. An IT department or supplier that is able to react fast to new input simply delivers better value.

It should be noted, however, that fast doesn’t mean hacking. Speed is primarily related to quick decision making and must not conflict with quality; see also Principle 2: Build quality in. At face value, deliver fast may also sound contradictory to Principle 4: Defer commitment. Again, this is not so. Deferring commitment simply means that decisions should be made as late as needed (to keep all options open) but not so late that they endanger a quick response to customer demands.

An important tool to achieve fast delivery is creation of a seamless flow in the manufacturing process, usually combined with the definition of takt time. The German word takt is used throughout the lean literature as a loanword, meaning clock cycle. Each operation should fall into the same beat, guaranteeing a steady manufacturing flow without waste due to waiting or delays.

Another key concept for fast delivery is the pull principle. In manufacturing, pulling means to produce goods on demand only, triggered by an order created upstream in the value stream. This is a precondition for the production pipe to have an ideal flow (another key lean term) of intermediate work items. The opposite concept is push—producing goods based on a forecast of future demands and “pushing” them downstream in the production process in the hope that they are available in sufficient numbers once the need for them arises. Pulling means short lead times and fast order processing in small quantities. Pushing, on the other hands, implies large batch sizes and long storage times. No wonder that lean manufacturing prefers pull over push.

Transferring the pull concept from manufacturing to software development means that features should only be developed (and architecture documents only be written) when a concrete demand exists. The level of detail and refinement should be appropriate to the actual request, avoiding proactive “gold-plating.” We will look deeper into the implementation of the pull principle in the section called “Building Block 3: Practice iterative architecture through EA Kanban.”24

Principle 6: Respect people

Principle 6: Respect people deals with the human aspects in software creation. The core idea is that decisions should be taken by people who are best qualified to do so. In the agile world this principle is labeled Empower the team (Poppendieck and Poppendieck, 2003). It bears a strong resemblance to the agile thought of the team as the primary body of decision making when it comes to operational aspects of software development. Strong entrepreneurial (i.e., focused on team building) leadership, nurturing of technical expertise, and a short decision-making channels characterize a lean organization.

Another aspect of this principle—again a parallel to agile techniques—is the appreciation of stable teams, where knowledge can be built up and cultivated over a long period of time. A self-empowered organization therefore is also the ideal environment in which to implement Principle 3: Create knowledge.

Principle 7: Optimize the whole

Optimize the whole emphasizes the holistic approach in lean development. People should see the “big picture” when making decisions instead of considering only their own private silo (team, department, job description, subsystem, application, etc.). A violation of this principle leads to only locally optimized (and therefore suboptimal) solutions.

In software development, optimize the whole primarily means to consider the complete value chain, from gathering requirements down to running the developed software. This requires everyone in the software creation process to step out of the specialization cubicle. A way of thinking that goes like this:

 I’m an architect, and I do my job well if I produce as many high-quality design documents as possible, and I am measured by the number of features I design.

is not lean thinking.

Software Kanban

Software Kanban has been derived from the way workflow is organized in lean manufacturing. Its central element is the Kanban board (see an example in Figure 7-1).25 The development tasks flow as task cards from left to right. Whenever there is a status change for a task—for instance, the implementation has been finished—the corresponding card is moved one cell to the right.

image

Figure 7-1 Example of a software Kanban board.

In Kanban, iterations are optional. The system instead focuses on enforcing the pull principle. Each cell (apart from Backlog and Live in our example) has a work in progress (WIP) limit attached to it—a maximum number of tasks that may reside in that cell. When that limit has been reached, no further task card may be moved into it. For instance, if the limit for ongoing development tasks is three, a scrum team already working on three tasks may not accept a further one. The team first must finish at least one of the ongoing tasks. This helps avoid waste from in-process inventory and delays. A team can easily judge at what time they need new tasks to work on and can pull them from the left of their cell on the board. This effectively promotes the pull concept.

When applying Kanban to EA, as we will do later, we will use the term design in progress (DIP), coined by Donald Reinartsen (1997), instead of WIP. DIP describes the maximum number of design tasks currently being worked on.

Lean and agile: Parallels and differences

Lean is often cited as a foundation of agile, or as a cousin of agile,” wrote Coplien and Bjørnvig (2010, p. 12). Indeed, there are strong indicators of parallels between the two methodologies. Table 7-2 shows our analysis of their overlap by mapping the four values of the Agile Manifesto against the seven lean principles.26

Table 7-2 Mapping Between the Seven Lean Principles (Columns) and the Four Elements of the Agile Manifesto (rows). A Solid Black Circle Denotes a Strong Overlap, a White Circle a Partial Overlap

Image

Table 7-2 shows three areas where lean and agile fully match (indicated by the three solid black circles):

1. Empowered, self-organized teams and individuals are the cornerstones of both methodologies.

2. Both approaches value the inseparable coupling of software creation and quality assurance, opposed to the sequential phases in waterfall techniques.

3. Welcoming change and encouragement of a learn-from-your-mistakes attitude, rather than a rigid a priori change control, is common to both methodologies.

The core lean principle, Eliminate waste, is somewhat ingrained in the agile process, but it’s formulated more pointedly in lean techniques. To some extent, this also applies to Create knowledge, Deliver fast, and Respect people. All in all, when we compare the wording, we notice that the lean principles describe more the “what” in terms of goals, whereas agile techniques list the “how.” In other words, and a little pointed:

 Lean defines principles, whereas agile describes practices.

This statement fits with the genesis of both methodologies. Lean thinking, with its origin in large-scale manufacturing business, emphasizes the “big picture” and the governing principles for a lean way of organizing them. The manufacturing world is too large and complex to come up with a uniform set of concrete best practices. Instead, in an ideal lean organization, the individual and the team are provided with an appropriate level of empowerment to develop (and constantly revise) their own practices. One could even say that the lean methodology applies lean thinking to its own implementation. It embodies a belief that complex problems have a simple solution in themselves and can be treated with a fairly limited number of rules.

Agile thinking, in contrast, comes from a relatively narrow field. It is the formalization of the work methods of a small, well-organized, and autonomous software development team. In a way, both methodologies arrive at the same (or at least very similar) conclusions, but they think from different directions—top-down (large to small scale) for lean, bottom-up for agile.

This also explains the two areas in Table 7-2 with a less strong match. Defer commitment and Optimize the whole are seemingly less well covered by agile methodologies. Defer commitment is at least indirectly covered by agile thinking (by the development in iterations and the deliberate renunciation of a big up-front master plan), but Optimize the whole is indeed an aspect missing from the Agile Manifesto. To some extent, this explains the challenges with scaling up agile methods to larger, more complex systems and bigger, distributed teams. We will have a closer look at this aspect in the subsequent section, when we analyze the way lean and agile techniques deal with architecture.

Accepting lean techniques as principle-driven and top-down, as opposed to agile techniques as practice-driven and bottom-up oriented, explains also the close relationship between the two in terms of concrete methods and tools. In many ways, lean software development borrows from agile methods when it comes to concrete practices. Iterations, timeboxing, continuous integration, test-driven development (TDD), and so forth are agile methods that play a strong role in lean development (Poppendieck and Poppendieck, 2003, 2007; Coplien and Bjørnvig, 2010). “Agile practices are manifestations of lean principles,” state Shalloway, Beaver, and Trott (2010, p. 6). The notable exception of a thoroughbred lean practice might be software Kanban.

But all in all, the question if a certain method, practice, or tool belongs more to lean or more to agile is only of theoretical interest. Somehow both approaches flow together, with the one contributing more here, the other more there. We can use them side by side for our architecture factory approach to EA.

Building Block 1: Get rid of waste by streamlining architecture processes

The lean methodology is, by origin, an optimization framework for production systems. You can apply it toward two ends:

• Flow optimization. Analysis of the process steps in an end-to-end flow that are pushed instead of pulled (i.e., produced based on forecasts instead of on demand) and redesigning them for a pull-based setup.

• Waste removal. Identification and elimination of wasteful steps in the production process.

Classical mass production systems are organized in a batch mode. They produce huge quantities of goods by tightly coupled, fully repeatable processes, based on forecasts rather than actual demand. Here it usually makes sense to tackle flow optimization first. Otherwise there is a risk of neglecting the big picture and thus achieving only local optimizations.

However, as outlined earlier, the architecture factory of an EA organization resembles more a “Manufaktur,” a highly customized craft shop, than an industrial plant. There is no mass production of architecture work items, and the work processes are highly individualized and loosely coupled. Therefore, in this Building Block 1, we will first analyze wastes for removal. In Building Blocks 2 and 3, we will tackle a big-picture concept for EA processes, using elements from the agile methodology such as architecture scrums and backlogs.

Let’s return to our Bank4Us example again. Padma Valluri is an enterprise architect and colleague of Ian Miller, whom we have accompanied in his application rationalization program. Padma’s tasks in the EA group comprise responsibility for optimizing the IT and architecture processes at the bank.

Many times Padma has talked with Ian and other architects on the EA team about the efficiency of their IT and EA organization. As an experienced enterprise architect, Padma knows that EA, as practiced today, offers enough possibilities to detect waste. Process bureaucracy, overly strict guidelines, and documents that no one ever reads are just a few prominent examples. All stakeholders in the IT organization struggle with an overload of waste in their daily work, adhering to guidelines that do not provide real value. McManus (2005) puts it this way27:

 Existing process definitions can refer to obsolete practices (…). They may also capture practices that once were critically important, but have become irrelevant over time—in lean terms, they may be monuments. Partly as a result, they are often followed only loosely.

In other words, processes age in the same way as physical hardware does. Its growing inadequacy is a threat to a sound governance system; when rules stop making sense, people don’t follow them anymore. Therefore Oscar Salgado, head of the EA team, has given Padma the task of developing a concept for process renewal within the IT and EA organization. It will be aligned with the large-scale Closer to Customer IT transformation.

Padma is determined to reduce the amount of processing and control down to the right level needed to leave the EA group operational without stifling creativity. To achieve this goal, she needs to make proposals for removal of unnecessary, or even harmful, steps in design, implementation, test, and management processes, to ensure a pragmatic focus on the really creative activities.

The section “The seven wastes of EA” outlines in detail what the waste types defined in the lean methodology mean in terms of EA. As a second step, in the section “Value stream analysis tools for EA,” we will look over Padma’s shoulder as she analyzes the EA value stream—the production pipeline for architecture artifacts—and checks it for nonvalue-adding process steps, which should be eliminated as waste.

The seven wastes of EA

In EA, the goods created are less tangible than in the usual industrial manufacturing. Architects are knowledge workers; as a design process, EA has a production pipeline like this:

Image

This model is derived from Millard (2001, p. 26). In his terminology, the end product wisdom should be understood in a very broad sense, as a base for further exploitation of the collected body of knowledge.28

In the introduction to lean thinking, “Learning from mass production: Lean software development,” we have already seen that production waste is not only a phenomenon in manufacturing, but it also occurs in the nonphysical world of software development and IT processes. We will now take one further step, from the development of software to the development of (enterprise) architecture artifacts. Waste in EA processes can be classified under the following categories29:

• Partially done work. Information is not available and architectural artifacts are not completed but are stockpiled in a semifinished state.

• Overarchitecting. The wrong architectural issues are tackled, or the right ones are covered in too much detail.

• Redundant processes. Essentially, the right things are done but with too much effort; inadequate, unnecessary, or duplicate processes render the overall process inefficient.

• Handoffs. Friction occurs in the interaction of different actors in the EA processes, due to task handovers or communication problems.

• Task switching. Enterprise architects and other participants in the EA process lose time and energy as they switch between many concurrent tasks.

• Delays. People wait for information, feedback, or approvals.

• Defects. EA strategy, models, and documents contain flaws, or participants in the EA processes display erratic behavior.

Let’s look at all of these waste areas in detail. You will find many concrete examples in the subsequent subsections, which you can use as a blueprint for your own organization’s analysis.

Partially done work

Partially done work, together with Overarchitecting (covered in the next subsection), is the most obvious waste area in the life of any architect. The manufacturing counterpart is In-Process Inventory: A heap of work pieces stored between two processing steps. Partially done work means that architectural artifacts—specification, models, documentation—are not completed and closed but are left in a semifinished state and stockpiled for later use.

This can be the result of narrow-minded thinking. A customer business representative once told us:

 Well, our enterprise architects are usually happy when they have some Web service available in the ESB; that’s where they stop thinking. I have to convince them that their job is not done unless the service has reached the consumer on a mobile app or through some other channel.

Probably you know this lack of end-to-end consideration from your own experience (of yourself and others).

In other cases, the architecture concepts are sound but are just put on the shelf in an unfinished state because a more important issue came up. As often as not, these half-ready specifications will never be touched again. That turns them into waste via Overarchitecting.

Navigating between these two waste types—Partially done work and Ovearchitecting—is the tightrope walk an architect must perform as part of her daily business. It is basically the chasm between too little and too much elaboration and attention to detail (or the detail work being done at the wrong time). A common sense approach to priorities, combined with solid time management, is the architect’s main tool to make the proper decision in each particular case.

It may sound curious, but partially done work can also manifest itself as too much information. An unstructured clutter of data, concepts, and ideas is of no use to the reader. In a similar way, a model without a view appropriate for the target audience—one that the reader is used to and can understand—is not ready to be used.

Another aspect of this waste type is the possible lack of a clear information owner. If many actors work on the same piece of information and no crystal-clear rules on document storage and archiving are in place, a plethora of parallel document versions exists—scattered across multiple inboxes and C: drives, many of them with minor changes and additions.

Table 7-3 lists the interpretation of this waste type in manufacturing, software development in general, and architecture in general as well as examples for wasteful activities in the main EA activities EA-1 to EA-8, as introduced in Chapter 3. As can be seen from these examples, waste due to partially done work is often associated with doing things halfheartedly. It can be the result of an underempowered or understaffed EA group, but it might just as well indicate some suboptimal EA processes that put too little stress on completion and results.

Table 7-3 Waste Due to Partially Done Work

Area Waste Due to Partially Done Work
Manufacturing In-process inventory
Software development Partially done work
Software architecture in general Business knowledge known but not yet captured in feature specifications
No or insufficiently reviewed specifications
Finalized, mature architecture concepts not yet implemented
Omissions of important aspects in specifications—for example, forgetting about deployment and distribution issues
Permanent makeshift solutions
EA-1
Defining the IT Strategy
No or insufficiently reviewed strategies
EA-2
Modeling the Architectures
Too much unstructured information
No view on the model that the target audience can understand
Lack of document repository and clear storage rules, everybody storing files locally
No rules or best practices in place how to deal with outdated information (when to purge and archive)
EA-3
Evolving the IT Landscape
Outdated and/or incomplete documentation and specification of the business, application, or technology architecture
Systems not on the EA radar, or systems with no future road map
Systems in transition to a EA-compliant status (unavoidable to some extent)
EA-4
Assessing and Developing Capabilities
No (real) EA organization
Architectural skill gaps identified but not acted upon
EA-5
Developing and Enforcing Standards and Guidelines
Immature EA standards, policies, and guidelines (incompletely elaborated, discussed with stakeholders, and documented)
Insufficient backing for EA by higher management, leading to lack of support for implementing EA standards, policies, and guidelines
Standards not considering business requirements
Standards and guidelines exist but are not available to the public
EA-6
Monitoring the Project Portfolio
Shadow IT (parts of IT projects are run outside the control of enterprise architects and thereby leave some work to make them EA compliant)
Ineffectual monitoring (violations of EA principles have no consequence; no sanctions imposed on non-EA-compliant projects)
EA-7
Leading or Coaching Projects
Project architects are left alone
Enterprise architects are involved in IT projects but only requested as technology consultants
EA-8
Managing Risks Involved in IT
Too IT-centric view on risks, neglecting business consequences

Overarchitecting

As indicated, the waste types Partially done work and Overarchitecting are to some extent two sides of the same coin (the attention to detail is in some way mismatched). The manufacturing counterpart to Overarchitecting is Overproduction. Transferred to EA, this means that an enterprise architect performs activities and produces documents that no one needs. Or, if the EA’s work actually meets a demand, the documents’ level of detail is such that no one will read them. Sending out all information to everyone (i.e., pushing instead of pulling information) also is a flavor of overarchitecting. Essentially, the EA effort is invested into the wrong activities and initiatives. Table 7-4 lists examples of this waste type.

Table 7-4 Waste Due to Overarchitecting

Area Waste Due to Overarchitecting
Manufacturing Overproduction
Software development Extra features
Software architecture in general Stockpiling specifications for future applications
Specifying extra features
Specifications or concepts with no business need
Model overcomplexity in anticipation of future features
Technology/platform choice in anticipation of future needs
EA-1
Defining the IT Strategy
IT strategy derived from industry hype (SOA, WOA, Cloud, …) rather than business maxims
Vendor-driven, technology-focused, or product-centric IT strategy with no correlation to what the business is asking for
Overly complex solutions for simple problems (for example, “Do everything with SAP”)
EA-2
Modeling the Architectures
Modeling too detailed (e.g., for a mere strategy option where a superficial model would suffice)
Architecture view too formalized for an audience of nonarchitects
Uncontrolled flow of information; forwarding too much information to too many recipients
EA-3
Evolving the IT Landscape
IT transformations not justified by business needs or IT strategy
Up-front investments in technologies and platforms in anticipation of future needs
Planning horizon reaching too far into the future
EA-4
Assessing and Developing Capabilities
Bloated EA organization
EA-5
Developing and Enforcing Standards and Guidelines
Transition to EA standards, policies, principles, and guidelines that later turn out to be irrelevant, abandoned, replaced, rejected, or ignored
Overspecification of corporate standards and guidelines
EA-6
Monitoring the Project Portfolio
Too much involvement of enterprise architects in the nitty-gritty details of IT projects
EA-7
Leading or Coaching Projects
Enterprise architects de facto working only as project architects
Key architecture concepts (adaptation, mediation, transformation) introduced on project level only because EA compliance requires it, not because they are suitable for the project
EA-8
Managing Risks Involved in IT
Listing risks that that are improbable, too far in the future, or have already materialized
Architecture as an overreaction to never-to-recur problems of the past

The strong presence of overarchitecting can indicate the control freak mindset of the Guardians of Wisdom type of EA organization, which we portrayed in the EA caricatures in Chapter 1. In any case, overdoing architecture efforts will create waste and can even have harmful consequences.

Redundant processes

Waste due to Redundant processes means that, although the architectural work may have the proper focus, it requires too much effort. The manufacturing counterpart is Extra processing—the right work piece is being worked on at the right time, but too many processing steps are used on it. As Table 7-5 outlines, this type of waste can manifest itself as too much bureaucracy or in general as an ineffective EA or IT organization.

Table 7-5 Waste Due to Redundant Processes

Area Waste Due to Redundant Processes
Manufacturing Extra processing
Software development Extra processes
Relearning
Software architecture in general Reinventing the wheel
Reviews with the wrong circle of people
Unnecessary bureaucracy, such as tiring signoff procedures
EA-1
Defining the IT Strategy
Creation of an IT strategy from scratch instead of deriving it from business maxims
EA-2
Modeling the Architectures
Reviews with the wrong circle of people
Too many review iterations
Gold-plating of architecture models
EA-3
Evolving the IT Landscape
Too detailed capturing of the as-is architecture as a common trap in application rationalization (delving too deeply into the current state and getting lost)
Too many meetings with too many participants
Too-long approval chains
Strictly hierarchical chain of command so that decisions are made on too high a level, where the technical implications are no longer understood and a lot of communication is needed
EA-4
Assessing and Developing Capabilities
Ignoring the industry-specific architecture blueprints and EA capabilities models and instead creating frameworks from scratch
EA-5
Developing and Enforcing Standards and Guidelines
Proprietary technology platforms where slightly customized standard frameworks would suffice (e.g., for user interfaces)
Too much compliance bureaucracy (potentially from both the project architect’s and the enterprise architect’s points of view)
EA-6
Monitoring the Project Portfolio
Too many meetings with too many participants
EA-7
Leading or Coaching Projects
Micro-management of project architects
EA-8
Managing Risks Involved in IT
Too much risk management on the project level (perspective too low)

Meetings (if not properly moderated) or excessive reviews are a relatively harmless nuisance but can pile up into a veritable time sink. A more serious source of waste is a strictly hierarchical chain of command in which technical decisions are by principle made on a high management level, where the technical implications are no longer understood. Such an organization requires a lot of communication across the ranks to properly brief the decision makers. Another very frequent case of unnecessary effort by Redundant processes is the creation of proprietary technology platforms, where slightly customized standard frameworks would suffice.

Handoffs

Waste due to Handoffs is the counterpart to transporting a work piece between different machines in manufacturing. Passing on partially completed tasks to someone else will always create friction. But even communication (or the lack of it) between stakeholders in the EA process is a potential source of waste by handoff. If the dialogue between enterprise architects, business managers, management boards, IT management, IT development teams, and implementation partners is disrupted, the EA process will not work properly.

Table 7-6 lists several examples of the Handoffs waste type. Many of them are, in some way or another, associated with a silo attitude. The chief mechanic mindset described the EA caricatures in Chapter 1 is one example of a lack of proper communication between stakeholders. The “over-the-fence” mentality of passing implementation projects over to partners without proper interaction along the way is another.

Table 7-6 Waste Due to Handoffs

Area Waste Due to Handoffs
Manufacturing Transportation
Software development Handoffs
Software architecture in general “Fire and forget” mentality in software development, especially when writing requirement and design specifications for software projects
Huge number of software systems involved in implementing business processes
Incompatible applications and system components
Silo design
EA-1
Defining the IT Strategy
“Chief mechanic” mindset in the IT organization, waiting for precise requirements from the business side instead of proactively position IT as a business enabler
EA-2
Modeling the Architectures
Lack of information access due to IT system limitations, overly strict security guidelines, or legal constraints in partner agreements
Incompatible information formats
EA-3
Evolving the IT Landscape
Too much organizational specialization among members of the IT organization; no end-to-end responsibility for IT systems
Only rudimentary written documentation on existing systems, unclear “who knows what”
Fragmented knowledge on the overall IT system so that no single person has the “big picture”
EA stakeholders (business and IT) globally distributed, making meeting arrangements difficult
Leaving EA core activities, such as application portfolio planning, to implementation partners
EA-4
Assessing and Developing Capabilities
Completely leaving the development of architectural skills in the IT organization to HR or external consultants
EA organization has no control over its own processes
EA-5
Developing and Enforcing Standards and Guidelines
Creation of standards and guidelines without properly involving the IT ground workers who have to implement them
Project architects not properly informed about EA rules and responsibilities, leading to an excessive search for the proper contact for approving a technical solution
EA-6
Monitoring the Project Portfolio
Outsourcing, at least when approached with an “over-the-fence” mentality
Lack of proper reporting on key indicators for project health status
EA-7
Leading or Coaching Projects
Enterprise architects not communicating enough with project architects
No enterprise-wide system for effective knowledge management
EA-8
Managing Risks Involved in IT
Enterprise architects not communicating enough with the business so that the business impact of IT decisions is not properly understood (and vice versa)

Waste due to Handoffs is also created if the EA organization gives up too much responsibility to partners. In general, partnering and outsourcing can have critical side effects. In one of our projects, a mobile network operator had outsourced its network. As a consequence, it had problems accessing key data about network failures, which the operator needed for enhancement planning. The problem was that, by accessing the failure data, the operator also would have gained insight into the individual fault resolution performance of the partners’ monitoring personnel. The network operator was not in the least interested in this information but was not allowed to have access for data privacy reasons.

But even a less drastic way of collaborating with partners can cause serious extra effort due to handoffs. When consultancy companies perform application modernization initiatives on behalf of their client’s IT organizations, they often own the architecture of the whole solution. After finishing, they leave the scene—with the client’s architects scratching their heads because they do not understand the architecture decisions that have been made.

Task switching

In manufacturing, motion means the movement of a work piece within one machine (as opposed to transportation, where it is moved between different machines or production sites). Transferred to the abstract principles of software architecture, an overly layered system exhibits too much motion.30

In terms of software and architecture processes, motion means Task switching. A human brain is by nature ill suited for parallel processing. The damaging effect of information overload and too many concurrent activities on organizational effectiveness is well known (see, for instance, Spiro, 2011). Enterprise architects are no exceptions to this rule. Table 7-7 lists many examples in which the architect can be overloaded by a multitude of parallel tasks in her daily work.

Table 7-7 Waste Due to Task Switching

Area Waste Due to Task Switching
Manufacturing Motion
Software development Task switching
Software architecture in general Overly layered architecture
Work overload for architects; too many specifications to be worked on in parallel
Too many meetings on various topics
Reworking specifications over and over again
EA-1
Defining the IT Strategy
Permanently reworking IT strategies and concepts; trying to follow volatile or self-contradictory business strategies
EA-2
Modeling the Architectures
Enterprise architect working on too many architectures in parallel due to understaffing of the EA group or to a misjudgment of the appropriate level of detail
Modeling tools with poor usability, or no tools whatsoever
Information overload with irrelevant details
EA-3
Evolving the IT Landscape
Too many unproductive meetings
Enterprise architect responsible for too many applications
EA-4
Assessing and Developing Capabilities
EA organization understaffed
EA-5
Developing and Enforcing Standards and Guidelines
Too little understanding of the nature and importance of EA, resulting in many occasions where the enterprise architect needs to explain the basic concepts and goals
EA-6
Monitoring the Project Portfolio
Enterprise architect acting effectively as a program manager for IT projects
EA-7
Leading or Coaching Projects
Enterprise architect involved too deeply in running IT projects—possibly even by acting as project manager, not only project architect
In an underskilled IT organization, the enterprise architect is pushed into a “Mr. Fix-It” role, being the best available expert on certain technology areas
Too much time spent on insufficient communication environment for multisite projects
EA-8
Managing Risks Involved in IT
Purely reactive (instead of proactive) risk management, EA jumping from one operational outage to the next

Sometimes task switching can grow out of control if one of the manifold side activities of an enterprise architect prevails to an extent that it doesn’t leave room for much else. In that case, there is actually not much task switching anymore (apart from the one big switch to the predominant side activity). However, the enterprise architect is prone to deteriorate to a program or project manager or to a universal Mr. Fix-It for technology issues no one else can solve.

Delays

Other than in manufacturing, the intermediate products of information design processes—specifications, concepts, models—are nearly always perishable goods. They lose their value when kept on the shelf too long. Therefore, Delays are always harmful in EA. Unfortunately, they are also a very common waste. All stakeholders in the EA process (with the exception of the enterprise architects themselves) do have other main priorities than the creation of EA. In addition, these stakeholders mostly belong to the ranks of middle and higher managers, whose schedules are always packed. This makes the EA processes prone to holdups.

Table 7-8 lists some examples, such as waiting for appointments, information, review feedback, or approvals. In some cases, it is not the EA organization that has to wait: When a project wants to use a certain technology but the EA group has not made up its mind yet, another delay is created.

Table 7-8 Waste Due to Delays

Area Waste Due to Delays
Manufacturing Waiting
Software development Delays
Software architecture in general Performance problems due to increased execution time in layered middleware and business process orchestrations
Developers cannot start since specification is not ready
Developers waiting for time slot in architect’s busy schedule to clarify specification issues
EA-1
Defining the IT Strategy
Waiting for board-level decisions on business strategy
Business representatives not available for giving input to strategy discussions
Waiting for approval by CIO
EA-2
Modeling the Architectures
Waiting for information from business side or from the IT departments
EA-3
Evolving the IT Landscape
Waiting for information or feedback input from business experts or IT representatives
EA-4
Assessing and Developing Capabilities
Delays in hiring process due to missing HR approvals or EA budgets
Architects with the right skills cannot be internally transferred to the EA group due to political or budget issues
EA-5
Developing and Enforcing Standards and Guidelines
Feedback from various stakeholders is missing
Waiting for approval for IT guidelines and standards
EA-6
Monitoring the Project Portfolio
Waiting for information on IT projects
EA-7
Leading or Coaching Projects
Projects are delayed and cannot take design decisions since the EA point of view has not yet been decided
EA-8
Managing Risks Involved in IT
No reaction from business side when approached for risk assessment feedback

Defects

Defects in general are considered waste in lean thinking. The Build quality in principle demands that production processes should be set up in a way that no defects occur in the first place. Lean software development proponents even go so far to claim that if you detect faults in final testing, something is wrong.31

For architecture, this principle is hard to implement. It can be as flawed as any other human product or service—maybe even more so due to its fuzzy and forward-pointing nature, which makes verification difficult. Architectural defects in general, as listed in Table 7-9, comprise all kinds of misguided design, from a plain misunderstanding of the business requirements to more sophisticated flaws such as resume-driven design.32

Table 7-9 Waste Due to Defects

Area Waste Due to Defects
Manufacturing Defects
Software development Defects
Software architecture in general Architect ignores or misunderstands business requirements
Specification cannot be implemented, since it conflicts with technology capabilities
Specification has grown so much over time that it has become self-contradictory
Resume-driven design
EA-1
Defining the IT Strategy
IT transformations justified by only ostensible business needs that are actually not in line with business strategy
Basing the IT strategy on wrong assumptions
EA-2
Modeling the Architectures
Models that appropriately reflect neither the current nor the future state of IT
Forgoing (or choosing unsuitable) model languages and notations
Presenting formalized models to a nontechnical audience (confusing model and view)
EA-3
Evolving the IT Landscape
Clinging to bespoke systems for political reasons, against better judgment
Changes to the IT landscape that are rejected by affected business stakeholders
Introducing changes without fully understanding the impact on business operations
Biased assessment of applications, when technology freaks believe that an application needs to be retired because they dislike the technology, although it supports business operations well
EA-4
Assessing and Developing Capabilities
Building an EA practice without proper planning and preparation—for example, without the help of a standardized EA framework
EA-5
Developing and Enforcing Standards and Guidelines
Wrong platform, technology, or vendor decisions taken for political reasons
EA standards, policies, and guidelines are self-contradictory
EA-6
Monitoring the Project Portfolio
Pet projects
EA-7
Leading or Coaching Projects
Disconnect between project and enterprise architecture
EA-8
Managing Risks Involved in IT
Ignoring or underestimating IT-related risks

Enterprise architecture in particular offers a rich choice of options for building in flaws and defects—from politically motivated technology decisions and pet projects down to inappropriate modeling languages. Every enterprise architect will have her own set of tales in this department; therefore, the list in Table 7-9 (like any of the other waste tables) does not claim to be comprehensive. It merely outlines some frequently occurring EA defects.

Value stream analysis tools for EA

The process of waste detection in EA should start (as trivial as this may sound) with an analysis of where to look. It is essential to concentrate on low-hanging fruit. The EA organization is usually understaffed and already fully loaded with its day-to-day tasks. Any additional activities, such as an initiative to look for efficiency gains in the EA practice, need to take that fact into account. The creation of an EA Waste Matrix is therefore the first step on the way to a lean and agile EA.

The EA Waste Matrix (see next section) sums up the waste potential. It combines the contents of Tables 7-3 through 7-9, which list the waste types per EA activity, into one overview matrix. The matrix should be compiled as a group exercise in a workshop with just a little preparation and post-processing. This makes it a low-effort tool for identifying those parts of the EA processes that promise quick wins by waste removal.

Once the areas for closer inspection have been selected, other tools come into play. Taking up the notion of an architecture factory as outlined in the beginning of this chapter, EA can be seen as a product with associated services. In the lean methodology, the production steps of a product are described and analyzed by a set of tools usually summed up as value stream mapping. Some of them, in an adapted form, make sense to use in the quite specific “production process” of EA artifacts and services.33

Process activity mapping (to be discussed in detail in the coming sections) is the central tool to describe the process flow in creation of an EA artifact. It denotes the transformation of initial information over intermediate work products to the final document or model. The diagram nodes carry special tags such as processing, review, waiting, or storage. In addition, a timeline at the bottom of the figure visualizes value-adding and nonvalue-adding phases so that it becomes immediately apparent where the process has potential for waste removal.

A useful complement to process activity mapping is the design structure matrix (DSM), which focuses on the uncovering of time-consuming iterations and loops. It uses a very simple format, a square matrix, making it easy to use and understand in interactive workshops.

The pipeline response matrix is another addition. Like the DSM, this tool focuses on one particular aspect of the EA process flow: the relationship between in-process time and inventory size. Each processing node is simply drawn as a stacked box, where the edge lengths relate to the times mentioned earlier. This makes it easy to identify a bottleneck in the EA process, since it shows up as particular thick box.

The EA waste matrix

Padma Valluri, Bank4Us enterprise architect with a mission of purging the EA processes of bureaucratic ballast, has been allocated a small budget for an external consultant. She decides to contact Sandro Poggi, an expert in lean and agile architecture. Padma has worked with Sandro in earlier projects and knows that he is the right person to support her efforts.

On Sandro’s advice, Padma organizes a workshop to jointly compile an EA waste matrix. Most of her colleagues on the EA team can free up time to participate. To get an outside view of the EA work, Padma also approaches those key IT and business representatives with whom the enterprise architects interact most. She has good standing with them. In addition, there is a mutual feeling that the interaction of business, IT, and EA has room for improvement. Therefore many of the stakeholders promise to take part in the workshop, too.

For the meeting, Sandro paints the matrix in Table 7-10, with the cells left empty, onto large sheets of paper he hangs on the meeting room walls. After a brief introduction to the lean concepts and the meaning of the seven waste types, he asks each workshop participant to write her or his personal ideas for waste removal on sticky notes. The notes should be marked with ent or ent as a priority indicator and then be pinned to the appropriate cell in the matrix. Afterward, Sandro moderates the group’s joint review of all sticky notes. The notes are reallocated to other cells if needed, duplicates removed, and the final priorities per table cell agreed on.

Table 7-10 Example of an EA Waste Matrix (ent = High Potential for Waste Removal, ent = Medium Potential)

Image

The outcome of the workshop is a filled-in matrix, as shown in Table 7-10. In addition, Sandro and Padma compile the notes for the detailed waste tables we saw in Tables 7-3 through 7-9. Before Padma can write a business case for a dedicated lean and agile EA project, she wants to perform one exemplary deep dive to ensure that the lean approach is indeed the right way for her EA organization. Table 7-10 helps her select the area to look at first. It seems that EA-3 (Evolving the IT Landscape) and EA-5 (Developing and Enforcing Standards and Guidelines) offer the most potential for waste removal.

After some discussion with her teammates and with Sandro, Padma picks one particular, slightly infamous project from EA-5 that ran under the name of MobileDevGuide. This exploration of mobile technologies and platforms, targeted at creating an enterprise-wide technology and development guideline for Bank4Us mobile applications, was not a badge of honor for the EA team. The project took much longer to complete than anticipated, yet none of the stakeholders was really happy with the result. Padma reasons that if the lean and agile EA approach reveals how this project would have run better, it should as well be able to help her improve the more frequently occurring EA processes.

The EA value stream

The removal of waste is, in lean methodology, inseparably linked to the analysis where value is generated. In other words, the EA value stream needs to be analyzed. Trivial as it might sound, the first step in value stream analysis is always a clear definition of the term value. Any process step either adds value or it does not. In mass production, a step is value-adding if it directly contributes to manufacturing of a work piece.

Painting a car body is value-adding; storing it to dry is not. The latter might be an example of a step that does not have a value in itself but is required by the process. Therefore, lean experts usually use the three-fold classification scheme that follows.34 The goal of value stream optimization is to eliminate the NVA and minimize the R-NVA process steps.

• Value-adding (VA). Directly contributing to the outcome of the process.

• Required but nonvalue-adding (R-NVA). No direct value contribution but required due to the technical nature of the production process—for instance, coordination of meetings.

• Nonvalue-adding (NVA). Process steps that are not required by the process and do not add value.

What is now value-adding in terms of EA activities? There is no general answer to this question. The creation of architecture documents and models can be value-adding—or not, depending on whether there is a true demand for them (as opposed to the documents that are produced but never read). The same applies to the definition of architecture processes and the creation of architecture views (such as executive summaries or presentation slides). Communication, learning, or measures to improve employee satisfaction are usually not directly value-adding but can fall into either the R-NVA or the NVA category.

As a conclusion, the definition of EA value depends on the context of the creation process and on the specific goal defined for it. Therefore the first step should always be the precise definition of a process goal. The sidebar contains a useful template for goal definition.

Process Goals

A Template for EA Process Goals

The following template35 can be used to phrase the goal for a specific EA process:

 Produce the < required outputs> in an efficient way and without defects and < at the right time>.

The process outputs should adhere to the FFFT criteria (McManus, 1999, quoted from Millard, 2001, p. 25):

• Form. Information must be in concrete form, explicitly stored.

• Fit. Information must be in a form that is useful to downstream processes and provided seamlessly.

• Function. Information (in the form of a design) must satisfy end-user and downstream process needs and communicate an acceptable amount of risk.

• Timeliness. The right information at the right time.

In the goal template, the parts in pointed brackets should be replaced by a specific work result and the appropriate time constraints. The fragments without defects and in an efficient way are not negotiable; they should, without exception, always be part of the goal. The timeliness criterion means “at the right time” and not necessarily “as fast as possible.” As we saw in the “Seven Wastes of EA” subsection, information is a perishable good that should not be stockpiled.

Padma and Sandro now ponder how they can analyze the MobileDevGuide value stream. Sandro points out that the initial EA value stream analysis should be performed again as a group exercise. All major stakeholders in the process need to be present. Padma should consider upstream and downstream actors as well—representatives from the business lines who gave the requirements for MobileDevGuide but also the guideline consumers, such as project managers and architects from the IT department. This might even involve implementation partners from different companies.

In the workshop itself, Sandro prefers using wallpaper, pens, and sticky notes instead of drawing tools. The market offers a rich set of flowcharting tools as well as dedicated lean value stream mapping editors, which can be used to capture and refine the workshop results afterward. When moderating the value stream analysis workshop, Sandro plans to use the process activity mapping, design structure matrix, and pipeline response matrix tools.

Process activity mapping

Lean process experts use process activity mapping to analyze the concrete process flow and search for improvement potential. There is no fully standardized terminology and notation for it. We lean toward the version by McManus (2005),36 with slight adaptations to the specific situation in EA processes.

A value stream map is created by “put[ting] yourself in the position of a design as it progresses from concept to launch” (Womack and Jones, 1996, p. 16). The map depicts the flow of an EA document or model through different kinds of processing steps. The notation is listed in Figure 7-2. Broad arrows symbolize major flow of information or intermediate work products; the fine arrow stands for contributing information, such as review feedback. The process nodes can be:

• Starting or end points

• Operations (such as Generalize Requirements)

• Other activities such as review, approval, and handover between different actors37

• Temporary inventories where intermediate products wait for further processing

image

Figure 7-2 Process activity map notation, as used in this book.

This list is not comprehensive. An exhaustive best-practice guide for process activity mapping could easily fill a book of its own.38 The lack of standardization leaves room for individual customizing of the notation if it makes sense for a specific process. One sensible enhancement, for instance, is to use swim lanes to correlate process nodes with actors.

Below the process activity diagram, a timeline can be added. It denotes phases of activity (line at bottom) versus waiting (line at top).39 The timeline is usually annotated with the lengths of the respective phases. Further key performance indicators (KPIs), such as lead time or in-process time, can be added to the process nodes. However, this makes more sense for the analysis of frequently repeated tasks, where exact measurements count. In EA, the value stream map is more useful as a tool to detect potential for optimization and design improvements. A precise quantification of the improvement potential is usually neither needed nor possible, at least not without introducing additional monitoring as the first step.

Back at Bank4Us, Padma Valluri has organized a lean deep-dive workshop, moderated by Sandro Poggi, to analyze the MobileDevGuide project. The project is notorious among the Bank4Us IT crowd, which makes it a good showcase for Padma to explore the capabilities of lean EA. How could this project have been executed in a better way?

MobileDevGuide was started in the context of the Closer to Customer strategy assigned by the Bank4Us CIO (see Chapter 1). One IT maxim in this strategy was Full Multichannel Capability, but at first the company had absolutely no standards in place that covered mobile technology. Oscar Salgado, chief architect, dealt with the topic of mobility support already in our discussion of EA activity, “Monitoring the project portfolio (EA-6),” in Chapter 3.

Therefore, the EA team proposed a thorough technology and platform evaluation, targeting the creation of compulsory standards and development guidelines. Not much mobile know-how was available in the bank’s IT organization. For that reason, the allocated budget for MobileDevGuide included an unprecedented luxury: the creation of a small prototype by an offshore team of one of Bank4Us’ preferred implementation partners, managed by the bank’s IT organization.

Much to everybody’s dismay, the project turned out to be a failure. It took a full year instead of the planned six months, overrunning schedule and budget by 100%. Yet after all this effort, no one was really happy with the result. The IT crowd claimed that the guidelines were impractical and overly rigid; the business crowd was disappointed with the prototype’s capabilities. Worst of all, due to the delay several development projects could not wait for the guidelines to be finalized (or claimed they couldn’t) and started with the implementation of their mobile applications—each using a different technology, of course.

MobileDevGuide is still a bit of a political minefield. So Sandro, moderating the process activity mapping workshop, uses all his professional experience to avoid finger-pointing. As a first task, he discusses with the workshop participants which goal statement would have been appropriate for the project. They come up with the following:

 Produce the mobile application development guidelines for Bank4Us in compliance with both the business and the IT requirements and validated by a working prototype, in an efficient way and without defects, within six months.

He guides the group to map out the process on whiteboard and flipchart. The final result is shown in Figure 7-3, with the process steps numbered 1 to 9. This drawing is pretty revealing to the workshop participants. It shows that most of the project’s difficulties did not stem from personal failure but from the intrinsic waste in the creation process. In the evaluation phase of the workshop, Sandro and Padma note down the following insights:

• Long lead time before reviews. The unwritten rules of the Bank4Us IT culture demand that reviews need a lead time of roughly three weeks.

• Each review triggered extensive rework. The project had three formal reviews (two with business, one with IT). Each of them caused rework. In the second review (no. 6), where the finished prototype was inspected, gaps in the initial specification were detected. The third review (8) with IT architects and project managers was even worse: One requirement was discovered to be incompatible with the bank’s security guidelines and had to be changed in the initial specification.

• Long waiting time before the prototype implementation. Although the budget for the prototype implementation had already been approved, the interaction with procurement, which had to approve the project order and select the implementation partner (3–4), cost a full four weeks.

• Difficult handover to the offshore prototype team. Another four weeks passed with the ramp-up of the prototype implementation team offshore and the knowledge transfer to this team via teleconference (4–5).

• Poor knowledge transfer from the prototype team to the enterprise architect. The architect in charge of the project had only limited access to the experience of the prototype implementation team when he wrote the final guideline document (7). The employees of the partner company had already been allocated to other projects and were only available for a relatively short phone conference.

• No requirements input from the IT organization. Requirements were only discussed with the business departments, not with the project managers, architects, and developers who would eventually implement mobile applications.

image

Figure 7-3 Process activity map for the MobileDevGuide project (times given in working days).

All in all, the findings indicate a fair amount of waste—at least delays, redundant processes, partially done work, and handover (with a potential for the other waste types as well). Padma and Sandro decide to evaluate the results from the other analysis tools first before drawing final conclusions.

The Design Structure Matrix (DSM)

In addition to the process activity map, Sandro introduces a second tool in the MobileDevGuide workshop. The design structure matrix (DSM) uses a very simple tabular format40 to specifically highlight iterations and rework in the process. Figure 7-4 shows the DSM table that the participants created in the workshop.

image

Figure 7-4 DSM for the MobileDevGuide Project at Bank4Us.

If step k provides input to step n, the intersection of column k and row n is marked with an x. All dots below the diagonal line in the lower half of the matrix represent forward flow—intermediate work products proceeding from one processing step to the next. This is unproblematic. Dots above the line, however, denote iterations and backward flow. They are a strong indicator of waste due to redundant processes or overarchitecting.

Not surprisingly, the culprits in MobileDevGuide are Steps 2, 4, 6, and 8—the review and approval steps (and their iterations) that were the source of some rework in the project. Had the process activity map been more complex, this might have been overlooked but made visible by the DSM.

The pipeline response matrix

Sandro asks the workshop participants to create, as a third tool, a pipeline response matrix41 for the MobileDevGuide project. This is a specific view of the process activities, focusing on the ratio between the in-process time (the number of working days really spent on the task at hand) and the task inventory (the time needed to work on unrelated, parallel tasks). Each task is visualized as a square, with the horizontal edge denoting cumulative in-process time and the vertical one indicating cumulative task inventory time. The total duration is the sum of horizontal and vertical edge length. An “ideal” task in the diagram is as flat as possible to avoid waste due to delays.

Figure 7-5 shows the MobileDevGuide matrix. Let’s take a closer look at Task 1, Generalize requirements. Its overall duration was 20 working days. During that period, the enterprise architect was able to work roughly 50% of his available working time on this task (in-process time = 10 d); the second half he had to dedicate to unrelated, parallel activities (task inventory = 10 d). The underlying thought model originates from manufacturing, assuming a first-in, first-out (FIFO) processing of incoming tasks—therefore the term inventory for the architect’s other activities.

image

Figure 7-5 The pipeline response matrix for the MobileDevGuide project.

The pipeline response matrix is a good way to analyze waste due to task switching and delays. In Figure 7-5, the total in-process time is 79 days—less than half the total duration of 197 days. The rest is waiting. In other words, it might have been possible to finish the project in the planned six months if the internal processes had been better organized and less riddled with parallel processing and waiting. As a consequence, Padma and Sandro formulate the following additional findings for MobileDevGuide:

• The enterprise architects might have to reconsider their work planning. Steps 1, 3, and 7 were executed by an enterprise architect. In each of the steps, he could not spend more than roughly half his working time on his main activity.

• Until the EA processes will have changed, a buffer for internal delays should be added to the planning process. In Figure 7-5, the actual operations (specification and implementation) are displayed in a darker gray, the inspection tasks (review and approval) in a lighter shade. Surprisingly, the delays in both types of activities are roughly the same. If MobileDevGuide is indeed a typical EA activity, the planning buffer size should be at least 100%.42

Transition to a lean and agile EA organization

The lean approach has convinced Padma. She feels that this is the right way forward for her EA organization. She meets again with Sandro to plot the strategy for her next moves in the internal process transformation. Sandro recommends developing a systematic waste catalogue—a list of minor and major process improvement proposals. The waste identified by the MobileDevGuide analysis will be the base stock, to be enhanced and verified by further analysis of other EA projects and activities. This can be done via interviews. This way the planners avoid a dedicated workshop, which is always hard to organize.

But Sandro also thinks they should go one step further. They might miss the big picture if they content themselves with only tackling the waste catalogue. Sandro proposes that Padma derive a small number of maxims43—no more than three—from their results so far. These would be material for internal lobbying and for funding the continuation of the EA analysis and transformation project. After some discussion, Padma and Sandro create a draft of three transformational maxims (to be tested against other past EA projects):

• Speed up EA.

• Bring more transparency to EA.

• Move EA closer to the IT organization.

The direction of Speed up EA is self-explanatory when we look at the manifold delays in MobileDevGuide. The second maxim, Bring more transparency to EA, deals primarily with the evident ineffectiveness of the current review and approval processes. “Everyone involved must be able to see and must understand every aspect of the operation and its status at all times,” state Womack and Jones (1996, p. 61). It seems clear that the stakeholders (business and IT) need to be involved much earlier and on a more frequent basis. But how can that be done?

Sandro thinks that the overall way in which the enterprise architects work together with their stakeholders should change. The architects need a process model that allows them to focus more on the essential EA activities. The stakeholders should be an integral part of the process, not just bystanders who have to be drawn in case by case. He proposes that Padma venture into agile architecture ideas. We will accompany the two on their journey in “Building Block 2: Involve all stakeholders by interlocking architecture scrums” and “Building Block 3: Practice iterative architecture through EA Kanban.”

The third maxim, Move EA closer to the IT organization, takes up the friction between EA on one side and IT plus implementation partner on the other. Padma is convinced that she and her fellow enterprise architects need access to a pool of local IT resources. If a pilot or prototype is to be implemented, it should be done by a collocated team, with the enterprise architect directly involved in the implementation.

With regard to Move EA closer to the IT organization, Sandro recounts an experience from a consulting engagement at Boeing. “Boeing adopted ruggedized tablets for shop floor employees on the Dreamliner 787 program. This allowed mechanics to collaborate with engineering and visualize work instructions with 3D models in real-time as work was actually being done,” he tells Padma. In addition, the engineers’ desks were physically moved from their offices to the shop floor in order to bring the airplane’s designers closer to its builders.44 So, if it worked for Boeing, why not try it at the bank in the collaboration of EA and IT ground workers? The agile methodology has ideas here as well. We will look over Padma’s and Sandro’s shoulders as they implement Building Block 2: Involve all stakeholders by interlocking architecture scrums.

Summing it up: Assessment by the EA dashboard

As we saw in the Bank4Us example, Building Block 1: Get rid of waste by streamlining architecture processes is in any case a good starting point for analysis of EA processes. Not all of the findings, though, can be tackled by eliminating waste. Trivially enough, this kind of lean optimization works best if there are processes in place that you can optimize. Figure 7-6 summarizes, in a somewhat pointed way, where the lean approach can be helpful beyond its role as a general analysis tool. Taking the EA Dashboard that we introduced in Chapter 6 as a base, we see that lean concepts can work well in the Governance and the Transformation dimensions—every time “doing less” makes the EA work more effective.

image

Figure 7-6 The EA Dashboard for Building Block 1: Get rid of waste by streamlining architecture processes.

Waste removal can be a good cure for overly strong governance, or it can be a stimulator for an EA organization suffocating from overload and its own ineffectiveness. A too-strong governance is likely to be rightsized by waste removal. The situation with a too-weak governance may be similar, but it also might first require additional empowerment of the EA group—something that the lean approach (at least in the flavor we present here) does not provide.

The situation in the Transformation dimension is the other way round. One can imagine that an overly slow speed can be increased by offloading waste. On the other extreme, in the case of the Frequent Revolution, waste removal might or might not help. The effects in the Perspective and the Strategy dimensions are too indirect to be considered here.

Building Block 2: Involve all stakeholders by interlocking architecture scrums

Padma Valluri, the enterprise architect in charge of streamlining the Bank4Us EA processes, has arranged another full-day meeting with her external consultant, Sandro Poggi. Jointly they want to develop a concept to make EA faster, more efficient, and positioned closer to the stakeholders, especially to the IT organization. Sandro proposes that they look again at the process activity map they created for the MobileDevGuide project. If this is the as-is process, says Sandro, how could a target process look, taking MobileDevGuide as their concrete example?

Padma considers this idea. Of course, there is no value in itself to optimizing a one-off pilot project. Their real target should be numerous, repetitive activities that eat up the EA team’s time. On the other hand, they have now collected a lot of data on MobileDevGuide, which makes it a natural candidate for testing Sandro’s concept. Even more important, everyone in the Bank4Us IT world knows it. That makes it a wonderful showcase if Padma decides that she wants to pursue this new line of thinking and has to sell the idea to management and her peers to gain acceptance and funds.

That last thought settles it for Padma. She sits down with Sandro and together they start designing a hypothetical rerun of MobileDevGuide with an improved process model.

An agile EA project

First, Sandro reasons, they should introduce a takt time, as in lean manufacturing. Among the problems in MobileDevGuide were the long waiting periods before formal reviews (and still they were not effective in involving the stakeholders). The perfect countermeasure is to structure such a project in iterations, or sprints, of a fixed length, as in agile software development. At the end of each iteration, results from the sprint are demonstrated to the stakeholders. They provide feedback and input for the next sprint planning. The demo dates are known well beforehand. No extra lead time is necessary.

The next idea Sandro brings to the table is to give up the dedicated prototype implementation. Instead he proposes to join forces with one of the mobile application development projects. They were supposed to wait for the mobile guidelines, but in reality they started on their own, since the guidelines were delayed. Wouldn’t it make sense if one of these projects would perform a dual role: pilot for this new technology at first and then implementer of a specific business application? As a precondition, the EA would need to convince the leader of one of these projects to start earlier than planned and to broaden its scope.

Padma likes the idea. The extra burden for the project is limited. It would not have to implement a complete and reusable mobile platform; that was not the original goal of MobileDevGuide. It just would have to “behave well” to serve as a technology pilot, meaning:

• Architectural issues need to be handled with care.

• Ad hoc solutions must be strictly avoided.

• Stakeholder feedback is to be meticulously tracked.

In return, the project would be provided with extra developers (those budgeted for the original prototype), and an enterprise architect would be available to oversee the project architecture. In other words, the risk of project failure is much lower in return for a bit of organizational overhead. Padma is pretty sure that she would have been able to strike such a deal with the business sponsors she knows.

The other precondition is a bit harder to swallow. Since Sandro has proposed agile techniques as the process paradigm for MobileDevGuide, the development project needs to switch to agile methods as well. Otherwise the close interlocking of EA activity and pilot implementation cannot be realized.

Padma knows that the agile concept enjoys some sympathy across the Bank4Us IT and business community. The process guidelines allow agile projects under certain circumstances, but the default approach is still the good old waterfall. For the particular example of MobileDevGuide, Padma thinks she could have convinced one of the business sponsors to use agile. But any general role model for collaboration between EA and IT must be applicable to waterfall projects as well. Padma makes a mental note to raise the issue with Sandro again at a later time.

Figure 7-7 shows the idealized target process activity map for the MobileDevGuide project, drafted by Padma and Sandra using agile elements. It looks radically different from the real scenario depicted in Figure 7-6. With this process model, it would be possible to finish in time. Padma’s and Sandro’s plan foresees six sprints of three weeks each and a little more than a week for the final approval. This means a total duration of less than five months.

image

Figure 7-7 Process activity map for a lean and agile version of the MobileDevGuide project (times in working days).

By introducing sprints, the review lead times are eliminated. There is no real waiting time in the process anymore, only the demo day is not directly productive (therefore a sprint is denoted as 14 + 1 days). Architecture and pilot implementation are handled within one project but not merged up to a point where the architecture work is in danger of becoming swallowed up by many implementation tasks. Both are handled in separated tracks according to the general pattern depicted in Figure 7-8.

image

Figure 7-8 Pattern for combining architecture and implementation track.

The generic word track has been used deliberately. There are several ways to implement this pattern. The simplest option is to handle architectural work items in the same way as implementation features and to simply tag them differently in the requirements management system. This might be sufficient in the MobileDevGuide example. In larger programs or IT transformations, EA work should be handled by a dedicated architecture scrum team; we will describe possible setups for such a situation later in this section.

In the process redesign for MobileDevGuide, the important issue for Padma and Sandro is the elimination of uncontrolled rework of architecture specifications. The stress in this statement is on the word uncontrolled: Of course, the frequent reviews will provide feedback and cause changes. But these changes are routinely incorporated into the next sprint planning; they are expected as a natural part of the process. There is constant interchange between those project members working on architecture and those implementing features.

However, major input from the architecture track is translated into implementation features only at the beginning of a sprint. There is a strict rule in the agile methodology not to accept additional requirements in the middle of a sprint. In case of a major change in the project requirements or constraints, when immediate action is necessary, the sprint can be terminated. Only after new planning and prioritization can it be restarted. This approach protects both architects and developers from uncontrolled ad hoc changes and half-baked architecture decisions.

In sprints 2 to 4, the enterprise architect works as part of the project’s architecture group. This allows the EA to learn and teach at the same time. She gathers first hand knowledge on the technology and can in parallel coach the project architects in their design decisions. It allows her to keep the option open to generalize certain features into an enterprise platform later.

From sprint 5 onward, architecture is handled exclusively by the project architects. The enterprise architect uses her knowledge from the pilot phase of the project to write the guidelines document. That work is still handled as part of the project, and its result is presented in the demos. This ensures that experience, concerns, and ideas from the IT crowd are sufficiently embodied in the development guideline document.

Each sprint in Figure 7-7 is structured in the same way. A sprint ends with the customer demo, and the next one starts with a planning phase. There are no hard rules as to how sprint planning should be done. Figure 7-9 shows a setup that has been proven to work well in practice. In the scoping workshop the priority order for the next requirements is identified, and the sprint content is defined.

image

Figure 7-9 A proven pattern for organizing the planning phase of a sprint.

It should be noted that if there is a dedicated architecture track, the scoping workshop has a double role. For the implementation track, it selects the user stories for the upcoming sprint N. However, the architecture track focuses on the future items. Therefore, the scoping workshop also needs to determine the user stories for the N + 1 sprint as well—at least on a coarse level. This principle applies to the sprint demos as well: The architecture track’s demo result refers to user stories of the future sprint.

In a project with both architecture and implementation tracks, the scoping is followed first by implementation sprint planning. Participants are developers and architects who break down the high-level requirements to the task level and provide effort estimation and commitment. Subsequently, the architects do the same in architecture sprint planning.

All sprints are usually performed following this pattern, with the exception of the first sprint of the project, in agile terminology often called iteration zero. Here the project has room to define itself, from setting up the development environment and project infrastructure to becoming familiar with new domains or technologies.

Scrum patterns for EA

The MobileDevGuide project setup as drafted by Padma and Sandro is depicted in Figure 7-11. For better understanding, Figure 7-10 shows the notation we use here for organizational patterns using agile elements. The scrum master, the product owner, the scrum team members, and the outside stakeholders are marked by different shades.

image

Figure 7-10 Notation used for depicting scrum patterns in agile EA.

image

Figure 7-11 Pattern 1: An enterprise architect involved in an agile project—for instance, as a technical lead.

A setup like the one shown in Figure 7-11 can be used for running any key IT project that is considered strategically critical and therefore should be run under the technical guidance of an enterprise architect. If the project is set up using agile processes, the enterprise architect would simply join the architecture team and fulfill her leading, coaching, and supervising role there. If the project contains a large amount of architectural work and has more than one architect, the introduction of a dedicated architecture scrum (indicated by a dotted line) might be advisable.

If the project is entirely dedicated to developing EA artifacts—for instance, a proof of concept for a new technology or development of an enterprise-wide platform component—an agile setup like the one shown in Figure 7-12 is a useful option. The enterprise architect takes over the role of the product owner in this case, since she is the primary recipient of the project deliverable.

image

Figure 7-12 Pattern 2: A dedicated agile EA project.

The agile scrum patterns outlined so far work for a collaboration of enterprise architects with agile IT projects. But what about EA work in general, especially the steering and monitoring of IT projects and programs that use the classical waterfall model?

The solution for the latter issue is an architecture scrum of scrums, as depicted in Figure 7-13. This tool can be used for a variety of situations, from supervising an IT transformation consisting of several loosely related programs to developing EA guidelines with an early buy-in from the IT community. This pattern does not require the projects or programs to be agile. The lead architects from each project or program join a regular scrum-of-scrum meeting (for instance, on a weekly basis). The enterprise architect takes either the scrum master or the product owner role, or a combination of both.

image

Figure 7-13 Pattern 3: An architecture scrum of scrums.

Last but not least, Pattern 4 in Figure 7-14 depicts a model for the EA team itself. The chief enterprise architect (or whoever heads the EA team) should take the scrum master role. Unlike in agile software development, the EA scrum team develops more than one product and pursues multiple activities at the same time. This means addressing a variety of stakeholders on both the business and IT sides.

image

Figure 7-14 Pattern 4: The EA group as scrum team.

Therefore it makes sense to have several product owners on the team. Each product owner should have a deep expertise of the enterprise areas(s) and stakeholder(s) he represents, whether on the business side or the IT side. This should not be a problem on a well-composed EA team, which should be a mix of members originating from both business and IT backgrounds.

In such a setup, the EA team should subscribe to a regular sprint and demo rhythm. This way, the main stakeholders for various EA tasks can become used to the enduring existence of an EA group (whether they like it or not). Strict adherence to a takt time for EA-related review and demo meetings helps establish EA as a reliable key player in IT decision processes. In addition, the quality will improve due to the necessity to demonstrate the results.

In summary, Table 7-11 maps the proposed four scrum patterns to the EA areas EA-1 to EA-8, as introduced in Chapter 3. A marker in a table cell means that the particular scrum pattern is well suited to supporting this type of activity.

Table 7-11 Suitability of the EA Scrum Patterns per EA Area

Image

Setting up the EA group as a scrum team (Pattern 4) helps steady the flow of EA work and decrease wait time. In addition, it ensures effective information flow by the regular stand-up scrum meetings within the team. Such setup is especially helpful in areas such as Defining the IT strategy (EA-1), Evolving the IT landscape (EA-3), and Managing risks involved in IT (EA-8), which are prone to the “ivory tower effect” if the constant interaction with the stakeholders is neglected.

Pattern 3, the architecture scrum of scrums, helps in all areas where EA has a supervising, monitoring, or evangelizing function. It can also be used as a way to organize an architecture board for technical approvals. Patterns 1 and 2, with the direct involvement of enterprise architects in the practical development work, are a proper antidote against IT anarchy on one side and EA detachment from reality on the other. With joint scrums, IT and EA are at least sitting in the same boat (even if they still might not row in the same direction all the time). That makes it harder to simply ignore each other.

A pilot project at Bank4Us

Padma has now seen enough to consider piloting the lean and agile approach with a real EA project. She discusses with her boss, Oscar, which activity would be suitable to test the idea. Her own proposal to Oscar is to approach Ian Miller and his team of enterprise architects, who work on the application rationalization program in the Closer to Customer initiative. (We accompanied Ian and his team in describing the typical EA activities in Chapter 3.)

From the occasional meeting in the coffee kitchen, Padma knows that Ian is inundated with work. She reckons that he will gratefully accept any support that might help him better organize his project. In addition, she has a trustful relationship with Ian; she knows him as a critical yet open-minded person. If the concept works for Ian, Padma feels, she can convince her other peers as well.

In an initial meeting with Ian, Padma and Sandro establish the basic facts about the application rationalization program. Ian leads a project team of five other people who all work (more or less full-time) on the application rationalization program: two further enterprise architects from Oscar Salgado’s EA group, two dedicated business process experts, and someone from the IT organization who is focused on planning and coordinating implementation projects.

In addition, Ian’s list of key people who need to be kept informed, interviewed, or monitored for progress runs into the several of dozens: business heads who want to know what’s going on, key users who understand the crucial and undocumented traits of business processes and applications, IT program managers like Sarah Taylor (whom we met in Chapter 1), architects and managers from projects implementing parts of the transformation—the list could be continued seemingly endlessly.

So far, Ian struggles with organizing his project. The governance boards of the EA and IT organizations are not much help. They are useful in monitoring the project milestones, but they do not offer much help in steering the architecture work for a complex IT transformation program. Office space is scarce at Bank4Us; therefore Ian was not even able to seize a permanent “war room” for his team. Luckily, at least two of his team members reside on the same floor as Ian himself. But the coordination of meetings with the larger team and the main stakeholders alone takes up a substantial amount of Ian’s time.

After the meeting with Ian, Sandro and Padma design a possible architecture scrum setup for the application rationalization program, as shown in Figure 7-15. Ian acts as scrum master. Chief architect Oscar Salgado takes the role of the product owner, representing the sponsor’s intentions for the program. The team will meet every morning in Ian’s office for 15 minutes in a daily face-to-face scrum meeting, standing up in order to keep it brief and concise. Team members who are traveling participate via phone. Each participant in the scrum round answers the three typical scrum questions:

• What did you do yesterday?

• What will you do today?

• What is blocking progress?

image

Figure 7-15 Architecture scrum setup for the Closer to Customer application rationalization program at Bank4Us.

Oscar Salgado is invited to participate in the chicken role, meaning that he is allowed to listen in but should not ask questions or give comments. Any in-depth discussion is postponed to after the scrum.

In addition to the core scrum team, Sandro has designed two scrum of scrums, which will meet once a week in a fixed timeslot. The IT Project Portfolio Scrum of Scrums gathers the program managers of the IT organization involved in the program implementation. The meeting will make sure that everyone is on the same page with regard to the implementation progress, planning, and showstoppers.

The Architecture Scrum of Scrums helps supervise the architecture implementation. It provides a platform for regular exchange between the EA team and the project architects. Both scrums are coordinated by one member of Ian’s team. As the overall project manager, Ian is also invited to both meetings.

Padma likes the concept. She decides to present it to Ian and his team once she has better understood how the actors in this organization structure will interact in practice. She tells Sandro that she will require more of his time.

Summing it up: Assessment by the EA Dashboard

As depicted in Figure 7-16, the introduction of architecture scrums can help adjust the perspective of an EA organization. The information flow is strengthened between enterprise architects and their stakeholders in business and IT as well as within the EA team itself. This helps in overcoming silo thinking, regardless of whether the particular silo is located in a strategic utopia or in the IT repairmen’s shop on the ground.

image

Figure 7-16 The EA Dashboard for Building Block 2: Involve all stakeholders by interlocking architecture scrums.

As a side effect, the enterprise architects will know better the consequences of their guidelines on IT projects. In the case of overly strict EA governance, it could encourage them to think in more pragmatic ways. In a similar manner, it can be expected that distortions in the Strategy and the Transformation dimensions may be alleviated by the regular contact between EA and its stakeholders. Frequent exposure to a situation makes you see it more realistically. However, this effect is only an indirect one; therefore we did not list it in Figure 7-16.

The other main effect of the scrum approach, together with an iteration structure and regular result reviews, is to increase the EA organization’s visibility. This can help an overstrained enterprise architect to get her foot in the door in certain decision making processes. As trivial as this may sound, it makes the business and IT key persons realize that there is an EA team, and that it cannot be ignored easily. The first step in the long path of building mutual trust is acknowledgement.

At Bank4Us, Padma Valluri writes an intermediate report for her boss, Oscar Salgado. She has now some models for reorganizing the EA processes on the table. Padma is convinced that the agile approach works fine for smaller projects with EA participation—Patterns 1 and 2. Sandro Poggi has even addressed her concern about the collaboration with waterfall projects and programs in Pattern 3. By and large, she knows she can use agile methods as a niche process where appropriate and that she would not have a hard time convincing others of that.

Still, Padma has some concerns as to whether agile techniques are a suitable model for an activity so long-term oriented, so riddled with signoffs and approval chains as EA. Could Ian Miller benefit from the lean and agile EA approach in his application rationalization program, fighting with the organization’s bureaucracy on one hand and the executive board’s expectations on the other? Can the EA processes and frameworks that Bank4Us uses really be reconciled with an agile approach?

Padma sighs and checks her calendar to schedule some more meetings. Together with Sandro, she will dig through the existing process material and perform a sound sanity check. Let’s stay with them into the next section.

Building Block 3: Practice iterative architecture through EA Kanban

Enterprise architects are involved in a large number of different activities in IT, business, and board-level management. As Figure 7-17 shows, these tasks have very different time horizons. Operational aspects of IT are planned with a granularity of months. This can go down to weeks and even days when they’re reacting to an emergency. Other activities—such as enterprise strategy or project portfolio management—are so long-term in nature that they are planned with a lead time of several years.

image

Figure 7-17 Different time horizons for the activities in which EA is involved.

One of the biggest challenges for EA is to handle each activity with the proper time granularity. If the enterprise architect fails to do so, she is prone to finding her in either one of the Chapter 1 caricatures, A Deep Look into the Crystal Ball (ignoring the present) or Sweeping Up the Change Requests (ignoring the future). EA needs a planning and managing system for architecture tasks that is flexible enough to handle short and long time horizons simultaneously. Agile development provides such a system, and we will see that it fits EA very well.

Agile EA requirements management

Enterprise-level planning can be categorized in the following horizons, with each step adding more details:

 Vision – Roadmap – Release – Project Milestone or Iteration

Requirements exist on parallel granularity levels, from the enterprise vision down to the program and project level:

• Creating the enterprise business and IT vision is a strategic activity, as summed up in EA-1 in Chapter 3. Its output is a set of concise maxims intended for a time horizon measured in years.

• Project portfolio management and budgeting are done based on road maps that usually cover 12 to 24 months.

• The release planning for programs and projects is already fairly concrete, with a time span of normally three to six months.

• The most detailed level consists of project milestones and (in case the project is executed in agile mode) iterations. They are part of the day-to-day project planning and usually cover two to eight weeks.

One of the key strengths of the agile approach is to handle requirements from such different layers of detail very well. This especially includes the transformation of maxims from the vision level down to the concrete implementation. As depicted in Figure 7-18, two agile traits specifically support this:

• The agile backlog manages elements of different granularity side by side, distinguished by priority. Only the items high on the priority list need to be provided at the implementation level of detail. Detail planning is done only when the work item is actually tackled, not up front as in a waterfall approach. This way not much planning work is wasted in case items are dropped due to reprioritization.

• Changing priorities, even altering or adding requirements, is controlled by a lightweight process. It is easy to keep the overall planning and design flexible.

image

Figure 7-18 Translation of different levels of detail and time horizons into a backlog.

While a project architect primarily provides architecture for the lowest two levels (release and iteration), an enterprise architect is regularly involved in all four levels.45 EA frameworks take this fact into account by providing means for classifying and structuring the architectures according to the layers of detail. TOGAF46 proposes three levels of granularity for architecture work, as depicted in Figure 7-1947 (left side). In comparison, agile requirement levels are shown in the right side of this figure. There is an evident match between the two worlds.

image

Figure 7-19 Classification for the architecture landscape in TOGAF (left); levels of requirement specifications in agile techniques (right).

Enterprise strategic architecture deals with the overall IT landscape. When Bank4Us CIO Dave Callaghan announces 20% savings in the IT budget, transformations are first tackled on the enterprise strategic architecture level. One measure is the global application rationalization program that Ian Miller drives. To implement transformations, their architecture needs to be specified on segment levels.

The partitioning for the segment architecture can vary from case to case. In the application rationalization case, it is a division by business lines and application groups, such as human resources, customer relationship management, trading, and so forth. The capability architecture, one level down, describes the design of a particular solution, such as the consolidation of one specific application. Table 7-12 sums up the mapping between the enterprise planning horizons and the agile requirement types.

Table 7-12 Mapping of Planning Horizons, Architecture Levels, and Means of Agile Requirement Description

Image

Levels of agile requirements

The basic building block of agile requirements management is the user story. It follows a fixed wording pattern: As a …, I want …, so that …, which associates it with a specific stakeholder or role. The so that part transports the user intention. A typical user story for a reporting system in the Bank4Us IT landscape reads like this:

 As head of compliance for the US/West region,

 I want a daily report on the main SOX compliance indicators

 so that I can report the compliance level to my regional board.

A user story is sized so that it can be implemented within one iteration (usually two to four weeks). For requirements that need more effort, agile techniques provide the more coarse-grained terms feature, epic, and theme.

These terms are not standardized, though. When you use agile methods for small or midsize software projects, epics are just a kind of large user stories.48 In the same context, themes denote a related group of user stories. For an online job placement portal, the themes job search, CV database, and job application comprise all stories describing these particular aspects of the portal.

For use in an enterprise context, we are at liberty to interpret these terms in a broader sense so that we can apply them to the whole IT landscape instead of just one project. Some authors49 have provided their interpretation of these agile terms for the enterprise.

• As the level immediately above a user story, Leffingwell and Widrig introduce the feature. “Features are services provided by the system that fulfill stakeholder needs,” they write (2003, p. 70). The feature level is suitable to describe requirements on program and release levels, which in turn correspond to the capability architecture in TOGAF.

• The next level, suitable for roadmap content, is epic. Leffingwell describes epics as “large-scale development initiatives that realize the value of investment themes” (2011, p. 83). “[Their] objective is strategic intent, not specificity. In other words, the Epic need only be described in detail sufficient to initiate a further discussion about what types of features an Epic implies” (2011, p. 44). This matches TOGAF’s segment architecture.

• On top of all this resides the theme. It is coarse-grained enough to be derived from an IT maxim, the expression of strategic intents introduced in activity EA-1 in Chapter 3. Ian Miller’s application rationalization program can be described by a theme, derived from the CIO’s statement announcing global savings. In TOGAF, the counterpart is enterprise strategic architecture.

Leffingwell (2011) sees an effort factor of roughly 50 between the different granularities.50 This fits well into usual dimensions encountered in different planning horizons, as shown Figure 7-18 and Table 7-12.

It is worth noting that there is no fixed format for the higher abstraction levels described here. “Epics may be expressed in bullet form, as a sentence or two, in video, as a prototype, in a short business case, or indeed in any form of expression suitable,” writes Leffingwell (2011, p. 453), but that applies to the other levels as well. One can use the user story format if this adds value.

But it is also suitable to use any particular domain-specific format—for example, in our case, the taxonomy that EA uses to describe transformations of the IT landscape. It is even advisable to keep the descriptions concise and domain-specific. “I was once at a meeting where an (otherwise) clever agilist, pushing back on what he considered to be delaying and excessive epic-level documentation requirements, told his PMO management, ‘You can even tell us in interpretive dance; we’ll take it from there,’” writes Leffingwell (2011, p. 453)—not entirely seriously, though.

Iterations in EA

Padma Valluri has scheduled another series of meetings with Sandro Poggi, her agile architecture consultant. Together they analyze the parallels between the TOGAF framework, which the Bank4Us EA team is using, and the agile methodology. After Sandro has given her a quick introduction to agile requirements management, Padma sees the match. The main question for her is how iterations, as promoted by the agile methodology, fit TOGAF.

As already outlined in Chapter 4, TOGAF does allow, and even explicitly recommends, the use of iterations in its ADM part. Figure 7-20 displays some proposed iteration cycles. In addition, ADM users can define their own cycles without losing the TOGAF-compliancy seal. Nonetheless, the architecture development iteration will be the most common iteration type, covering phases A–F.

image

Figure 7-20 Recommended iteration cycles in TOGAF ADM (The Open Group, 2011, used with kind permission).

As Figure 7-21 shows, the iterations can be used to connect the various levels of architecture detail with each other. The ADM phases A–F on the enterprise strategic architecture level prepare and kick off architecture work on the next lower level of detail, in this case the segment architecture level, and from there down to capability (or capability increment) architecture.

image

Figure 7-21 Interweaved TOGAF ADM iterations on different architecture levels (The Open Group, 2011, used with permission).

TOGAF supports iterative work very well. We can nicely reconcile the ADM phases with lean and agile’s lightweight control mechanisms.

An EA Kanban board using TOGAF ADM

Padma now feels she has enough information to turn back to Ian Miller’s application rationalization program. She wants to understand if it might support Ian’s work to run the program in an agile mode. To answer this question, Sandro and Padma have to analyze the process part of Ian’s application rationalization program.

Another brief meeting with Ian and one of his team members produces the required data. At the moment, Ian tracks his team’s work via entries in an Excel spreadsheet that he distributes regularly via email. He is not very happy with this solution. Not even he himself, let alone his team members and stakeholders, has a really good overview of where they stand.

So far, the implementation work has not yet started. But the sponsors start growing restless. The first implementation project will be kicked off soon. Ian awaits this further explosion of coordination activities with mixed feelings. The use of fancier project management tools might be inevitable by then, but Ian is afraid that it will only increase the amount of time he has to spend on management tools instead of on architecture and that it will not solve the transparency issue.

Ian provides Padma and Sandro with access to his work item lists. Using this material, Padma spends a day mapping the activities to the TOGAF ADM framework. Then, with the help of Sandro, she condenses this large amount of data into a very simplified list of requirements and tasks. Her goal is to emulate an agile EA backlog that she can use in presenting the concept. How would that have looked if Ian and his team had followed this approach right from the start?

For the time being, Padma sticks to the simple Excel-style list format. It is just a first step to prove that the agile requirements format fits to the way Ian and his team are working. She and Sandro will tackle the visibility and transparency issue later. Their result is shown in Table 7-13.51

Table 7-13 Hypothetical Backlog for Ian Miller’s Application Rationalization Program

Image

ESA = enterprise strategic architecture, SA = segment architecture, CA = capability architecture

All in all, Ian’s team made full use of TOGAF’s ability to support iterations on different levels of architectural detail:

• The theme Achieve 20% savings by application rationalization is part of the CIO’s original statement, which we quoted in Chapter 1. Ian and his team went through the TOGAF phases A–F on Enterprise Strategic Architecture level to define the KPIs and methodology. Then they defined the segmentation, and created Epics to work on in the next level.

• The assessment of the trading application landscape on Segment Architecture level required two loops.

• In the first, defined by the Epic Assess the trading applications segment for rationalizations, the initial target application landscape was drawn.

• Then Ian and his team discovered the possible shift in functionality between TAR and TR2. As a consequence, they went a second time through phases A–F on segment level, and re-modeled the target architectures. This is labeled Assess TAR extension to make TR2 obsolete.

• Following this Segment Architecture, a deep dive will soon be started. At least two Features have to be worked on in parallel: Enhance TAR application and Ramp-down TR2 application. These loops through Capability Architecture will now cover the full cycle A–H, including the actual implementation. One can imagine how much complexity this will involve. For the sake of simplicity, these tasks are not shown in detail in Table 7-13.

• In parallel to assessing the trading application landscape, Ian and his team need to go through several other segments as well. This is only hinted at in Table 7-13, by the Epics Assess the customer relationship systems and Assess core banking systems.

TOGAF as blueprint for EA Kanban

Padma and Sandro discuss what kind of lean and agile process would be able to organize the tasks for Ian’s team in a flexible, efficient, and TOGAF-compliant way. Sandro proposes a Kanban approach.

We have introduced software Kanban in the section “Learning from mass production: Lean software development.” The principle of Kanban is that task cards flow through a series of process steps. In software development, these steps typically form a sequence like Plan – Implementation Ongoing – Testing Ongoing – Waiting for Deployment – Live.

For EA tasks, there is a perfect match in TOGAF ADM, which already provides a detailed process model for EA activities with standardized phases. Instead of the above steps for software development, Ian and his team can use the TOGAF phases A–H (plus Preliminary phase). The rich set of predefined activities within each phase provides a blueprint for possible EA tasks.

Figure 7-22 shows the principle of an EA Kanban Board using TOGAF ADM. Requirements such as Assess TAR extension to make TR2 obsolete flow clockwise through the ADM phases (instead of from left to right, as in software Kanban), triggering phase-specific tasks (for example, Model business processes in Phase B) along the way. The Requirements Management phase in the middle is replaced by a joint backlog for all phases, marked “To be done.”

image

Figure 7-22 EA Kanban board using TOGAF ADM.

Rules for the EA Kanban board

When entering a phase, the Kanban cards are first placed in the corresponding “To be done” sector. As Figure 7-23 shows, cards in progress are placed inside the circular shape denoting a TOGAF phase, and finished tasks are placed outside the phase. After all applicable phases are completed, the cards are either moved into the top left box marked “Done” or else iterated again.

image

Figure 7-23 Locations for Kanban cards on the EA Kanban board.

Two types of cards should be used on the Kanban board:

• Requirement cards denoting (architectural) themes, epics, features, and user stories. (For the sake of simplicity, we have only pictured epics in our examples, marked by an E on a gray background.) These are the main requirement items that flow through the EA Kanban board.

• Task cards denote EA tasks within one phase (colored in white and labeled with a T for task in our examples).

The following nine steps explain in detail how the Kanban cards are handled. The step descriptions are supported by Figures 7-24 through 7-26. We focus on only one TOGAF phase (B in our example) of the segment architecture. A typical epic might be Assess TAR extension to make TR2 obsolete, as handled by Ian Miller and his team. Epics and tasks are denoted by E and T, respectively.

1. Once the epic is finished in Phase A, it is moved into the backlog of Phase B.

2. When the enterprise architects start working on the epic, they first plan what they intend to do in this phase. They create a number of new task cards in the process, which describe in detail which models need to be updated, which business scenarios need to be written, and so forth.

This approach gives the architects quite some flexibility. They can choose between a breadth-first or a depth-first strategy for tackling the architecture.

• In the breadth-first approach, the EA team opts for faster, more superficial iterations through the TOGAF cycle (with fewer tasks per phase). This makes sense in the early stage of a program or when we’re facing a highly complex landscape. More and shorter iterations allow for quick feedback to sponsors and a flexible prioritization of which segment needs to be handled first.

• In the depth-first approach, the enterprise architects can plan more tasks and attempt to finish the TOGAF phase for good, without reiterations. This makes sense in case the path ahead is already pretty clear and the most important goal is delivery of the first tangible results.

3. The new tasks are placed in the “To be done” area. They are moved into the TOGAF phase only once someone starts working on it.

4. In TOGAF Phase A, when methodology is discussed, the EA team also decides on a practical design in progress (DIP) limit. This figure denotes the maximum number of Kanban cards (tasks, epics, themes, etc.) that the team is allowed to work on in parallel. The DIP limit prevents one TOGAF phase from becoming a bottleneck in which the tasks are delayed too long.

It is advisable to treat the DIP maximum as a “soft” limit, not as a hard constraint. This means that the maximum DIP should not be exceeded, instead of must not be exceeded. The number of work packages flowing through the ADM is quite low, and the variability is very high—at least in comparison to manufacturing or even software development. According to lean theory, these limits should be adjusted in a trial-and-error approach. This requires several TOGAF cycles and fast feedback—not always easy to achieve in practice.

It is also quite likely that the optimal DIP limits will be different in each release: A migration from IBM mainframes is essentially different from introducing a multichanneling platform. The optimal DIP limits for crafting a target architecture in the A–H phases will be quite different, too.

Therefore, it makes sense to treat the DIP limits as an indicator of a wasteful situation rather than a hard rule to be obeyed in each and every situation. Nonetheless, for the sake of our example, we will assume a strict DIP limit of two to demonstrate the principle. The team is advised not to start work on the remaining two tasks in the backlog at the same time; that would mean three ongoing tasks in Phase B.

5. The DIP limit indicates that the team should first finish one task; then they are allowed to start working on the remaining ones. The finished task card is placed outside the phase circle.

6. Two more epics have passed through Phase A and are ready to be handled in Phase B. They are placed in the “To be done” area. It may contain an arbitrary number of cards; there is no DIP limit on the backlog (the “To be done” area).

7. There are separate DIP limits for tasks and epics (as well as themes, features, and user stories). For epics, we assume a DIP limit of 1 in this example. Therefore, the team should not start planning for a second epic in Phase B before the first one has been done.

8. When all tasks are done and the corresponding epic is finished, it is moved outside the Phase B circle.

9. The epic can then be placed in the backlog of the next phase, or the “Done” area of the board.

image

Figure 7-24 Rules for the EA Kanban board (Steps 1–3).

image

Figure 7-25 Rules for the EA Kanban board (Steps 4–6).

image

Figure 7-26 Rules for the EA Kanban board (Steps 7–9).

The targets of this process are to produce a constant flow through Phases A–H to reduce the overall cycle time, increase visibility, and allow for flexible task planning. All tasks of a theme, epic, or feature must be completed before it can be moved into the next phase. However, it is possible to drop a task, just as in lean and agile software development. In that case, it is a deliberate decision to speed up cycle time instead of completing the architecture within one TOGAF phase. The whole TOGAF cycle will have to be iterated again.

This rule, together with a consequent observation of DIP limits, will prevent the EA Kanban board from overflowing with piles and piles of cards. However, the Kanban approach is not a silver bullet that solves work overload problems. It simply makes that overload plainly visible and offers a structured approach to process the card piles by and by and to avoid them in the future.

A final note on the design of the EA Kanban board: We have reused the circular shapes of the TOGAF ADM visualization for the sake of better recognition. When Kanban is used as a tool in the daily EA business, it makes sense to hang the Kanban board physically on the wall and use sticky notes for task cards. In that case, it will be more practical and space-efficient to use a rectangular design like the one depicted in Figure 7-27.

image

Figure 7-27 Rectangular EA Kanban board for practical use.

The process we have sketched here applies to a collocated EA team that can have its regular stand-up scrum meetings in front of a physical board. For distributed teams, there are manifold commercial or open-source Web-based Kanban tools that can be used as a base for a distributed EA Kanban.

Synchronization with implementation projects

Padma and Sandro decide to invite Ian and his team for a workshop to present their ideas. Despite their workload, Ian accommodates a three-hour timeslot in their schedule to discuss the concept.

In the introductory round, Ian’s team members voice their desire for more structure and regular communication in their work. They perceive TOGAF as a mixture of treasure trove and attic storeroom—very useful as a reference of what activity is to be done at what time, when you dig into it, but a bit too bulky to carry along as a lightweight travel guide. Therefore, when Sandro shows them the architecture scrum structure and the EA Kanban board and explains the high-level principles, their reaction is carefully positive.

Sandro has designed the board in a threefold version for the different levels of detail in the architecture, as shown in Figure 7-28. Together they simulate the application rationalization project so far, based on Padma’s data collection (see Table 7-13). As an alternative to the sticky-notes-on-the-wall version, Sandro also gives them a quick demonstration of his favorite Web-based agile requirements management system.52

image

Figure 7-28 EA Kanban board with three corresponding levels of granularity.

When one of the enterprise architects brings up how to coordinate the upcoming implementation projects for their application rationalization program, the discussion becomes more lively. Most members of Ian’s team share the concern that they will sink into chaos if they continue with the current way of organizing their work.

They draw their worst-case scenario on the whiteboard. The information flow between EA team and implementation projects (within the different levels of architecture) looks like the drawing in Figure 7-29. At worst, a change in the high-level architecture would need nine months to be passed down to the implementation level! Although in practice the lead time will be less than that, all participants in the room agree that this scenario is not altogether unrealistic and that it poses a real threat to their program’s success.

image

Figure 7-29 Information flow between EA and implementation projects in a “classical” work mode.

As a contrast, the group assembles again in front of the whiteboard and jointly designs a more suitable model. The outcome is depicted in Figure 7-30. They use the EA Kanban approach, which allows them more lightweight loops through the TOGAF cycle. Loops on different levels of granularity—strategic, segment, and capability—can run in parallel.

image

Figure 7-30 Information flow between EA and implementation projects using EA Kanban and iterations.

Combined with three-week iterations and Sandro’s scrum setup, work results can be forwarded to the next level much faster. This is because of the cadence of stakeholder reviews at the end of each sprint. This way, all actors in the process have a clear synchronization point for handovers between the different roles (enterprise and project architects, business, project managers, etc.) and the parallel TOGAF cycles on the Enterprise Strategy, Segment, and Capability levels.

The Kanban approach specifically helps maintaining a clear overview at all times. The Kanban board visualizes clogging of the task flow at process bottlenecks, making it easier to resolve them or even avoid them altogether.

At the end of the meeting, the team discusses the next steps. Ian is not one to be convinced easily, but he admits that the approach might work with his application rationalization program. He likes that it is lightweight and does not require more tools than posters on the wall and sticky notes for a start.

Padma proposes to allocate Sandro to their team as a scrum coach for a period of three months. Ian quickly warms to the idea; all process concepts aside, it means that he will have to spend less time compiling Excel task lists and can dedicate himself more to the true EA work. Padma and Ian decide to approach their boss, Oscar Salgado, for an additional budget for Sandro. Both are confident that Oscar will agree to it; Ian’s program has high visibility among the sponsors.

Padma is quite happy with the outcome of this meeting. Still, she feels that they will need some mindset switch to make the idea fly. Shorter and parallelized TOGAF loops require change in the way architecture is documented, too. The classical I-write-a-200-page-Word-document-and-release-it-to-peer-review approach will be too heavyweight for this. Maybe, she thinks, just-in-time modeling describes it properly. The architecture documents will have to become iterative in nature—for instance, by introducing collaborative tools such as wikis and forums.

In addition, the review process needs to become more transparent by allowing the stakeholders more participation in the architectural design process. Padma sighs. It looks like a whole new field of activities is still ahead for them. Nonetheless, she makes a note to follow up this approach, too. We will accompany her and her peers on that journey in the next chapter, “Inviting to Participation: EAM 2.0.”

Summing it up: Assessment by the EA Dashboard

In the first two building blocks of this chapter, we have laid the foundation to effectively combine EA with lean and agile methods:

• Lean process analysis, as outlined in Building Block 1, helps us understand waste in EA and provides guidance in the transition process toward lean and agile EA.

• The architecture scrums introduced in Building Block 2 provide the team structure for implementing lean and agile EA methodology.

This last block, Building Block 3: Practice iterative architecture through EA Kanban, provides the capstone to finish the building. It adds the following aspects:

• An agile backlog, mapped to the different levels of architecture granularity as defined in TOGAF, allows flexible and lightweight planning of EA activities.

• The concept of iterative refinement of architecture is ingrained in both the lean and agile approach and in an EA framework like TOGAF.

• The EA Kanban board provides a flexible, lightweight, and efficient planning instrument for architectural tasks.

Looking at the EA Dashboard for Building Block 3 (see Figure 7-31), as we did for the other two building blocks, reveals that we can expect an improvement on the Edge of time side through a more steady flow of architectural work. Strategic directives will arrive on the shop floor earlier, which helps both sides; the strategy will be more connected to reality, and the people on the ground can more effectively use strategic maxims as guidance for their work.

image

Figure 7-31 The EA Dashboard for Building Block 3: Practice iterative architecture through EA Kanban.

Furthermore, the transformation pace can be expected to be better calibrated to the actual needs of the enterprise. At least there are now efficient tools available to avoid the clogging of the architecture backlog. In the same way, too much change at a time will be visible on the EA Kanban board. It is easy to detect bottlenecks and slack periods.

However, the EA organization is not the driver for transformation; it is just one of several controllers. The effect of the building block on the transformation pace depends on how much influence the EA team has in the overall IT organization.

1 Scylla and Charybdis are a pair of monsters guarding a narrow strait in Greek methodology. Sailors passing the strait would inevitably come within reach of one of the two. It should be noted that Scylla is described as a sea monster with four eyes and six heads, with three rows of sharp teeth each, which makes it a suitable image for over-formalization. Charybdis, on the other hand, is an all-mouth creature swallowing and belching water, creating vicious whirlpools able to suck in whole ships—and certainly also enterprise architects with no real influence in the organization.

2 Looked up June 29, 2011. The list ranks retrieval counts during a period of four months.

3 Whether in-house EA groups should be organized in a similar way, too, or just be a regular division of the IT department is a frequently debated topic (see, e.g., Saha, 2011). The consensus seems to be that EA is better positioned as a dedicated entity, with some independence from IT management.

4 The noble savage, often wrongly attributed to Jean-Jacques Rousseau (1712–1778), is an idealized pre-society native who has preserved the original human qualities, usually referred to in the context of civilization criticism.

5 Quoted according to Larman and Vodde, 2009. Boehm gave this statement during a keynote speech at the Extreme Programming and Agile Processes 2006 conference in Finland. To be precise, he related it to the way a traditional CMMI auditor would judge a project, but it can be generalized to the waterfall approach in general.

6 Philip Kruchten, one of the fathers of the Rational Unified Process and at home in both the enterprise and the agile world, lists 20 “elephants in the room” in a blog post (2011)—issues that are willfully ignored due to ideological reasons.

7 It is peculiar to note that, in contrast to this popular image, Osono et al. (2008) paints Toyota as a complex and often self-contradictory company.

8 You don’t need any pre-knowledge of lean and agile to follow the coming sections, just a general familiarity with software development practices. If you would still like a more thorough introduction to the topic, our personal favorite among the many great books on the topic is Mike Cohn’s Succeeding with Agile: Software Development Using Scrum (2009) and the Poppendiecks’ first book of their Lean series, Lean Software Development: An Agile Toolkit (2003).

9 To be precise, the procedure described here is part of the so-called Kanban methodology, which stems from lean software development but which fits in seamlessly with agile methods and is often used in conjunction with an iterative approach.

10 For example, take Fitz (2009)—but you can easily find many more statements to the same effect.

11 There are several surveys indicating this finding (see, e.g., Computer Associates, 2010). It also matches our own experience that usually the larger the project, the more conservative the buyers become in terms of project methodology.

12 See for instance Keller (2007, p. 94). We have met similar prejudices in our own practice.

13 In a survey conducted by VersionOne in 2007 (quoted according to Krebs, 2009), 90 percent of companies that have adopted agile practices reported an increase in productivity.

14 There are dedicated Agile contract models (see, for instance, Larman and Vodde, 2009), but they require more trust between the contract partners than other models. In the delicate final phase of closing a software project deal, salespeople are rarely inclined to “rock the boat” and try something out of the ordinary. This, in our experience, makes such models hard to use.

15 The topic of Agile offshoring would easily fill a dedicated chapter, but it is not the topic of this book. The interested reader should have a look at the respective chapter in Larman’s and Vodde’s excellent book on agile scaling (2009) or read the article by Fowler (2006).

16 To give another example, Ambler (2006) proposes to “model a bit ahead” or to perform a “model storm,” where coding starts after a 30-minute brainstorming session on proper design. More such statements can be found easily.

17 Their proposal for partitioning large software systems is according to organizational structure, to allow for collocated teams responsible for the parts. In times of outsourcing and highly volatile mergers, acquisitions, and reorganizations, this is certainly not a good way to define a sustainable architecture. In another example, on page 71 they demonstrate a “poor problem statement” in large-scale systems: “We need to increase productivity 40% while cutting costs 40%. This is more like a requirement list than a problem statement. First, it is really two problems, not one. Second, it may be a solution in disguise. Ask why we need to hit these targets. Third, it may set up an over-constrained problem if productivity and cost are linked.” Apart from the slightly unrealistic 40% figures: Imagine how in a real IT organization a courageous scrum master would storm into the CIO’s office and point out how wrong the directive is from an agile viewpoint. Reality and a purist agile mindset sometimes clash.

18 He also offers a number of very sound ideas how to deal with large-scale architecture in agile projects, some of which we will take up in the subsequent sections to apply them to EA.

19 Kruchten used translations of the ancient Tao Te Ching to turn it into a statement of his understanding of an architect’s “way” (tao).

20 Frederick Winslow Taylor (1865–1916), often dubbed “the father of scientific management,” revolutionized industrial production by decomposing complex workflows into strictly timed, repetitive small tasks that could be executed by a low-skilled workforce.

21 In manufacturing, as much as 85% of all process steps can be assumed to be waste (Stakutis and Webster, 2005, p. 76). The popular cola-can example (Womack and Jones, 1996, frequently quoted by other authors) has an efficiency of much less than 1%. Although the actual processing steps only total a couple of hours, the total production time (from mining the aluminium to consumption of the can) is nearly one year due to long waiting times in between the processing steps. For software development, the Poppendiecks (2007) describe four case studies with process efficiencies of 1%, 19%, 23–33%, and 33%, respectively. These figures match the personal efficiency of engineers, according to a survey quoted by McManus (2005, p. 14).

22 The two leftmost columns have been compiled based on Poppendieck and Poppendieck (2007, p. 47; 2003, p. 4). The Poppendiecks have varied their terminology slightly between their books and changed the order of waste types. We are using here a hybrid of both quoted books, leaning toward Implementing Lean Software Development: From Concept to Cash (2007). The right column is our interpretation of the respective waste types in EA.

23 Paul Carroll tells in his book Big Blues (1993) a famous story attributed to Tom Watson, ex-CEO of IBM. After a middle management decision that resulted in a loss of $10 million for IBM, Watson ordered the responsible manager into his office and asked him if he knew why he had called for him. “I guess you will fire me,” said the manager. “Of course not!” said Watson. “I just spent $10 million to educate you.” (Quoted by Heath and Heath, 2010, p. 173.)

24 The pull concept is a deep-rooted lean idea that can be mapped also to others of the seven main principles. Even the Poppendiecks list it in the same book under different principles (2003, pp. xvii and 49ff).

25 For more details, please refer to the many books on Kanban—for instance, Anderson (2010). Kniberg (2009) provides a concise and amusing comic version of how a Kanban board is used.

26 The ratings are based on the authors’ subjective evaluation of the respective principles and their meaning. A more detailed mapping of the twelve agile principles against the lean principles, by the way, leads to similar conclusions, not printed here for reasons of space.

27 McManus refers to engineering processes in the aerospace industry, which is probably even more process-laden than IT.

28 We are fully aware that it is quite impossible to find one term comprising the full scope of EA.

29 The EA waste interpretation as outlined in this section is mainly derived from Womack and Jones (1996), Poppendieck and Poppendieck (2003, 2007), and McManus (2005). These authors describe waste in lean manufacturing and product design. We have adapted their terminology and ideas to EA processes.

30 See, for instance, Eric Dörnenburg’s blog post, “Making ESB Pain Visible” (2009), where he outlines how many implementation layers a (seemingly simple) connection of service provider and consumer via an ESB can actually produce.

31 “The goal is that the final test should not find defects; they should have been found earlier. If you routinely find defects at final testing, then you are testing too late” (Poppendieck and Poppendieck, 2007, p. 56).

32 Resume-driven design means that a particular technology platform or framework is selected only because it belongs to the set of currently hyped technologies and makes a good entry on the architect’s CV (see, for instance, Shah, 2004).

33 Hines and Rich (1996), Millard (2001), and McManus (2005) give the most comprehensive description of value stream mapping tools. The tools not considered here are the production variety funnel, quality filter mapping, demand-amplifying mapping, decision point analysis, physical structure mapping, Gantt charts, and Ward/LEI maps. These tools mostly focus on aspects of mass production. Since EA artifacts are all “custom-built,” we have not presented them here.

34 We use the definitions by McManus (2005). Sometimes R-NVA is also abbreviated as NNVA (necessary but nonvalue-adding). Other authors—for instance, Urdhwareshe (2011, p. 290)—make an additional difference between customer value-added (CVA), for features immediately useful to customers, and business value-added (BVA) for activities required by law, regulations, and business needs.

35 The template is taken from McManus (2005, p. 28). We replaced the original wording as efficiently as possible with in an efficient way, to avoid the slightly nebulous “as possible”—someone could always claim that it was not possible to be more efficient, which would be hard to negate.

36 McManus uses Rother and Shook’s Learning to See method (2003) and adapts it to engineering and product design processes, where the flow of intermediate physical work items has already been replaced by the handling of data, information, and half-finished design artifacts. This is much closer to architecture creation in EA than the “classic” lean focus on mass production of physical goods.

37 The Approval and the Handover nodes are not part of the notation as described by McManus and other authors but have been added specifically for EA processes.

38 There are many books available on the topic of process activity maps. Sometimes the terms process activity map and value stream map are used as synonyms. Probably the most concise guide for using this technique can be found in McManus (2005, pp. 24–55).

39 This is the way that timelines are shown throughout the literature on lean concepts. Just to avoid confusion: The Poppendiecks’ influential adaptors of lean ideas in the IT world denote timelines the other way around (activity is depicted by the top line, waiting by the bottom line).

40 The tool has been proposed by McManus (2005). Other than in the case of process activity mapping, there is not much more to it than is covered in this subsection. It is a complementing tool that focuses on a certain aspect of the value stream, no more and no less.

41 In the lean literature this tool is referred to as a supply chain response (or responsiveness) matrix; see, for instance, Hines and Rich (1996). We have slightly adapted the terminology to make it more intuitive to understand for EA processes.

42 No one in a sane mind will actually propose a 100% buffer without keeping her resignation letter ready in her pocket. Therefore, this is a more a “political” conclusion. The real conclusion is of course to change the process so that it becomes more effective.

43 The rules of lean consumption by Womack and Jones (2005, quoted by Schmidt and Lyle, 2010, p. 139f) can be a yardstick for finding such maxims:1. Solve my problem completely.2. Don’t waste my time.3. Provide exactly what I want.4. Deliver value where I want it.5. Supply value when I want it.6. Reduce the number of decisions I must make to solve my problems.

44 Both Boeing stories are true. The quotation about the ruggedized tablets is from a blog post, www.apriso.com/blog/2011/10/the-mobility-movement-is-well-underway/. The story about moving the design engineers to the shop floor was told by a tour guide when Stefan visited a Boeing plant in Everett, Washington, in 2010.

45 Her main focus is in the middle two layers (roadmap and release; see activities EA-3, Evolving the IT Landscape, and EA-6, Monitoring the Project Portfolio). However, EA also contributes to the vision (see EA-1, Defining the IT Strategy) and the iteration and project level (see EA-5, Developing and Enforcing Standards and Guidelines, and EA-7, Leading or Coaching Projects).

46 The FEA framework provides a partially similar structure; see Chapter 4.

47 The Open Group (2011), used with kind permission.

48 Mike Cohn, one of the agile gurus, puts it this way: “Although there is no magic size at which we start calling a user story an epic, generally an epic is a user story that will take more than one or two sprints to develop and test” (Cohn, 2009, p. 246).

49 In this building block, we essentially follow the agile terminology and its interpretation as provided by Leffingwell and Widrig (2003), Leffingwell (2007, 2011), and Shalloway, Beaver, and Trott (2010).

50 See Leffingwell (2011, p. 440, in Figure 22-4).

51 The table entries reflect the work steps of Ian Miller and his team in the course of the program. We described these activities in detail as an example for activity EA-3, Evolving the IT Landscape, in Chapter 3.

52 The market offers a number of mature and highly customizable systems, such as JIRA (www.atlassian.com/en/software/jira/).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.107.85