Federated Enterprise Architecture
By James Petts from London, England (Please keep off the grass) [CC BY-SA 2.0 (https://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons

Federated Enterprise Architecture

I've come to the conclusion that architecture (as a profession) is about managing quality risks. Taking that as a basis, we can come up with a nice model for federating enterprise architecture in a complex company.

If we're managing risks, it helps to recognize that not all risks are the same. This is why I love the picture above. In defense of an invading army, you need to build high stone walls with narrow windows that your archers can shoot out of without making themselves a target. You need enough space inside for your citizens and their flocks. Getting this wrong spells disaster, so you spare no expense; the safety and security of your populace is at stake.

On the other hand - if you're just trying to protect your grass from being trampled by tourists, perhaps a walkway with a polite sign will do the job.

The reality is that in any organization there are levels of risk that range from existential to bothersome, and levels of risk appetites that vary from conservative to aggressive. If you don't take those factors into account when you start defining how to manage those risks, you cannot effectively manage architecture in a complex company.

Risk Levels

Just like in the picture above, there are levels to quality risks - how much the enterprise is exposed if the risk controls fail. Exposing customer private information could truly be an existential risk - between loss of reputation and regulatory fines your company takes a big hit. Ensuring code is readable through consistent formats - aka coding standards - on the other hand might marginally decrease internal costs but generally don't have as much impact to the company as a whole.

Most enterprise architecture programs fail to recognize this distinction. They treat all quality attributes as being kind-of-the-same and try to manage them all with the same approach. This might mean centralizing coding standards - creating a big-brother bureaucracy that wastes everyone's time on trivial matters. Or you might federate security standards - resulting in a hodge-podge approach to information security that results in gaps and attack points.

This is the underlying problem that leads to the "enterprise architecture pendulum swing". Anyone who's worked in enterprise architecture within large companies for any period of time has seen the pendulum swing at least a few times between a federated and a centralized approach. Typically this swing happens when the current approach to architecture isn't providing enough controls for the quality risks, or causing the costs of those controls to be more than the risk exposure they control against.

Information security having challenges? We need consistency in architecture - centralize EA! Architecture becoming a slow moving bottleneck? We need to reduce the cost of developing our systems - federate EA!

Neither extreme really works.

The right approach is to understand the potential risk impact and figure out whether to centralize or federate based on that. Since there is a high level of risk to the company for information security qualities, the policies surrounding information security should be centralized. Since there is a very low risk footprint for coding standards, federate those. Don't try to manage them monolithically. They are not equivalent and they need different approaches.

In complex companies, there may even be three levels: enterprise, cross-business unit, and team. The cross-business unit ones are those that impact the ability of business units to work together, such as performance and availability SLAs. Enterprise level is reserved for those rare things that impact all business units, even those that aren't integrated with each other. Think regulatory, response time, and coding standards (in decreasing levels of impact).

Accountability & Responsibility

If you take this risk level approach, then one of your main jobs as an enterprise architect is to define the risk quality taxonomy - the mapping of risks to risk levels, and risk levels to organizations. This clarifies which architectural qualities teams have autonomy on, and for which teams need to follow centralized standards. Be aggressive on federating out accountability; in general the overall program will be most effective when the centralized role is focused on the things that really, really matter.

There are actually two aspects to each quality: a policy and a procedure. This is probably a topic for another day, but the TL;DR for this is that the taxonomy defines who is accountable for both, but the accountable team can delegate the definition of procedures. For example, a centralized team might own the policies and procedures for availability. As such they might set a policy that at least two data centers are required for business continuity. Each business unit, however, has a different technology stack, business model,, and other factors that influence how those data centers should be used. (This is especially true in acquisitive companies). The individual business units define the procedures for using those data centers based on their individual risk appetites, technologies, business models and external commitments. It usually isn't a once-size-fits-all problem, so it's appropriate that the centralized team delegate the procedural work.

This approach is hierarchical. At the business unit level, the business unit architects might delegate a quality to individual domain teams. Domain architects might delegate to implementation teams. This is normal and healthy but it does not change the accountability. Delegate passes responsibility, not accountability, from one party to another. The ultimate accountability still remains with whoever the taxonomy says is the accountable party, and part of their job is making sure the responsibility party is doing the right thing. (Hint: that is what to focus on in code & design reviews.)

Delegation doesn't have to be to another individual. You might have a quality defined as "keeping up to date with security patch releases". If you automate the patching as part of a platform offering, then that platform is delegated the responsibility. The accountability party still needs to do checks to make sure they patching is actually happening.

A risk taxonomy approach

Thinking of architecture as managing quality risks and being thoughtful about the realistic exposures that each risk brings gives organizations and ability to create an enterprise architecture practice that's immune to the swinging pendulum. Each part of the organization understands what they are accountable for - and why - and what the limits of their autonomy are in the overall architecture. This means we don't have to try to manage protecting our customer data and protecting our developers from the misplaced semi-colon with the same rigor and approach.

Mohamed Alsayed

TOGAF? Enterprise Architect | Efficiency & Technology Innovator | Solution & Software Architect

8 个月

Interesting ideas

回复

I like the one line summary "Delegate passes responsibility, not accountability". Perfect!!!

Eric Grabowski

Independent Information Technology Consultant | Software Development, Information Security

6 年

I totally agree with this hab .. my one comment is that architects have a responsibility to educate leadership and a failure to do that is what often causes a swing between the two extremes you highlighted. If the message about what the 2-5 year vision is muddy and not understood then leadership cannot evaluate what the technical risk really is and cannot make informed decisions. Instead they will make near term decisions based on business needs. If we cannot make our vision consumable we are destined to spend our days repairing mistakes rather than guiding the enterprise towards the future.

Cris R.

Chief Technologist | Enterprise Architect | Trusted Advisor

6 年

Well written Bob!

要查看或添加评论,请登录

Bob Hablutzel的更多文章

  • The PAC Principle

    The PAC Principle

    The CAP Theorem is well understood in the world of data management: a system can only be two of Consistent, Available…

    3 条评论
  • What Southwest Got Wrong

    What Southwest Got Wrong

    As I'm writing this, Southwest Airlines is in the middle of a major service disruption, reportedly due to an IT system…

    2 条评论
  • Post-Modern Enterprise Architecture

    Post-Modern Enterprise Architecture

    I wanted to share a blog posting I just put up on Post-Modern Enterprise Architecture. The premise is that modern EA is…

    1 条评论
  • On getting that first job

    On getting that first job

    October was quite the month; it's always a busy time of year but this year included our biannual internal architecture…

    6 条评论
  • On becoming an architect

    On becoming an architect

    One of the most frequent questions I get from young engineers is "how do I become an architect?". There are a number of…

    7 条评论
  • Why your micro-service architecture could fail... and what to do about it

    Why your micro-service architecture could fail... and what to do about it

    OK, here we go again. Micro-services is the new "right way" to build our systems - following in the footsteps of REST…

    6 条评论
  • The "what is an architect" elevator pitch

    The "what is an architect" elevator pitch

    I’ve been a practicing architect (in one way or another) for over 20 years. But “architecture” is notoriously hard to…

    20 条评论

社区洞察

其他会员也浏览了