Enterprise Architecture: Balancing simplicity with complexity

Albert Einstein is sometimes attributed to having said that “Everything should be made as simple as possible, but no simpler.”  As a counterpoint and with some deference to Occam’s razor ‘Nothing should more complex than is necessary.’ Enterprise Architecture is … Continue reading →

Agile Business Modeling – The Core Heuristic?

How many times have I heard that the real problem with Agile is getting to the start line? There has to be some definition up front, but Agile methods don’t really help. Perhaps it’s a little secret for many organizations that they feel they must do more specification work up front because it makes it easier to control the Sprints. Oh dear!

To get to this starting gate we need to model the agile business in an Agile manner (YES!). Further we do not want to undertake complete or detailed business architecture (NO!!). We don’t have time, and anyway the core of the innovation and architecture should be done in the Agile Delivery project. But before we can fire up Agile projects we need to determine the scope and charter. If we use conventional scoping methods we may well deliver great functionality very quickly, but we probably won’t, unless we are very lucky, have delivered agile business capabilities that map to the business dynamics and can evolve along with the business.

Here’s a technique that may help.

In the first image below I show a functional decomposition for complaints management which I have clustered into “candidate capabilities” labelled 1, 2 and 3, process management, customer relationships and analysis respectively. This usefully shows that capabilities can be varying levels of abstraction; there’s absolutely no necessity to have elegant models!  The table below the decomposition shows various criteria I used to help me decide on the possible clusters. As you will see there’s variation in strategic classification; the partitioning – which may be key for deployment, some could be centralized others local; and the need for implementation independence and so on.

This analysis certainly helps me present some choices. But aside from the independence and scalability criteria and possibly standardization criteria, I feel I have not fully exhausted the analysis of the need for business agility. In the table below I develop this a little further. First I make an assessment of the potential requirement for future change in each function. I call this Agility Potential (AP) on a 1=Low and 5=High scale [1]. Not surprisingly Analysis and Skills are the capabilities that will probably be subject to considerable volatility. Second I look at the dependencies between the functions; note you have to read this as each row dependency upon a column. And low and behold, Skills and Analysis, and Analysis and Follow-up have high dependencies. This causes me to reconsider my initial cut of capability boundaries. I feel that Skills needs to be very close to Analysis as the investigatory function. And Follow-up should be similarly very close to Analysis. And what’s more these three functions score most highly on the AP scale. I feel Follow-up could easily be collapsed into Analysis, and a name change to Investigation would be perfect. I think a little more deeply about Skills. The degree to which the outcomes of Investigation need to be fed into Skills on a dynamic basis will vary depending on the type of business. If this was a safety critical business, I might recommend consolidating Skills and Investigation and renaming it Knowledge Management. But this really would depend on the business sector specific needs. 
To recap, what I have done here is developed a sharper understanding of the capabilities, and I have attributed them with governance criteria (in the first table) – I know what I must have delivered, and I am communicating some really important information to the delivery team, without constraining them at all on the implementation and delivery method. Also I now know the dependencies between the capabilities, and we can very quickly resolve the services that will be required and the inter project dependencies. And it didn’t take me very long at all.

More on Agile Business Modeling 

[1] I first outlined the idea of Agility Potential in the CBDI Journal April, 2010. Let me know if you would like a copy.

Agile Business Modeling – The Core Heuristic?

How many times have I heard that the real problem with Agile is getting to the start line? There has to be some definition up front, but Agile methods don’t really help. Perhaps it’s a little secret for many organizations that they feel they must do more specification work up front because it makes it easier to control the Sprints. Oh dear!

To get to this starting gate we need to model the agile business in an Agile manner (YES!). Further we do not want to undertake complete or detailed business architecture (NO!!). We don’t have time, and anyway the core of the innovation and architecture should be done in the Agile Delivery project. But before we can fire up Agile projects we need to determine the scope and charter. If we use conventional scoping methods we may well deliver great functionality very quickly, but we probably won’t, unless we are very lucky, have delivered agile business capabilities that map to the business dynamics and can evolve along with the business.

Here’s a technique that may help.

In the first image below I show a functional decomposition for complaints management which I have clustered into “candidate capabilities” labelled 1, 2 and 3, process management, customer relationships and analysis respectively. This usefully shows that capabilities can be varying levels of abstraction; there’s absolutely no necessity to have elegant models!  The table below the decomposition shows various criteria I used to help me decide on the possible clusters. As you will see there’s variation in strategic classification; the partitioning – which may be key for deployment, some could be centralized others local; and the need for implementation independence and so on.

This analysis certainly helps me present some choices. But aside from the independence and scalability criteria and possibly standardization criteria, I feel I have not fully exhausted the analysis of the need for business agility. In the table below I develop this a little further. First I make an assessment of the potential requirement for future change in each function. I call this Agility Potential (AP) on a 1=Low and 5=High scale [1]. Not surprisingly Analysis and Skills are the capabilities that will probably be subject to considerable volatility. Second I look at the dependencies between the functions; note you have to read this as each row dependency upon a column. And low and behold, Skills and Analysis, and Analysis and Follow-up have high dependencies. This causes me to reconsider my initial cut of capability boundaries. I feel that Skills needs to be very close to Analysis as the investigatory function. And Follow-up should be similarly very close to Analysis. And what’s more these three functions score most highly on the AP scale. I feel Follow-up could easily be collapsed into Analysis, and a name change to Investigation would be perfect. I think a little more deeply about Skills. The degree to which the outcomes of Investigation need to be fed into Skills on a dynamic basis will vary depending on the type of business. If this was a safety critical business, I might recommend consolidating Skills and Investigation and renaming it Knowledge Management. But this really would depend on the business sector specific needs. 
To recap, what I have done here is developed a sharper understanding of the capabilities, and I have attributed them with governance criteria (in the first table) – I know what I must have delivered, and I am communicating some really important information to the delivery team, without constraining them at all on the implementation and delivery method. Also I now know the dependencies between the capabilities, and we can very quickly resolve the services that will be required and the inter project dependencies. And it didn’t take me very long at all.

More on Agile Business Modeling 

[1] I first outlined the idea of Agility Potential in the CBDI Journal April, 2010. Let me know if you would like a copy.

Mom says Save Up; I say do it with Application Rationalization

In part 7 of “Memoirs of an Enterprise Architect” I tested your knowledge on data classification and compliance.  Well, I have good news for this week.  There will not be another quiz so you can just sit back, relax and maybe learn a thing or two…

Categories Uncategorized

EA Myths

A recurring theme in enterprise architecture forums and debates is: “How do we demonstrate the value of EA or justify architectural overhead?” Some may view these discussions as academic, which compounds the problem, because it supports the idea that enterprise architects don’t really understand their role, that they don’t have a common definition of enterprise Read more

EA Myths

A recurring theme in enterprise architecture forums and debates is: “How do we demonstrate the value of EA or justify architectural overhead?” Some may view these discussions as academic, which compounds the problem, because it supports the idea that enterprise architects don’t really understand their role, that they don’t have a common definition of enterprise …

Read more

Infrastructure Architecture: What does that infrastructure box do?

<h2>I can’t tell you what the box does…</h2><p>In my <a href=”http://www.bizzdesign.com/blog/infrastructure-architecture-function-before-construction/”>previous blog</a>, I outlined <a href=”http://www.bizzdesign.com/blog/infrastructure-architecture-function-before-construction/”>how infrastructure architects are better off focusing on behaviour instead of construction</a>. This, however, immediately leads to a curious problem: most folks in infrastructure are familiar with the offerings of the big vendors (at least up to a point), but very few can accurately describe what the products actually do. It’s typical for technical people: ask them what a product does, and they’ll tell you how it works.</p><p><img alt=”” class=”right” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/Infrastructure-Architecture-OIAm-box.jpg” style=”width: 250px; height: 204px; float: right;”/>As a little self-test: what does the engine in your car actually do? Can you accurately describe its function? If you know something of automotive technology, you may find you’re tempted to explain the engine to me as an internal combustion device that burns fuel and thus converts the energy into motion; pistons, cylinders, valves or injection, all that stuff. But “burning fuel” is not actually the goal of having the engine in your car, is it?</p><p>The same applies to infrastructure facilities: if you point to a box, its administrators can tell you how it is connected, how it is configured, and what cool features the vendor has created that they were able to use. But the language the admins use will likely be rife with buzzwords and proprietary terms that the vendor has made up, or has twisted in a <a href=”http://www.authorama.com/through-the-looking-glass-6.html”>Humpty-Dumpty</a> way (“When I use a word, it means just what I choose it to mean – neither more, nor less”). This serves the vendor well, because to retain these proprietary features, the best product to augment or replace his box will almost automatically be another one of his own boxes. But infrastructure architects shouldn’t want to limit their choices this way.</p><h2><br/>… but I can tell you how it works.</h2><p>If we look again at your car’s engine, its function is to <a href=”http://en.wikipedia.org/wiki/Propulsion”>propel</a> the car. Other functions that are performed by different car parts: breaking, steering, signalling, lighting, offer seating, protection against impact, protection against the climate, et cetera. As our culture has had over a century of experience with automobiles, these different functions are easily recognized. (And you therefor probably already gave the proper answer in the previous self-test).</p><p><br/>Now if we look at infrastructure facilities, we find there are many words that describe the construction and its components (router, firewall, CMS, server, hypervisor, database), but we seem to lack the proper functional vocabulary. One could wonder if we could simply put “ing” behind a construction items name  to describe its function. When we try that, we find that “Routing” and “firewalling” seem OK. But “Content Managing”, “serving” and “data basing” are too generic, and “hypervisoring”… well that doesn’t seem to mean anything. And by the way, doesn’t your firewall also do other things, like routing and logging?</p><p><br/>It’s clear we need to look at infrastructure in a different, more fundamental way. At the most basic level, we could say that infrastructure transports, stores, and/or processes a customer’s data. But using a vocabulary of only three verbs won’t get us very far, so we need more specific words to describe infrastructure functionality.</p><h2><br/>The OIAm functional vocabulary</h2><p>Fortunately we don’t have to make up these infrastructure functions from scratch. There’s a community surrounding the Open Infrastructure Architecture method (OIAm), that has been working on this problem of recognizing and naming infrastructure functionality since 2008. This has resulted in a list of some <a href=”http://www.infra-repository.org/oiar/index.php/Building_Block_Type_Overview”>fifty-plus infrastructure functions</a>, ranging from “distribution” (what a router does) and “filtering” (what a firewall does) to “interconnection” (long range network connection), from “Application Engine” to “Identity Validation”, et cetera. Tested in practice, the set of infrastructure function covers just about everything that the infrastructure architects need to describe.</p><p><br/>One thing that remains difficult, however, is how to come to acceptable names for the functions. We’ve found cases where a function was named with a seemingly fitting, industry accepted term, only to find that architectures containing this function were misunderstood by some, precisely because of that familiar term. Examples are Authentication (now named Identity Validation) and “Basic Storage” (now Raw Retention). It turns out that many recognizable terms can be interpreted in many different ways, some narrow in interpretation, others quite sweeping.<br/>On the other hand, if functions are named with seemingly abstract, obscure, or otherwise unknown terms, then some stakeholders may regard the whole architecture built on those functions as a fairly useless academic exercise.</p><p><br/>So in naming generic infrastructure functions, we need to maintain a precarious balance between terms that are too familiar, and terms that are too alien. Have the community succeeded in this? Maybe you can <a href=”http://www.infra-repository.org/oiar/index.php/Building_Block_Type_Overview”>have a look</a> for yourself, and if you think you can help us improve, feel free to <a href=”mailto:j.schoonderbeek@bizzdesign.nl”>drop me a line</a>. And since the vocabulary is published under a Creative Commons license, you are free to use it as you see fit.</p>

Categories Uncategorized

How to build a Roadmap – Prioritize (Part I)

This post discusses how to use the results from steps 1 – 3 to prioritize the actions we have identified to close the gap or difference (delta) from where we are to what we aspire to be. This is usually driven by evaluating the relative business value AND the technical complexity, plotting the results in a quadrant graph using an Action Priority Matrix. What we are doing here is IDENTIFYING what is feasible and what has the highest business value balancing business need with the capability to execute.

Accelare Announces WhatFirst 2013

I am excited about the new edition of our business architecture product, WhatFirst™. Here is the scoop. Accelare announces the general availability of WhatFirst™ 2013, the next generation of Strategy-to-Execution software on the Microsoft SharePoint 2013 platform. WhatFirst™ is designed as a planning tool to unpack strategy into executable packages of integrated work and provide […]