20 January 2010

Agile Architecture – Some Random Musings

In a recent blog post entitled "Enterprise Architecture - The big catch up" James Gardner (a.k.a. Bankervision) posed the question “How did you get your architecture ahead of project’s demands for it?” and invited those with direct experience to contribute. This is of course a subject dear to my heart, and I duly posted my comments. I have since received numerous requests to post my comments as an article directly on my blog, and so here they are (with minimal editing).

Less is More
Rapid development of architecture in order to stay ahead of the project demand curve is a common dilemma, and one which I believe it is essential for all architects to understand (and more importantly to solve). Bankervision moots decentralization as one possible solution, and I would certainly agree that this can accelerate generation of content. Decentralisation on its own, however, does create its own problem in that the more people you have contributing to a common model, the more work is required to rationalise the result and avoid conflicts and contradictions (which in themselves give the appearance of an incomplete architecture and we are back to the original problem).

For me the real answer here is to have less architects, not more, but it is essential to ensure that they are extremely strong characters with a wide range of experience and the courage and confidence to make the necessary decisions quickly in the absence of hard data. They also need to be brave enough to get it wrong as a mistake in architecture is visible to all. (The fear of being seen to be wrong is a character trait that an architect cannot afford to have).

These strong architects need to have a deep understanding of the world of projects and delivery. They need to have experienced it for themselves in order to know what a project wants and what it doesn't want. (A project wants hard answers and ready-made solutions, not vague ideas and lengthy documents). Give them 80% of what they need and they will have time to help you fill in the other 20% (and so the architecture becomes more complete). People don't mind the gaps as long as the bits that are there are of true value to them (and most importantly make their jobs easier).

Now - this doesn't mean you don't involve a greater community in the production of the architecture. A good architect will be talking to a wide variety of people both inside and outside your organisation, and will have their fingers in many pies. They will already know much of what is required and will be able to talk directly to the people who will give them the information they need.

The Crowd versus the Committee
One concrete example of community involvement in architecture is in the Business Architecture I produced in my current role mentoring a newly formed Business Architecture.

Here, in a nutshell is how we did it:

We brought together a variety of people from across the organisation into a hotel for two days with the remit to "Create the Business Architecture" (They of course didn't believe this could be done, but were hoping to plan out how to do it).

I facilitated the two days and on day one put up a straw man domain model for the business based on their core value chain (from their vision/strategy papers) and invited them to tear it down and rebuild it.

Free discussion and copious post-its gave us their version. (Coffee was, of course consumed in large quantity, and the Danish pastries helped enormously).

In the afternoon we had open discussion (arguments?) in which everyone was invited to add to the model the services they as a business wanted to provide to their customers in the future. We asked them to think to the future (an aspirational date of 2015 was used) and be as unconstrained and inventive as they could be (regular reminders were required to ensure this future focus was maintained). The big question was "What would you like to do!" not "What do you do today" or "What do you think can be done". The constant reminder was "Don't worry if it can be done or not - let us worry about that later"

We then looked at what we had as a group to remove duplicates, resolve conflicts and reach a consensus.

By the end of the second day we had the big picture.

We had a single sheet of paper on which the entire business could be clearly seen, in language familiar to the business. There were no gaping holes around the edges as we did not get shoehorned into focussing on the core services in detail to the exclusion of everything else, and we had a happy (if very tired) consensus around the table that we had a picture of how we would all like the business to look in the future.

We also had a framework that would allow individuals to work on the detail of each service without having to worry about the whole, and in the full knowledge that their work would fit neatly into the jigsaw.

Most importantly, we had created the belief in all those involved that architecture was something you could do (and benefit from) extremely quickly and that decisions were there to be made then and there, not to be passed to a committee to discuss.

This BA has now received wide acclaim across the organisation and has been used successfully and in anger on more than one occasion.

Are there gaps? Of course there are, but these no longer seem to matter. People are seeing the value, getting excited about it, and seeing the opportunity to help us to fill in the gaps as a positive thing.

And Finally... Some Tweets
James’ post also prompted some related tweets from myself, which I include here for completeness:
An architect should always have the answer (even if they're not sure its right ;-)
An architecture should be crowd-sourced, not designed by committee. The architect is filter, scribe, diplomat and evangelist.
Everyone has thoughts, ideas and opinions - it is the job of the architect to condense these into deliverable answers.
Regards
The Enterprising Architect

8 December 2009

EA Quick Start Guide (Part 3): Getting Down to Business

In part 3 of my series introducing Enterprise Architecture, I will focus on the first (and foremost) of the three layers described in Part 2; the Business Layer.

A Quick Reminder
As discussed in Part 2, the business layer of the Enterprise Architecture focuses on the future needs of the business by describing what the business intends to provide to fulfil the needs of its external and internal customers (see the following diagram showing the business layer in the context of the full EA Grid):



Within the business layer are three key models covering behaviour, structure and knowledge, defined as follows:
  • Services (Business Behaviour)
    Shows the business services to be provided to the internal and external customers to fulfil the business vision and objectives, and models these services as well defined and self-contained processes.
  • Organisation (Business Structure)
    Shows how the proposed business services fit within the target organisation model, and how these services interact with one another to create the desired customer experience.
  • Information (Business Knowledge)
    Shows the information as understood by the business as a set of entities and includes the relationships between these entities. This information model needs to be supportive of the business services described in the Services model (and vice versa).
I have already recommended that a good architect starts in the corners of the EA Grid, and following this principle, I will now describe the individual models in this order. However, it should be noted that a degree of overlap in the development of these models will be beneficial to ensure that no one model is created without the benefit of at least an overview of how the other two models are evolving.

The Services Model
Although there will inevitably be a high degree of overlap between the three models in the business layer, the most effective place to start is with the services model. It is here that the true future intent of the business can be articulated in a manner that makes sense to the business, and that focuses on the business from a customer-centric point of view. The Services model tells us exactly what it is the Business intends to “do” for its customers.

Step 1: Domains
Starting with a large blank page (electronic or physical) first define your future business in terms of service domains. These service domains are high level grouping concepts that separate the services to be provided by your business into areas of interest. Think of them simply as boxes into which you will place your services so that you and the business can find them easily in the future (e.g. “Insurance”, “Financial Planning”). A typical domain model for even the largest of organisations should need no more than five to ten domains. If your business already has a good idea of where it is heading, and there is some form of vision statement to support this, this initial domain model should take no more than an hour or two to produce.

Step 2: Services
Now start populating this model with the services that you intend to provide to the customer (e.g. “Insure my car”). Approach this in a brainstorming fashion, focusing more on what the business wants to do and less on getting the names and positions on the model right (they can always be moved or renamed later). Keep going until the ideas start drying up and then review what you have, making sure you have captured the intent of each service to avoid misinterpretation later. Take an 80/20 approach to this task; there will be plenty of time to add the services you miss as you develop the model further. Provided you have the right people involved in this process (those with the authority to formulate the future vision) it should take no more than one or two days to produce the first cut of a fairly inclusive service model.

Step 3: Tasks
To flesh out the basic service model you now need to define the individual tasks that will need to take place to provide each of the services (e.g. within “Insure my Car” you might have tasks such as “Produce a Quote”, “Agree Terms”, etc). A question that often arises at this point is “when is it a task rather than a service?” I stick to the rule of thumb that a task is something that can be performed by a single person (or team) and could be performed between cups of coffee. Focus first on those that are deemed most important to the business’s value proposition, and on those that are felt to be the most “radical” in terms of business transformation. For an average service, separation into tasks should take no more than a day at most.

Step 4: Processes
To complete the service model you now need to describe exactly what has to take place to fulfil each task. In my experience, the best tool for this is the old favourite, process modelling. Agree first on the pre-conditions and post-conditions for the task so that the start and end points are well understood, and then describe the steps that need to be undertaken to complete the task. If you have divided your services down into the type of tasks described in step 3 above, each of these processes will probably only consist of a handful of steps (typically between five and ten). Again, for an average task, the initial process should be definable in less than a day.

During each of these four steps you will find that there is a strong tendency to fall back on “what we do today” whenever the going gets tough. As the Enterprise Architect it is important that you regularly ask the question “is this what you want to do in the future, or is this what you have to do now?”

The Information Model
Closely aligned to the Services model is the Information model which describes what the business will need to know to support the service it provides to its customers. This model should approach information from a business centric point of view, and not from a more traditional IT perspective (which is typically adapted for suitability to the applications, technologies and database approaches, and has little meaning to the business). The business should be able to look at the information model and instantly recognise the content in the context of their day-to-day activities, and it is for this reason that this is often the easiest model to populate.

Step 1: Domains
Essentially, the same first step as for the services model, but this time we focus on domains that allow us to group our information according to subject matter (e.g. Customer, Financial, Products, etc.). As before, it should be possible to complete this task satisfactorily within an hour or two.

Step 2: Entities
Now start populating this model with the information entities; the things the business wants or needs to know about. (If you know anything about database techniques and third normal form please resist the temptation to impose your data modelling “experience” on this activity). Approach this in a brainstorming fashion, focusing more on the core things that the business wants to know about, rather than the fine detail (this will come later in Step 4 below). Keep going until the ideas start drying up and then review what you have, making sure you have captured a description for each entity to avoid misinterpretation later. It should take no more than a day to produce the first cut of this model.

Step 3: Relationships
Information does not exist in isolation. Now that you have captured the main areas of knowledge, refine this model by adding the relationships between these entities. Be careful to only link those entities that have a genuine relationship to one another. Do not link entities to one another simply because your business intends to use the information in a related manner. (For example, a Contact will probably be related to a Customer, but just because you intend to use your Contact History information to develop a Customer Insight Model does not then mean that these entities are related to one another).

Step 4: Discovery and Use
As mentioned earlier, the Information model is closely associated with the Services model. Revisit the tasks in your Services model, and show where knowledge is used or captured by linking the process steps to the relevant information entities. Where necessary create new entities (and their relationships) to support knowledge that is described in the processes, but has not yet been captured in the Information model.

In theory, it is possible to skip directly to Step 4, and use the your Services model as the core discovery tool from which to develop your Information model. However, in practice, you will find that your Business already has a well developed understanding of the knowledge it needs to support, and Steps 2 and 3 offer a more pragmatic and efficient approach to developing a draft Information model.

The Organisation Model
With the Services and Information model we have the basic building blocks for our business, but what we do not have is the overall structure to support this, and this is where the Organisation model comes in. This is not just an organisation hierarchy diagram; far from it. This model is more accurately compared to the London Underground map. By laying out the customer experience in the form of journeys with clear start and end points, travelling through stations representing the key business services used, we can show how these services interact with one another to create the desired result.

We can also recognise more clearly how our teams and departments may need to be organised to ensure that the customer journey is as smooth and efficient as possible, and to ensure that departmental handovers happen at sensible points in that journey. I do not recommend that this is approached as a single end-to-end activity. Instead, approach it in a demand driven fashion guided by the Business initiatives and projects whose needs are greatest. By adopting this approach you can assist with the development of projects requirements, ensure that the projects are aligned to the services in the Business Architecture, and leverage the funded resource assigned to the project.

Step 1: Journeys
The first step in joining up the pieces of our Business jigsaw is to identify and map out the journeys our customers are taken on as they use our services. Describes these as “stories” describing what the customer does, and what the Business does for them, and remember to consider the journey taken by the “virtual customer” as their information flows through our processes (not just the part of the journey visible to the customer) as this hidden journey impacts the customer experience. An example of a Customer journey might be that taken by a UK benefit recipient, which starts when they become unemployed and sign on for benefits through to (possibly) getting a new job and the benefit ending. Remember to model the journey you would like the Customer to experience, rather than the warts-and-all one they may have to take at present. Each journey will typically take a day to develop.

Step 2: Interactions
During a typical journey, a customer might interact with the Business on many occasions, and these interactions need to be identified and named. It is important during this step to recognise that although the customer journey might be unique, the interactions within it will probably re-occur in other journeys (for example, Make Complaint, Search for Jobs, etc.). Each interaction can then be modelled as a sequence of one or more business tasks from the Services model. The customer journey can now be added to the “tube map”. The journey itself represents the “track”, and the interactions are the stations along the way. Adding journeys to the tube map allows us to recognise where journeys join and separate and to understand how any departmental structures might cut across the journeys creating a more complicated customer experience.

Step 3: Organisation
As the tube map develops, there will come a point where it is possible to overlay the proposed business structure on this model. Consider the “zones” on the London Underground tube map and imagine these to be your business areas. You can now identify where it makes sense to handle customer interactions in call centres, and where expert teams need to (and can effectively) get involved. Symbols can be added to the “stations” to show where paper is created or destroyed to support your paper removal agenda (if you have one), or to draw attention to any other key events that you need to highlight. This one diagram brings everything together into a single big picture that shows the simplicity or complexity of your Business at the service and organisational level, and facilitates open discussions about the overall impacts of key Business changes.

Voila!
And there you have it. The Business Architecture; done (as Gordon Ramsey might say).

Well, no... Not exactly. What you have done is started the reaction; what you have not done is reached the critical mass necessary to ensure that this activity does not simply fizzle out.

Your Business Architecture will have significant gaps that others can use to challenge its validity. Many areas will need further work to resolve conflicting requirements and ambitions. And of course, the vision for the future is not a static thing. It will change on a daily basis, and your architecture, as an articulation of this vision, must adapt to its twists and turns.

Architecture is a living thing, and Business Architecture is no exception. You will need to continually revisit and refine to respond to the emerging challenges and the immediate imperatives for the Business.

Above all, you must use your Business Architecture, and you must make sure that others use it too. Not as an afterthought to test alignment, but as the core source of information to identify change initiatives, guide projects, and develop requirements.

You’ve just finished the easy part. From now on it gets physical.

Regards
The Enterprising Architect

26 November 2009

EA Quick Start Guide (Part 2): The Big Picture

In this, the second in my series introducing Enterprise Architecture, I describe the layers of what I consider to be a well formed and pragmatic EA model, and what constitutes the "big picture" so often referred to in architecture circles.

The terminology used is my own, and although it bears similarity to concepts conveyed in other architecture frameworks there are differences (there are, after all, only so many words in the English language that are suitable for certain concepts). For those readers already familiar with established architecture frameworks, it is therefore worth approaching this material with an open mind in order to avoid attaching existing preconceptions to the content.

Please keep in mind at all times that in my architecture approach, the model you are creating first and foremost is the future model (often referred to as the “to-be” architecture). Starting with the “as-is” model, in an attempt to record the status-quo is, in my opinion, unproductive in the absence of the “to-be” model. (See my previous article http://theenterprisingarchitect.blogspot.com/2009/08/to-be-or-not-to-be.html for a more detailed explanation of this position).

The EA Grid
Essential to an architecture is a “big picture” that brings together all the concepts into a single easy to understand starting point. An Enterprise Architecture is made up of several self-contained, but inter-dependent architectures, and thus the EA is made up of several “big pictures”, as shown in the following diagram:



The EA Layers
The EA is first divided into three layers (down the left hand side of the diagram) defined as follows:
  • Business Layer
    Focuses on the future needs of the business by describing what the business intends to provide to fulfil the needs of its external and internal customers.
  • Application Layer
    Describes the high level solutions that need to be provided to support the future intent described in the Business Layer.
  • Infrastructure Layer
    Describes the raw infrastructure elements that will need to be provided to support the solutions described in the Application Layer.
It is important to note that although the terms “Application” and “Infrastructure” are commonly used to represent IT concepts, there is no implication that these layers should contain only the IT elements. For example, in a retail environment it is perfectly reasonable to expect to see the components of the distribution network (such as the vehicles, warehouses, etc.) in the Infrastructure Layer.

The EA Models
The layers of the EA are then divided into three model types (across the top of the diagram), defined as follows:
  • Behaviour Model
    Describes how each element of the architecture will behave in isolation and how they will expose this behaviour.
  • Structure Model
    Describes how the elements of the architecture will all fit together to form a coherent whole.
  • Knowledge Model
    Describes what will need to be known, and how this knowledge will be grouped and categorised.
The EA Pictures
Inevitably this grid results in nine “big pictures”. Nine big pictures might sounds like a lot, but considering that this presents the model for an entire enterprise this is a relatively small number of pictures. Also, each performs a specific job, and many people will be interested in only one or two of these pictures. The intent of a big picture is to convey the overall concepts in one single place that can be easily understood and digested before the reader dives into the underlying detail. For this reason, the techniques used to draw these pictures may be different dependent on the environment, but as a starting point the following descriptions should work in most circumstances:
  • Services (Business Behaviour)
    Shows the business services to be provided to the internal and external customers to fulfil the business vision and objectives, and models these services as well defined and self-contained processes.
  • Organisation (Business Structure)
    Shows how the proposed business services fit within the target organisation model, and how these services interact with one another to create the desired customer experience.
  • Information (Business Knowledge)
    Shows the information as understood by the business as a set of entities and includes the relationships between these entities. This information model needs to be supportive of the business services described in the Services model (and vice versa).
  • Capabilities (Application Behaviour)
    Shows the internal application services needed by the business (including IT) to allow it to undertake the processes described in the Services layer.
  • Solutions (Application Structure)
    Shows how the application services interact with one another to fulfil the needs of the Organisation model and thus provide the desired customer experience.
  • Data (Application Information)
    Shows the detailed data elements and relationships required to support the Information model. This data model is derived from the Information model, but at the same time, needs to be supportive of the application services described in the Capabilities model (and vice versa).
  • Components (Infrastructure Behaviour)
    Shows the individual infrastructure components available to the business to perform its daily activities. In a COTS (Custom Off The Shelf) environment which adopts a “buy not build” strategy, there may well be a great deal of similarity between this model and the Capabilities model.
  • Systems (Infrastructure Structure)
    Shows how the infrastructure components interact with one another to fulfil the needs of the Solution model.
  • Sources (Infrastructure Knowledge)
    Shows the sources of the raw data described in the Data model. In an ideal world, these sources will be derived directly from the Data model, but in reality sources may duplicate data, or separate related data as a result of the choices made in the Component model. This model should therefore identify how the duplication and re-combination of data will be handled.
Where to Start
But that is a lot of pictures to consider, and we have to start somewhere. The majority of “traditional” organisations start in the centre by developing the Solution model. This task often falls to IT alone, acting on a variety of unaligned instructions from many interested parties. In my opinion, this is where many of the problems associated with “Big IT” originate.

It is far better to treat the EA Grid as a jigsaw. Start with the corners, then fill in the edges, and finally complete the centre. The corners allow us to better understand how the edges fit, and the edges give us a better understanding of how the middle needs to look. However, as for a jigsaw, if you find a piece that you know fits an area you are not yet working on, don’t just ignore it; put it where you think it belongs.

It is also best to start with the top left corner (the Services model) in keeping with the service oriented approaches that many architects adopt, and then work left to right and top to bottom (still focusing on the corners first and foremost).

Joining the Dots
The full Enterprise Architecture only makes sense if each of the models links to its neighbours to form an overall joined up picture. It is therefore important to ensure that for each type of model (Behaviour, Structure and Knowledge) there is clear traceability from the Business Layer to the Application Layer and from the Application Layer to the Infrastructure Layer to demonstrate how the needs of the business are being fulfilled, and by what.

This concludes the second part of the Quick Start Guide. The overall Enterprise Architecture has been described as a set of interlinked and mutually supportive big pictures, and an initial indication of the purpose and content of each model has been given.

Further articles will follow describing each of the models in more detail, but from this overview a strong architect should be capable of developing models of whatever flavour they choose that fit into, and fulfil the intent of this approach.

And remember... One of the problems with architecture is that when you describe it in words, it always sounds more complex than it actually is in practice. This article simply applies one of the core concepts of enterprise architecture to itself:
Divide and conquer
Regards
The Enterprising Architect

16 November 2009

EA Quick Start Guide (Part 1): How to Set Up an EA Practice

This article is the first in a sequence providing an introduction to Enterprise Architecture suitable for those starting out in the profession, or for those outside the architecture profession interested in what the fuss is all about.

In this first article I would like to address an issue that has particularly bothered me recently; the setting up of an EA practice. Much is made of the activities required to establish such a practice, but in my opinion, the advice given is at the heart of why others are frustrated with the lack of value delivered by Enterprise Architecture in the early stages of its adoption.

What Not to Do
Firstly, let me address what not to do. Common “wisdom” seems to believe that the initial steps should be as follows:
  1. Identify the fundamental principles that the architecture will support.
  2. Establish the governance framework that will ensure compliance with the architecture.
  3. Establish the architecture framework that the EA practice will adopt.
  4. Start to engage with projects.
“What's wrong with that?” you might ask. It sounds reasonable enough at face value, but this approach is unlikely to result in quick acceptance of EA as a valuable activity.

Firstly, of what use are principles to anyone? They are usually a re-articulation of the obvious, and stating them (or more importantly, wasting time word-smithing them) will simply establish right from the outset that your so-called EA practice has every intention of being a talking shop that makes a profession out of navel gazing. What is more, what exactly is anyone else supposed to do with these principles? They can try with all their might to conform to them, but at the end of the day, they are simply words with many possible interpretations.

Principles may be useful in guiding your architects in the development of the architecture, but they are no more use to the recipients of that architect than a set of coding standards (without any code) are to a tester. In reality, principles in isolation are simply ambiguous tools that self proclaimed architects can use to impose their opinions on others.

…And this brings me to the second step. What are you doing establishing a governance framework when (a) you have nothing against which to measure compliance, and (b) you have not yet established the credibility or respect to demand that others do as you say. Establishing a governance framework at this stage also sends out a very strong message that the primary intent of your practice is to block progress, rather than enable it.

The third step is not so contentious, but I would consider it to be too burdensome to undertake during the emergent phase of your practice. In my opinion, frameworks are useful sources of reference information that can be dipped into and cherry-picked as work progresses on your architecture. Use them as you would a dictionary or encyclopaedia. As for the fourth step; engaging with projects at this stage will simply destroy any credibility you may have had, as you will simply be exposing your lack of real deliverables to a sceptical audience. What is more, you will be dragged into the day-to-day point solution world of the project, and become just one more design resource. This will take your architects away from the bigger picture, and prevent your EA from being developed.

What to Do
So what should we do? The hint is in the previous paragraph. The one thing that the organisation needs you to do as an EA practice is develop your Enterprise Architecture. Until this starts to happen, you cannot provide any real guidance or value, and you certainly cannot justify what you are saying if it is not clearly recorded. You will, instead, always appear to be “making it up as you go along”.

For me, the ideal first steps in establishing an EA practice are:
  1. Ensure you have the right people.
  2. Establish basic working practices.
  3. Start building your architecture!
Those are the basic steps. The following sections give some guidance on how best to perform them.

What Makes a Good Architect?
Enterprise Architecture is a skilled, specialised activity, to be performed by a small number of people. One weak link could fundamentally undermine your effectiveness. (This should be obvious, but for some inexplicable reason EA practices more than any other area of business are set up from a random selection of people, rather than those selected for their previous experience, or potential to be architects. Some key attributes required by an architect are:
  1. Ability to communicate verbally, visually and textually.
    Architecture is (roughly) 80% communication. Bad communication will frustrate others and negate the effectiveness of your architecture.
  2. Ability to listen and quickly assimilate new information.
    Architects are always dealing with the future and thus the ability to learn fast and think fast is essential. What you know today will almost certainly be out of date with respect to a true “to-be” architecture.
  3. Ability to influence and enthuse.
    For your architecture to be successful it must be followed, and for this to happen others must be bought into, and enthusiastic about your architecture. This will only happen if your team have the presence and ability to make it happen.
  4. Credibility.
    Some people have it, some do not, and worse still, some have at some point in the past lost it. There is no point in starting with a disadvantage.
  5. Ability to see the big picture.
    An architect must be able to consider the organisation as an entire system. Those who prefer to focus on point solutions or drill down into the detail of one thing at the expense of the rest are not suited to architecture.
  6. A natural preference for simplicity.
    The best architecture is the simplest possible one that can fulfil the business vision. Those who gravitate towards, and enjoy complexity do not make good architects. Those who abhor complexity and take please from finding the simplest possible solution to a problem are the ones you want.
But what about specific business or technical knowledge? For me, it is not specific knowledge that matters, but a demonstrable ability to adapt to new situations, and understand new ways of working, and new enabling technologies at the drop of a hat. Those with specific in-depth knowledge generally measure their own value in terms of the relevance of that knowledge. As a result these people often fear change, as it may negate that value, and thus negate their importance. They are not best placed to view the future from an unbiased point of view. Unfortunately, businesses too often focus on finding people with the specific knowledge to support their current position, and then wonder why these people bring nothing new to the table.

What are the Right Working Practices?
When setting up an EA team, the best working practices are those that will allow you to both engage with projects and continue to build your architecture, without the demands of one impeding progress on the other. You need to quickly establish who will support projects, and who will build architecture, and then you need to ensure that these two groups retain a close working relationship as each will feed the other.

Your working practices need to support a proactive approach where the build activity seeks information regarding the future strategy, (and in turn helps to guide future strategy) and quickly articulates this information as future architecture.

You also need to support a reactive approach that allows the architecture to engage with projects at an early stage and either feed them with information already recorded in the architecture, or re-prioritise build activities to focus on the areas of the architecture that will fulfil the needs of the project.

How Should We Build It?
Build it? That’s the scary bit, isn't it? This brings us to the heart of the problem. So many EA practices spend time avoiding the really important bit because they are frightened of it. I strongly believe this is why so many processes for establishing an EA practice start with a sequence of what I feel are little more that prevaricating steps. In a consultancy led world, an outside “specialist” can use this approach to provide a significant amount of content without actually having to get involved in building anything.

In the early stages you need to recognise that initial demand will come fast, and will come from two sources; above and below. From above, you will need to engage with the business to articulate the future vision in the form of a Business Architecture. From below, in-flight projects will start to demand guidance relating to low level implementation decisions. You will need to have the courage to make some decisions relating to future technologies with very little guiding information, and articulate these decisions in your Technology Architecture. Some of these decisions may turn out to be wrong, and you must be willing to accept this, adapt your Technology Architecture accordingly, and help projects to absorb these changes in a pragmatic manner. Remember, that sometimes the simple act of making a decision and sticking to it is what makes that decision the right one.

(I will cover what goes into an Enterprise Architecture in terms of levelling and content in later posts in this series).

It is this build focused activity that guides your engagement with projects, and more importantly with those who set the vision and strategy of the organisation as a whole (and yes, that does include you as an architect).

And the Rest?
Let’s now return to the original steps that I declared to be the wrong ones. They were:
  1. Identify the fundamental principles that the architecture will support.
  2. Establish the governance framework that will ensure compliance with the architecture.
  3. Establish the architecture framework that the EA practice will adopt.
  4. Start to engage with projects.
Am I suggesting that these are not important, or can be ignored? Of course not, but what I am stating is that these are not the very first things you need to do. Once you are up and running and developing the architecture (and thus hopefully providing some real value) you can address these other areas on an as-needs basis.

Principles can be recorded if you like, but remember that your architects, if properly selected, will already naturally apply sensible principles to everything they do. Do not expect others to act on these principles however. They need you to act on them and provide an architecture that fulfils these principles.

A governance framework will be important as your architecture develops, but you must start in a spirit of cooperation and assistance to win support and credibility. Once this has been established and you have some content in your architecture you can start to introduce more formal governance mechanisms based on this content and the trust you have already established.

An EA framework is also important, but it should be your own, and it should be adapted to and derived from the unique circumstances that exist within your own organisation. Once again, attack this on a just-in-time basis, cherry picking from the various reference frameworks those features and details that you find you have a need for, and always consider carefully whether it really adds value to what you are doing. (Roger sessions wrote a good article on EA framework comparison available for download at http://www.objectwatch.com/whitepapers/4EAComparison.pdf).

Is This the Only Way?
Of course this is not the only way. You are an architect, and you are in charge of your own approach. If you cannot set your own direction of travel, then you need to question whether you can set the direction for others to follow. The intent, however, should always remain the same:
To start producing an Enterprise Architecture and to become a useful addition to the organisation in as short a time as possible.
The longer you take to do this, the more likely it is that someone will decide (correctly) that you are surplus to requirements, before you even get started.

Regards
The Enterprising Architect

5 November 2009

I Don’t Like Architects

The title of this article may seem strange, coming as it does from someone who declares himself to be an Enterprise Architect (EA). Let me explain...

Bad EA = EA Bad?
One of the greatest frustrations as an EA is that my first meeting with most people in the work environment is one of distrust and open criticism. Before I can make any progress, I first have to answer one or more of the following questions:
  1. What is EA?
  2. What's in it for me?
  3. Why is it going to work this time when it hasn’t before?
  4. Why waste time with EA when we could be getting on with the real work?
  5. Why do you architects insist on slowing things down?
The first two questions are no problem at all. They get to the heart of the issue, as the questioner is recognising (1) that they need to understand EA before they can judge it, and (2) that EA should be contributing to what they are doing and I as an EA should be able to justify what that contribution is.

It is the remaining questions that frustrate me; not because they are being asked, but because the person I am speaking to has had to experience EA in a way that leads them to ask these questions.

Is EA fundamentally flawed as an approach, and if so does it need to be rethought or renamed? Absolutely not.

Is EA an academic concept that is simply not pragmatic enough, in the day-to-day pressures of modern business, to be of practical use? Again, absolutely not.

Good EA is a simple and effective tool that forms an essential step in the journey, and what is more it accelerates the journey rather than slowing it down. Why then is EA viewed with such scepticism and disrespect?

Seeing is Believing
For me, this is a people problem, not a process problem, and it is the same problem that “Big IT” suffers from.

People have a tendency to gravitate towards “the next big thing” and for a while this was IT. (In my father’s day it was the newly emerging field of electronics). Everyone and their dog was suddenly in (or trying to be in) IT regardless of aptitude or experience. This in itself was not a problem, but companies then employed these people in the bizarre belief that it was something anyone could do (an attitude they would never apply to their own profession).

The result was runaway inefficiency, with the many who claimed to be able to do IT getting in the way of the few who could really do it. Management then looked at the resulting decrease in productivity and decided that more people were required. Finding the necessary resource to be scarce they became even more sure that the solution was to hire even more non-IT people in the hope that they would become effective over time.

When increased resource didn’t help, the focus then shifted to greater analysis and design, increased testing, and increased release management to try to overcome the poor quality of the systems being produced. The result? Even greater inefficiency, and the widespread (and mistaken) belief that IT was by nature big, expensive and time consuming.

Then came EA and architecture in general. Jobs advertised under the name of architecture carried higher price tags than the traditional designer, developer & analyst roles seemed to carry. Naturally everyone started to call themselves architects, regardless of activity or ability...

...and this is why I don’t like architects (or to be more accurate bad architects). The majority of people who claim to be architects are quite simply no good at it. They may be excellent at what they used to do, but what they are now doing is not architecture. By claiming to be architects they simply devalue it by either doing it badly and making it look bad, or by doing something that is already being done elsewhere and making it look redundant.

These are the people I do not like. They make my job twice as hard, and force me to start from a position of disrespect in my interactions with new contacts. I dislike them as much as I dislike bad leaders, bad public speakers, bad programmers and bad politicians.

The Moral of this Story
In conclusion, when you discuss the problems of architecture, think carefully about whether what you are really discussing is the problem with the people claiming to be architects. After all, the fact that you have experience of one or more bad plumbers, does not imply you can live without plumbing.

A Message to Architects: Consider the five questions at the start of this article. If you cannot answer all five to at least the partial satisfaction of the questioner, then perhaps you are one of those Architects to whom I am less than enamoured.

A Message to Leaders: You select your architects. If they prove to be ineffective, consider the possibility that the problem lies in your selection of architect rather than the validity of the activity itself.

A Message to Innovators: Defend your ground. Given the current (justified) enthusiasm for innovation, I am sure you will soon find yourself surrounded by would-be innovators keen to jump on the bandwagon, and devalue the perception of your expertise and value.

Regards
The Enterprising Architect

30 October 2009

The EA Identity Crisis

As business architecture gains a foothold as a tool for enabling the delivery of business change, Enterprise Architecture (and more specifically the Chief Architect) is experiencing an identity crisis.

IT’s Coming Home
With the fairly recent and somewhat belated recognition that Enterprise Architecture is not a purely IT focused activity (the clue is in the name), architects are finding themselves more involved with the alignment of IT architecture with business strategy. In some organisations, there may even be the recognition that Business Architecture is key to this transition.

Why this is considered to be something new is beyond me. Why IT would consider alignment with the business to be an add-on or a refinement to what they currently do is extremely worrying. The history of how IT became something separate, and how the need to “align IT to the business” arose as a task that people needed to be reminded of is a vague one that I will not discuss in this post.

I need to stress at this point that I do not accept that an amorphous reference library containing all the compartmentalised business information and design in any way represents a true Business Architecture; no matter how many times people try to call it one.

The emergence of Business Architecture as a formal activity should not be in an issue in itself. It is a fairly simple matter to realign architecture to the business needs, and use existing Enterprise Architecture skills to articulate the Business Strategy as architecture, and then derive the technology oriented elements of the architect from this...

...but it is an issue.

Get your Filthy Hands off my Business!
Despite the addition of the “enterprise” qualifier, architecture is still considered in many organisations to be purely the domain of the IT department, whilst business strategy is considered to be something that IT may be interested in, but should not interfere with. It is here that the dilemma exists.

The main cause of the confusion is the alignment of many Chief Architects to the IT Department coupled with a reporting line up to the CIO. It is difficult for such an architect to be considered as anything other than an IT focused individual, and it is then even more challenging for this individual to get a seat at the business table. However, for many problems, IT forms a major part of the solution, and in developing an enterprise architecture, the Chief Architect will need to have a working knowledge of the emerging technologies that so dictate the art of the possible in the modern world.

Now we need to address another misconception. Apparently, IT people don’t understand the business. This is as unreasonable and offensive as saying women can’t drive or white men can’t dance (and more seriously, it is a form of discrimination that can damage careers). Of course, some IT people do not have the business savvy to become enterprise architects, but similarly some non-IT people do not have the engineering mentality that is core to the development of a simple, well structured architecture (and vice-versa).

However, this discriminatory belief that IT people aren’t fit for business matters, often excludes architects who have grown up through the technical ranks from contributing to, or guiding the development of Business Architecture. (I have seen job adverts for Business Architects that explicitly request that candidates must not come from a technical background).

So we have two questions to answer. Firstly, who is the Chief Architect for the enterprise as a whole, and secondly, who does this person report to?

Who Am I?
I am aware from my conversations on twitter that some people have come to the conclusion that the CEO is the Chief Architect. In my opinion this conclusion is not a practical one; despite the fact that it is supported by more than one person whose opinion I respect. For me, the CEO is chief visionary (or strategist) and of course has control over the architecture, much as he or she has control over all elements of the Business.

But the CEO is no more Chief Enterprise Architect than he or she is COO or CFO. Architecture is the next step in the process that takes the CEO’s vision and formulates it in an unambiguous and concise manner to guide the “doers”. (See my previous article What’s in a Name?). In any organisation large enough to need an enterprise architecture, for practical reasons the role of Chief Architect needs to be a delegated post.

Where Am I?
If the Chief Architect is aligned to IT through a reporting line to the CIO, then discrimination may prevent them from including Business Architecture in their remit. If the Chief Architect is outside the IT domain reporting directly to the CEO, then there is a danger that they become separated from a core function that will be involved in a large element of each business change (the IT part).

For me, there is no ideal solution, but in the current climate of business discrimination against the technically minded, I believe may be necessary for the Chief Architect to be recognised as a direct report to the CEO.

If the discrimination can be overcome, and if the business has a strong technical element within its solutions, then there is no reason why the Chief Architect should not report to the CIO, and the role of CIO be recognised as more than just an IT centric one.

What Am I?
As far as hard skills go, the Chief Architect must have a broad range of practical experience, aligned to the typical proportions found in the business solutions. Inevitably, where businesses are adopting highly technical approaches to their problems, the implication is that the Chief Architect should have a rich technical understanding, and if this means they come from the ranks of IT then this should not be seen to be a problem. As far as soft skills are concerned, here is a brief (but not complete) list of those that I feel are important:
  1. The ability to communicate at all levels and to a variety of audiences in a variety of ways.
  2. The ability to influence by recognising the needs and motivations of others.
  3. The ability to see the big picture quickly and intuitively.
  4. The ability to work with uncertainty and create certainty for others to work with.
  5. The ability to rapidly assimilate new information (no-one knows everything, but an Architect needs to know everything that is relevant).
  6. The ability to make decisions (a surprisingly rare skill).
  7. The ability to solve a problem in a manner that is beneficial to the needs of all parties.
  8. The ability to recognise simplicity at an aesthetic (instinctive) level and avoid complexity.
“But techies don’t have the necessary soft skills!” I hear you cry. There we have the generalised and unacceptable discrimination again. Of course, the Chief Architect does need many soft skills, and these skills may not be abundant in the technical community...

...but that is because as a set they are not abundant in any community. What is more, close inspection of the list should reveal that all apart from the first two skills in my list would be recognised by most engineers, technologists, and IT practitioners as core to their profession.

In Conclusion
Get rid of the anti-tech discrimination (techism?) and the problem goes away. Changing reporting lines will not solve it. Perpetuate the discrimination and you prevent a significant number of excellent candidates from contributing to a key business focused activity in your organisation.

Place all your architecture activities under one single Chief Architect and thus centralise and coordinate one of the key activities you have at your disposal to transform your business. Allow this architect to embrace all elements of the Business (IT included) to develop a truly enterprise wide, fully inclusive architecture.

Before you can truly decide who the Chief Architect reports to you need to fully understand what the true role of the CIO is (and that, my friends, is a whole new topic).

Regards
The Enterprising Architect

20 October 2009

Is it All Just Smoke and Mirrors?

Where does enterprise architecture sit in the grand scheme of organisational change?

I Have Nothing up My Sleeves
One of the most common criticisms levelled at architecture is that it resides in an ivory tower obscured by clouds. Another is that architects are just “making it up as they go along”.

I feel we can quickly dismiss this second criticism, as this is exactly what architects should be doing (or to put a more positive slant on it, making key decisions, and defining strategy in concrete terms). They should, however, ensure that they are “making things up” before people need those things to do their job. Just-in-time architecture is a good thing, but it is only a small step towards just-too-late architecture, which by definition is too late.

There are More Questions than Answers
The first criticism, however, is less easy to dismiss, primarily because in many organisations it is very much the truth, and it is this issue that is key to understanding where architecture sits in the organisation. The activity that is referred to as architecture frequently fails to deliver the key things that it must provide to be of real value, and those things are answers. And now, some brief reminders:
  1. Principles are not answers.
  2. Guidelines are not answers.
  3. Option papers are not answers.
  4. Concepts are not answers.
  5. Answers that have no basis in reality are not answers.
Real architecture is not about vague concepts; it is about concrete reality. It converts the vagaries of strategy into clearly articulated and unambiguous answers that allow the doers to get on and do. One of the key goals of architecture should be to get to the answer as quickly and as simply as is possible.

Between a Rock and a Hard Place
Real architecture sits firmly between strategy and projects and is essential in bridging the gap. If architecture looks only towards strategy it fails to drive delivery. If architecture looks only towards projects, it fails to inform and challenge strategy. In essence:
  1. Strategy tells you what you need to do.
  2. Architecture tells you how to do it.
  3. Projects have the hardest job of all; doing it.
It is for this final reason that architecture must ensure that it makes this incredibly difficult job just a little easier by removing much of the uncertainty of strategy before a project encounters it. This leads me to my concluding list:
  1. By refining strategy, architecture challenges and refines that strategy, removing the conflicts and ambiguities. It turns ideas into answers.
  2. The to-be architecture allows the business to identify the largest gaps in the delivery of its vision, and this in turn helps to inform priorities.
  3. Architecture is a revitalisation of the age old skill of back-of-a-beer-mat design. If you can’t draw it, it isn’t real.
If architecture does not do these things then it is not worth doing.

Regards
The Enterprising Architect