April 29, 2010

On languages for enterprise architecture

Over the last few months I've been working as a consultant with a group of architects in a large organization in the social services sector in the Netherlands. The group is 'heterogeneous' in the sense that people with different backgrounds / mindsets are involved, e.g.:
  • Architecture is intended as a means to set a vision "versus" architecture is intended as a process for governing change
  • Architects with a business orientation "versus" architects with a technological orientation

Despite their differences, it is interesting to see that this group at the same time shows a lot of cohesion. There is definately a shared sense of purpose: help to make the organization more effective. This shared purpose leads to a a log of conversation / shared initiatives etcetera. So what can possibly go wrong?

One of the things we learned is that due to different backgrounds, education, past experience etcetera, real communication is tricky. The well-known problems with overloaded / abstract / ill-defined / ... terms made it difficult to get things done. Indeed: without communication it is impossible to co-operate effectively. To improve communication (between architects as well as between architects and 'the rest of the organization'), a choice was made to introduce a common language for enterprise architecture: ArchiMate (with BiZZdesign Architect as a supporting tool).

The ArchiMate language offers concepts and relations to discuss many aspects of enterprise architecture. Some researchers / practitioners have argued that it falls short in expressing things like organizational culture, social interactions etcetera. Even more, ArchiMate has been critisized for having so many concepts and relations between these concepts that it is hard to use. However, at the same time ArchiMate has been praised for being so rich / expressive.

Back to the client. In the organization at hand, the group recognized the potential as well as the complexity of ArchiMate as a language. We have started (and by now: completed) a project where we went over the entire language, concept by concept, and selected those that are meaningful for this group/organization. Even more, for each 'aspect' of the organization we wanted to included, we discussed at great length how to model this using the custom ArchiMate dialect.

The end result is impressive to say the least, even taking into account that we have taken quite a bit of time for the project. On the one hand, there is a body of knowledge (well documented in a formal model and supporting documents) that answers the question how we wish to document architectures in the organization. More importantly: in creating this body of knowledge, the discussions have led to improved dialogue and shared understanding.

Lesson learned: it's about the people, get the language right and get the work done!