Enterprise Architecture and Agile/DevOps
Why relate EA and agile/DevOps?
DevOps (Development + Operations) is an offset of the Agile revolution dedicated to increasing both time-to-market and quality-to-market.
Enterprise Architecture (EA) ensures that DevOps teams are integrated in mutually beneficial manners to ensure that processes (especially those that are automated) are built using relevant technology and data sources.
Agile approaches are a great help in improving responsiveness to change. However, they are not the only approach you’ll need and, when applied incorrectly, they can even harm the overall adaptivity of your enterprise.
In general, the larger an organization and the more interconnections and dependencies there are between its parts (capabilities, resources, processes, systems), the more important enterprise architecture becomes in improving adaptivity and aligning parts with overall strategic direction.
In smaller organizations, a few agile/DevOps teams can coordinate change amongst themselves, and the lines to management are short enough that strategic direction can be conveyed to teams directly. In large organizations, however, there may be hundreds of agile teams, each working on a part of the big ‘enterprise machine,’ and more coordination is needed. If you have agile teams building agile silos that disregard their environment, you will still not have an adaptive and flexible end result. In addition, future change may become even more difficult, which is why good architecture is essential.
Enterprise Architecture Strategies for DevOps
Here are several enterprise architecture strategies that support Disciplined DevOps that can help you in your organization:
Reuse mindset. An important thing that your enterprise architecture efforts will accomplish is the promotion of a reuse mindset throughout your organization. Delivery teams with a reuse mindset strive to leverage various types of assets such as data sources, components, templates, and many others. This reuse mindset is enabled through education, coaching and mentoring by your enterprise architects (who are ideally active members of delivery teams in the role of Architecture Owner). It is also enabled by roadmaps that indicate the technologies that delivery teams should, and shouldn’t, be working with. And of course, having high-quality assets that are easy to discover, to understand, and to apply in the course of providing real value to your customers enables reuse.
Technical-debt mindset. Your enterprise architecture effort should promote strategies that motivate delivery teams to pay down technical debt when they find it and more important do what they can to avoid it in the first place. Many technical debt strategies are embedded right in DAD, but without a technical-debt mindset this often comes to naught. Enterprise architects, often acting as Architecture Owners on delivery teams, should coach and mentor developers around the issues associated with technical debt. Similarly they should help to educate the senior managers and stakeholders whom they collaborate with in technical debt as well. It requires investment to avoid and remove technical debt, and investment decisions are typically in the hands of these people.
Development guidelines. An important aspect of enterprise architecture is the development of guidelines for addressing common concerns across delivery teams. Your organization may develop security guidelines, connectivity guidelines, coding standards, and many others. By following common development guidelines your delivery teams produce more consistent solutions which in turn makes them easier to operate and support once in production, thereby supporting your DevOps strategy. A potential drawback of common development guidelines is that developers may feel constrained by them. To counteract this problem the guidelines should be developed and evolved in a collaborative manner with the delivery teams, not imposed from above.
Roadmaps. Your enterprise architecture efforts include the definition, support, and evolution of roadmaps that guide the efforts of the rest of the organization. This in turn supports the creation of a common and consistent technical infrastructure within your production environments, enabling common DevOps practices such as continuous deployment, automated end-to-end regression testing, and operational monitoring amongst others.
Business value is greatly improved when enterprise architecture combines agile practices. According to a report from McKinsey & Co., businesses transitioning to more agile models can improve financial performance by 20-30%, with 30-50% improving operational performance, TTM, and customer satisfaction scores. Embedding an agile model within processes, people, and technology will cultivate ongoing support for CI/CD, groundbreaking innovation, synergistic collaboration — and ultimately maximize customer outcomes. If your organization needs to improve, combine or implement new agile/DevOps best practices, contact us by clicking on the button below.