Enterprise architecture, when performed in a disciplined agile manner, is an important enabler of agile software delivery. This is true for several reasons:
- Common architecture enables agile teams to focus on value creation. A common enterprise architecture enables reuse across delivery teams. When agile teams have high-quality assets – such as micro-services, legacy data sources, and frameworks – available to reuse they are able to focus on creating new value for their stakeholders and not on reinventing new versions of existing assets.
- Common technical guidance enables greater consistency between teams. When team follow effective, common conventions it results in greater quality. This makes it easier to learn about assets that are new to them, in particular existing source code, and to evolve those assets as needed. Greater consistency also makes it easier for people to move between teams because it will be easier for them to come up to speed on what the new team is doing and to share their skills with those team members.
- Agile architectures enable disaggregation. When your solutions are built from loosely coupled, highly cohesive components it is easier to spread development work across smaller teams. This reduces overall risk and organizational complexity, which in turn reduces time-to-delivery. It also allows agile teams to focus on what they’re building instead of coordinating with other teams or mocking out the (undelivered) work of other teams.
- Common infrastructure enables continuous delivery. When there is a common technical infrastructure to IT delivery teams to deploy into it is easier to deploy. The easier it is to deploy, the more often it makes sense to deploy.
- Enterprise architecture scales agile. A disciplined agile approach to enterprise architecture enables organizations to scale agile strategies “horizontally” across their entire IT department.
The Disciplined Agile Delivery (DAD) 1.x framework purposefully included the philosophy of enterprise awareness, the need for agile delivery teams to look beyond their immediate needs and consider the long-term needs of their organization. A common example of this is to work closely with your organization’s enterprise architects. The Disciplined Agile 2.0 framework, which we are incrementally publishing here at DisciplinedAgileDelivery.com, explicitly addresses Enterprise Architecture so that organizations may see how it fits into the overall strategy to build an agile organization.