A recurrent topic in meeting rooms and discussion groups is "Can enterprise architecture work in an Agile Software Development environment?" The question is so often asked that even those architects and developers who have already found the answer through personal experience stop to think about it. They wonder if perhaps they have missed something and need to re-evaluate their conclusions.
They likely haven't missed anything, but the fact that they even question their experiences is a testimony to the perceived chasm between the enterprise architecture (EA) and Agile disciplines. In fact, EA and Agile have great potential to work together to the benefit of architects, Agile developers and entire development organizations. This article helps define that potential.
Enterprise Architecture and Agile Development Viewpoints
Viewpoint is a key influence on perception. Many factors shape a viewpoint (which is a topic worthy of study in itself), but for the purpose of this discussion consider two broad viewpoints at the core of an individual's (or organization's) beliefs regarding EA and Agile:
- The two disciplines are fundamentally similar.
- The two disciplines are fundamentally different.
Let's take a close look at these in order.
EA and Agile Are Fundamentally the Same
EA and Agile share the following process:
- Review the current state of the solution landscape
- Elicit the desired state from business
- Determine the technical and non-technical gaps between the current and target states
- Take steps to narrow the gap by implementing one or more solutions towards the target
- Review the results of the implementation to choose the next step and revise (if necessary) the approach towards the target state
For those who believe that enterprise architecture and Agile Development are fundamentally different, the list above most likely presents a new viewpoint. Practitioners of either discipline agree that discovering a new viewpoint should trigger a re-evaluation of existing views. The new viewpoint also suggests that the accepted principles should be confirmed or expanded as necessary.