3 Evil Opinions of Enterprise Architecture

I have long been an advocate of Enterprise Architecture as a concept, and have successfully helped roll out various forms of EA across different companies. However one constant has always been that EA needed to be redefined to address the widely varying views of what it was, and what benefits it could provide. In some cases this extended to changing or repairing some existing negative views. Those views could be because of one person (the architect that team or individual worked with), or as an opinion of the whole EA process.

This post shares some of those negative views, with the aim of helping architects understanding what stakeholders might think of EA and how to address them. It also allows me to be a bit negative towards EA, as I have certainly seen implementations of EA that are more a hindrance than help. As I’m currently helping roll out EA with a new company, I also want to make sure I don’t fall foul of the below perceptions.

The Government

One very common, and not entirely unjustified view, is that EA isthe remit of failed engineers or simply tech academia (e.g. those that can’t do, teach). It imposes frameworks and governance that only serve to centralise decision making and slow down the velocity of change and progress. This view can even sometimes come from architects themselves, especially Solutions Architects used to more agile processes, who would often be frustrated while waiting on their next ten minute opportunity within the bi-weekly Architecture Board to discuss their proposal for the replatforming of an entire system (or something like that). I see this view perpetrated by the more bureaucratic organisations where phrases like ‘we are not a tech company’ are prevalent (by the way, that’s probably the phrase I fear the most in any company I have worked for). In those types of companies, EA serves exactly that purpose, to slow things down, and provide assurances and accountability into any IT change. This in my opinion is the worst use of EA, and tarnishes it’s goals for others.

Rectifying this view comes down to collaboration with engineers, and building credibility with technical teams. This may also involve reviewing processes and relaxing the governance somewhat to ensure EA is guiding and not hindering development. From the business side it may also be necessary to begin demonstrating real business value quickly, and re-communicating the role of EA, along with any strategy or vision.

The Consultant

Another view of EA is the consultant view, in which architects only come into a project at certain times, spout advice and guidance, and then disappear until the end, or when something goes wrong. This view sees the architect as a bit of the ivory tower type, supercilious and not connected (or possibly experienced) with real projects. This view often stems from when actual consultants have been used to rollout EA, and their methods have been adopted by permanent replacements. This can also sometimes be the case when architects are simply stretched too thin, and can only spare time up front according to business priorities.

If you find this is the case in your practice, then consider who you have available to perform the role of Solutions s Architect within each team. this doesn’t always have to be a dedicated role, and often a lead engineer can perform this function well. Using these guys will help delegation, and also gains more buy in from engineering teams. Ultimately if you find you aren’t adding anything to a project, then simply refocus on priorities until you demonstrate the benefit that allows you the budget to get more architects.

The Thinker

Perhaps more of a character portrait, but this is certainly the view I have held myself of certain architects I’ve worked with (and unfortunately reported to). These architects tend to enjoy the blue sky thinking involved in architecture, and are typically the ones designing new processes, new templates, new acronyms, and have very little input into detail. Ideas coming from these guys tend to be quite ideological and seldom have any indication of how these visions and ideas might be achieved, at least not in any detail.

One simple solution to this one, start delivering real value. Architects need to resist the temptation to perfect everything they are doing upfront, and instead learn to be more agile and responsive. designs can change along the way, and often will. As George Patton once said;

“A good plan violently executed now is better than a perfect plan executed next week”

So how do I fix it?

All of these views derive from EA practices that have been poorly implemented, or have been implemented as top level governance frameworks with little connection to engineering and delivery. if you are in these positions, or perhaps are now implementing EA at your company, then keep these things in mind;

  • Although EA is about making IT align with business, the engineering teams are a critical part of this delivery, and their ability to deliver should be a key consideration.
  • As with all areas of business, EA needs to be seen to deliver value. In my opinion it is unacceptable for architects to spend a year in a dark room and then emerge with a radical framework designed for global dominance. Ensure you start delivering from day one, and resist overthinking or perfecting everything.
  • Although architects should be key resources and leaders of technical knowledge, don’t become the only guy with the knowledge. Ensure you have good knowledge management processes (thing Brown bag lunches , coding dojos etc), as it will upskill everyone and lighten your own workload.
  • Use diagrams as temporary tools to demonstrate thinking, and not as a governance tool to indicate an agreed design. Things change quickly in development, and adhering to thinking at the beginning of a project is dangerous. At minimum, you will find these diagrams become quickly out of date and will dilute your process. Diagrams can be given to agree an ‘approach’, and then architects should work closely engineering to ensure the final output is true to the ‘approach’, if not the actual design.

Marketers and Developers, Can We Understand Each Other?

Historically Sitecore developers have enjoyed a relative monopoly on understanding Sitecore terminology and practices. Through its history as a Content Management System, already well-known terms were used and developers and business users alike were able to easily understand their common meaning. Terms like ‘workflow’, ‘security roles’, ‘templates’ etc were typically the domain of developers and little to no communication was required to translate these terms into the business domain, and there is little room for ambiguity in these terms.

With Sitecore’s growth into a Customer Experience Platform, this has changed with its expansion into the world of marketing and its associated (and ever growing) terminology. Now developers are tasked with working with marketers to help create campaigns, track interactions and sessions, manage goals and outcomes, and all of the little bits in between. Marketers likewise need to be able to communicate their requirements to developers, without having to explain the intricacies of their day to day jobs. Perhaps an even larger issue is the coming together of these two different worlds, and a dependency between them to ensure business value is being delivered.

The Sitecore UK Marketing Team recently ran a survey to look at some of the communication challenges faced between Marketers and Developers, which attracted over 150 responses. As might be expected, the survey highlighted a huge gap between developers and marketers, with an overwhelming 95% of respondents stating that they are struggling to bridge these differences. Perhaps more surprisingly, 85% of Marketers, and 95% of developers expressed frustration in working with developers and marketers respectively. This indicates a huge issue that can be causing frustration in development, misinterpreted requirements, and ultimately a reduction in the business value being delivered by both groups. Indeed, the differences can descend into vitriol and cyniscm between the groups, with each of them viewing the other as supercilious or arrogant and detrimental to delivery.

What Marketers and Developers think of each other

What Marketers and Developers think of each other

Here are some of the more eye-opening comments from the respondents (the survey was anonymous for the safety of everyone involved 🙂 –

From Developers:

  • Self-importance, arrogant superiority
  • speak in riddles, have no clue or understand about web systems, technology

From Marketers:

  • Can be a sensitive bunch, easily misunderstood
  • The penny dropping takes too long – they are the experts – all hail developers 😉

What is causing the friction?

The clear message from the survey is that a lack of communication makes it difficult for both groups to understand the other. From a marketers perspective, developers can favour the application of technology over its actual use to the customer, and can be secretive and less communicative than the average marketer. On the other hand, developers often feel marketers lack the technical knowledge they should, and tend to view things as much simpler than they actually are. For instance, a common theme among developers was that marketers tend to request features present on sites like Google and Facebook, and expect these to be simple additions.

To add to the complexity, the terminology between the groups is very different, which leads to confusion and misinterpretation. This can lead to added effort within any development, and in some cases can lead to even worse.

Misunderstanding

How can this be improved?

This issue is not new within software development. Issues like this have existed for years between software teams and the business. The issue arises from a lack of communication between the teams, which leads to developers having to make assumptions and interpretations from a given set of requirements. Likewise, since the business does not communicate with development teams except through a given set of requirements, they have no understanding of what’s actually involved. Therefore, all they would see is a requirement taking longer than it should (or longer than they think it should). A lack of communication during this process inevitably leads to lots of finger pointing when things don’t go to plan.

Recently, this issue has been rectified through the introduction of new Agile methodologies, and the idea of multi-disciplined self-organised teams. Using this method, marketers and developers should ideally be within the same team, aligned to a particular business domain (such as product or sales). Agile development and project management methodologies advocate collaboration and communication over process and documentation. This seems to be the answer to ensuring that marketers and developers can actually sit and speak about requirements, and crucially things can be tested quickly to see if they work.

Of course this is a huge topic and a big organisational change if your company isn’t already doing it, and doing this with Sitecore also brings its own considerations. Look out for my forthcoming blog post about organisation structures to support development. In the meantime I would highly encourage anyone to look into agile processes if they aren’t being done already: http://www.agilealliance.org/the-alliance/the-agile-manifesto/

Improve the Little Things

There are many more things that can be done as quick wins to start to bridge the gap;

Developers

  • Ensure you speak to marketers for clarification of requirements where necessary
  • Take time to teach them the platform and it’s uses
  • Don’t assume knowledge
  • Lean on architects to translate concepts between domains, including creating a common ontology
  • Don’t try and contain knowledge, openly share knowledge and aim to educate others
  • Bury your ego

Marketers

  • Be aware of differing personalities and adapt your approach to suit (getting an organisation to use something like Myers-Briggs profiling really helps here)
  • Involve developers in your ideation process
  • Get developer feedback in your planning/scoping activities
  • Ask for explanation’s where necessary and ensure developers are made aware if you don’t understand something

Ultimately if communication is improved, then both groups will have a greater understanding of the others activities, and new developments will be quicker and less prone to bugs. Clear communication will also reveal that both groups are actually not as far apart as you think, as evidenced by the survey.

How Marketers and Developers Evaluate Tasks

How Marketers and Developers Evaluate Tasks

What can Sitecore do?

Sitecore as a platform needs to cater to both developers and marketers, with the intention that both groups will be working on the platform in collaboration. Of course depending on how you approach development this may not be the case, but there are some things that every Sitecore developmer should insist on to aid understanding between groups;

  • Ensure a common ontology for the core parts of your solution
  • Utilise the Sitecore 8 Marketing Taxonomies to categorise marketing activities
  • Use display names with associated validation to ensure friendly naming of items
  • Develop SPEAK applications to cater for common business processes, simplifying them to the essentials of the process

What do you think, and what challenges you are facing in your teams? I’m Especially interested in hearing how you may have overcome these issues as well.