In recent years, the agile way of working has become popular because it promises to make things more flexible, faster, and better at handling changes. However, when it comes to Enterprise Architecture, using agile methods can be tricky. It might cause problems, leading up to agile architecture agony.
When agile works and when it doesn’t
Agile methods are great for short, simple projects. But turning a company’s long-term plans into real actions is something else entirely. This big task needs careful planning and isn’t suited for the quick, flexible nature of agile methods. While agile can help in some ways, understanding its limits is important for keeping a strong, clear architectural plan. This blog will explore how agile principles can be used in Enterprise Architecture, the potential problems, and how to manage these issues.
Different approaches
Enterprise Architecture is about creating a detailed and organized plan for a company’s business processes and IT systems. It involves long-term planning, aligning strategies, and making sure everything works together to support the company’s goals. On the other hand, agile focuses on short-term projects, quick changes, and being adaptable.
Enterprise Architecture aims for long-term goals, ensuring that IT systems and business processes match the company’s future plans. Agile, with its focus on quick results, might not always align with these long-term goals. Teams working according to the Agile method often focus on immediate needs, which can lead to decisions that work now but cause problems later.
The figure below reflects the focus on quick results of an agile approach. It shows the implementation of a project in three steps. In each step, the focus is on a specific part of the project (shown as individual parts of the Mona Lisa), in line with the agile methodology. The risk with this approach is that the big picture gets lost in the shuffle, or is missing altogether. As an effect, there is no view of the intended end result, so the individual focus areas do not work in a structured way towards a coherent whole. This is illustrated in step 3 of the figure below.
Fragmented vision
Agile methods encourage teams to work independently. This freedom can lead to more innovation and faster results. But it can also create a fragmented vision where different teams make choices that suit their needs but don’t fit the overall architecture. This can cause inconsistencies and integration problems.
Enterprise Architecture frameworks often have strict rules to ensure systems are secure and processes meet regulatory standards. Agile’s fast and iterative cycles can make it hard to keep up with these standards. Teams might prioritize speed over thorough documentation and compliance, leading to risks and non-compliance issues.
Practical issues of using agile
Besides the theoretical problems, there are practical challenges in using agile in Enterprise Architecture:
- Managing dependencies and integration. Enterprise Architecture involves complex connections between various systems. Agile’s iterative approach can complicate managing these dependencies. Teams working on different parts might struggle to integrate everything smoothly without a strong overarching plan.
- Scaling agile practices. Agile works well for small teams or projects, but scaling it across a large organization can be tough. Big organizations have interconnected systems needing careful coordination. Scaling agile requires adapting practices to maintain consistency without losing agility’s benefits.
- Maintaining documentation. Documentation is key in Enterprise Architecture, providing a clear guide and ensuring continuity. Agile prefers working software over detailed documentation, which can create gaps in the architectural plan. This lack of documentation can cause issues when new teams take over or when fixing problems later.
Solutions and Mitigations
Though using agile in Enterprise Architecture has challenges, they can be managed with the right strategies:
- Hybrid approaches. Combine agile methods with traditional architectural practices. Use agile for development and implementation while keeping rigorous planning and governance at a higher level. This approach allows flexibility without losing strategic alignment. The TOGAF Series Guide: Agile Sprint document provides guidelines for achieving this form of collaboration.
- Strengthening governance mechanisms. Implement stronger governance within the agile framework. Regular architectural reviews, strict compliance checks, and adherence to standards can help maintain control while benefiting from agile’s speed.
- Enhanced communication and coordination. Improve communication between agile teams and the Enterprise Architecture function. Regular cross-functional meetings, integrated planning sessions, and shared tools can align agile efforts with the overall architectural vision.
- Investment in training and tools. Invest in training and tools supporting both agile and Enterprise Architecture practices. Training can teach teams the importance of architectural principles and how to incorporate them into their workflows. Tools for documentation, integration, and governance can streamline processes and ensure consistency.
The figure above illustrates how an agile approach to an architecture problem can work and add value. By considering from the outset the dependencies that exist within the context of the architectural effort, and the relationship those dependencies may have to the parent architecture, there is a continuous view of the intended end result. In this way, it is possible to work towards a coherent whole, step by step and with the help of specific focus areas.
Conclusion
Agile methods offer many benefits, like flexibility, faster delivery, and better responsiveness. However, in the context of Enterprise Architecture, they present challenges that can undermine the architectural framework’s coherence, strategic alignment, and robustness. By understanding these downsides and adopting strategies to mitigate them, organizations can leverage the strengths of both agile and traditional practices, achieving a balance that supports both short-term agility and long-term goals.
Do you agree or disagree with my take on using an agile approach to Enterprise Architecture? Please leave a comment in the section below.
Leave a Reply