Architecture building blocks and ArchiMate

ArchiMate isn’t only about drawing views and relational models. Understanding the language fully helps how we shape our architecture.

In a meeting last week there was a fairly lively debate about architecture design. In that meeting we had some people wanting to comment the semantics of the ArchiMate language (the more analytical people). Some people were just wanting to understand the relationships between the applications. Quite a lively conversation ensued, and want to share my thoughts on this.

Architecture Tells A Story

I have spoken about Storytelling in previous blogs. In ArchiMate terms, a view of architecture is created for a purpose for a specific audience – its defined in the viewpoint definition. So its important we address the intentions in the viewpoint definitions.

Following ArchiMate Standards Help Structure Architecture

Using the right elements for the right things is important when it comes to wanting to generate specific views. For example If someone mistakenly stated “ISO42010” as a strategic capability rather than “ISO42010 Compliance” as a requirement, then if I want to automatically generate a view of our strategic capabilities, I am going to have things on there that don’t make sense. If many elements have incorrect definitions or relationships between them then the usage of the model as a whole is greatly diminished.

Understanding the elements and the metamodel fully is key

Understanding and using the full metamodel properly gives so much more than just defining elements and relationships. Services are a fantastic example. Rather than building one massive view of interconnected application or technology components, breaking things down into smaller services gives us opportunity for reuse. This can be done at the business, application and technology level. Building a service is like building a Lego block. You can think of the block as being a service – and the interfaces to that service being the connectors like this:

Figure 1 – Lego Web Service

We can build our services in several layers of course; either stacking services, Business on Application, which sits on Technology – Alternatively our Lego block here could also contain elements from other layers. It could be argued with the example above that the interfaces for directory services or databases shouldn’t be there – because they are part of the internal make up of the building block, but this is one of the key things we need to decide when building architecture – what are the logical blocks that make the most sense for reuse, what is internal, what is external. We are building architecture building blocks. Within our services of course there could also be sub services within these building blocks – so one building block can be made of others. I previously wrote a little on Services In ArchiMate that goes into a little more detail on the subject of Services.

I have already spoken extensively on the benefits of having an architecture model rather than word documents, and an ArchiMate relational model making it possible understand the implication of change, but in understanding how the elements and relationships in the metamodel come together to create a service base thinking we truly start to see some real power.

Putting it all together

At the end of the day, we want to be able to do this:

Figure 2: Building blocks

We start to build standard architecture building blocks, with standard interfaces. connecting into standard services we unlock a myriad of advantages – We can can more efficiently reuse our resources, and we can put our services together in interesting new ways. With Lego the focus isn’t on the blocks – its what you can build with them – the same holds true in architecture.

Summing it up

How we model something and follow the language of ArchiMate is important. We don’t just want to understand the elements, or only have a relational model, we also want to ensure what we are doing is building architecture building blocks that make sense, and make it easy for us to have reuse.

Practicing architecture in this way may mean a learning curve for architects but its key for making efficient use of a companies resources, and maximizing the benefits to business.

The Journey Begins…

I created this blog because I have a passion for both blogging, and for Enterprise Architecture.  I have been publishing for a while internal to my organisation and I was thinking it would be an idea to blog outside the organisation; in a lead position I have a responsibility not only to lead but to be active in the community as a whole. I cant say up until this point i have prioritized that, because  other things have taken priority over developing any kind out outside reputation.. 

Forgive the video quality – I don’t currently really have good equipment for production of video or audio because I don’t normally record myself on video. Its not really a talent I have; but its one I will most likely develop over time.

I’ve not externally published before because of legitimate concerns around confidentiality and a concern that potentially things that I write about could sometimes be perceived in a negative light, taken out of context, or wrongly attributed. In my regular job a new strategy has just been put into place which focuses more on networking, which made me think, rather than only promoting internal discussion it would be good to have some external discussion too.I realize this may be opening me up to criticism, and I am fine with people not having the same perspectives as me and welcome anyone who can give me pause for thought and in that discussion, help me grow.

My experience of architecture spans two decades and not all the observations I make relate to my own company.  This blog doesn’t only cover Enterprise architecture; it also covers areas surrounding it.

I plan to post once per week, at the most twice. It seems a reasonable cadence – in point of fact at the time of writing this I already have blogs scheduled until the end of July. My thinking was, that I don’t want to drown people in writing.  Within my working life I often use blogs to reinforce messages I am giving – for example I may talk about a subject at length in meetings, and then in my own time write a blog about the subject so people can go back in their own time – there are some fairly in depth subjects I have to cover normally. This means of course there’s going to be a bit of a backlog of things I have written about this year that I think are potentially useful that will sometimes stop me from being able to write on current events, but thanks to the holidays this should ease up around Q3 of this year. I may occasionally post extra posts as I need to; for example I am currently in the middle of an organisation change which impacts my responsibilities and workload.