A process anti-pattern is a common strategy which sounds good in theory but in practice proves to be harmful, if not outright disastrous. This article overviews a collection of anti-patterns pertaining to enterprise architecture efforts within an IT organization. These anti-patterns are:
Anti-Pattern
Problem
Solution
30,000 Feet and Climbing
The enterprise model is so high-level that it is of limited or no practical use to application teams.
Develop
reference architectures which provide working examples of individual aspects of your architecture.
Roll up your sleeves and get actively involved with the development teams.
Act on feedback from the development teams to evolve your model(s).
Bleeding Edge
The architects are constantly trying out new technologies and techniques before they are mature or stable enough to deploy effectively.
Accept the fact that older technologies do in fact work quite well; the majority of your business may still be batch COBOL running on an IBM mainframe, and that’s actually the best platform for those systems.
Brain Trust Parking Lot
Your enterprise modeling group is composed of a lot of very smart people who don’t fit in well anywhere else within IT but you don’t want to lose their knowledge.
Find a way to make them useful to existing teams, perhaps as a
modeling mentor or as a subject matter expert (SME) in the business domain.Recognize that if they can’t provide value within your organization now, then it is unlikely they ever will be able to do so. Motivate them to find employment elsewhere.
Buzzword-Driven Architecture-or-
Architecture By Magazine
Your enterprise architecture model depicts an amalgam of technologies, many of which were added into the model when someone read about a “really cool” new technology.
Recognize that your first priority is an architecture which meets your actual needs, not one which you can brag about to your buddies on the golf course.The decision to add a new technology should be made by people with the expertise, and who have taken the time to prove that it works. It should not be a political decision.
Detailed Enterprise Model
The enterprise model(s) are overly detailed, often in an attempt to comprehensive define what the enterprise does (or should do).
Recognize that people rarely read the details, often because they’re not interested in them or because they don’t trust them to be accurate. What is typically needed is a
solid overview and vision of what is required.
Model with a purpose and know the audience for your model(s), enabling you to model just enough.
Work with your audience to develop the models: they’re the best judges of what they need, not you.
Enterprise Parking Lot
An organization forms an enterprise modeling or enterprise architecture group and “parks” a lot of really smart people there because they don’t want to lose the people but at the same time can’t find practical positions for them.
Recognize that just because someone is really smart, that doesn’t mean that they’re ready, or ever will be, for an enterprise group.Staff your enterprise groups with people who can actually get the job done.
Fund your enterprise groups appropriately.
Goldplating
The architects overbuild the architecture to implement really cool features that you might need at some point, but these features don’t add value today (and may never do so).
Consider the big picture by doing some
initial envisioning but also trust in your ability to solve tomorrow’s problems tomorrow. If you have the skill to address a problem today, won’t you also have the skill to address it
just in time (JIT) when and if you need to?
Ivory Tower Architecture
Your enterprise architecture model(s) reflect a wishful, perfect world scenario instead of the realities of your actual environment.
See the solution to
30,000 Feet and Climbing.
Modeling for Modeling’s Sake
Someone thought it would be a good idea to develop an enterprise model but did not have a concrete plan for how to use it in practice. Vague ideas that development teams will be able to use the model for guidance aren’t sufficient.
First garner support for enterprise modeling and then only model enough to add immediate and obvious value to your IT organization.
One Truth Above All Else
The “one truth” philosophy says that it is desirable to have a single definition for a data element or business term, that there should be a common, shared definition for your master reference data and perhaps even your major business entities. The “
One Truth Above All Else” anti-pattern occurs when this philosophy is taken to the extreme and you seek to get to the one truth about all data entities and data elements within your environment.
Recognize that the true goal is to deliver business value, not perfect data. Requirements and priorities change, so you must be willing to evolve your database anyway. Be flexible about defining the semantics for your data.
Real World Disconnect
The enterprise models reflect the vision, and the misunderstandings, of the modelers but do not reflect what your business stakeholders actually require.
Recognize that just because someone worked in the domain 20 years ago doesn’t mean that they still understand what is going on in the business today.
Involve the people who actually execute the business processes and get their perspective in the modeling process.
Strive for Perfection
The architects are always prototyping and tinkering but never actually rolling anything out because it’s not “perfect.”
Accept the fact that your architecture will need to evolve and then develop a “
good enough for now” architecture instead. Developers would rather imperfect advice today than simply a request to wait until the enterprise architects are ready.
Stuck in the Weeds
You are too far into the details, attempting to do all the work for application teams.
Mentor developers in the architecture, work with them as equal partners on the development teams, and, after they’ve gotten going, focus on providing them with guidance and advice as needed.
Technology Above All
The architects make technology a business driver instead of a business enabler.
Base your enterprise architecture on actual requirements defined by your stakeholders. Anything else would be “hacking in the large”.
Tomorrow Suffers From Today
While attempting to improve business processes, a common mistake is to describe how things are currently done without exploring how things could be done.
Explore new possibilities while keeping today’s realities in mind.Consider a technology-independent approach to model, perhaps using
essential/abstract use cases, which enables you to explore the business without exploring the solution space.
Ungrounded Future
The enterprise models reflect a near-perfect, “utopian” future for your organization but don’t provide a clear path to that future.
Recognize that you are constrained by your organizational culture, human imperfections, and resource restrictions.Investigate and understand the current situation before attempting to improve it. Although the current processes may not be optimal, there are probably reasons why things are done the way they are. Understanding those reasons will help to formulate processes that are realistic.
Yesterday’s Enterprise Model
Your enterprise model(s) are declared finished and put on the shelf. The “finished models” quickly become out of date due to changes in your environment, reducing the value of the model(s).
Update your enterprise models on a regular basis as the business changes.
Recommended Resources
Enterprise ARchitecture
This book demystifies enterprise architecture and helps organizations recognize real business value through effective implementation.
- Written by expert practitioners who have hands-on experience solving real-world problems for large corporations
- Helps enterprise architects make sense of data, systems, software, services, product lines, methodologies, and much more
- Provides explanations of theory and implementation with real-world business examples to support key points.
The role of the enterprise architecture professional is one of the most challenging roles in information technology today. Many aspects of the role are technical, while much more of the job is becoming political. To say the least, it is a challenging position. Many enterprise architects have significant responsibility, but do not have the necessary authority to bring about success. The primary focus of this book is to be a guide and trusted advisor to those who want to be successful in this pursuit. Through real-world examples from experts who have filled the role of enterprise architect, the reader will learn how to solve complex problems, maintain technical competencies, and make a positive impact on the overall business. The most successful architecture will have an architect that can describe the motivation behind the technical choices; this book provides the background the practitioners will need to become the enterprise evangelist.
Acknowledgements
I’d like to thank Jesper R. Jensen, Paul Oldfield, and Edmund Schweppe for their input into this article.