The role of the architect in an Agile environment
After successfully completing the course at Digital Delta, I can conclude it is almost the same as the role of the scrum master. The only difference is the domain specific knowledge the architect shares (not dictates) with the teams but:
Ideally, Agile Development Teams are supposed to have the mandate to decide how and what to improve on the architecture. As features develop by order of highest demand, so each team should grow the architecture needed to support them. This is paraphrased under the concept of ‘emergent design’, and it follows from Agile principle number 11.
Complexity brings risk
That is fine for the low complexity of a start-up. In a scaled environment however, with many teams developing products at the same time, whose products are getting more and more complex, with several layers of communication within and externally, extracting data from many different sources… emergent design is a recipe for instability at the structural level. It isn’t enough to just ‘KISS’, because
“For every complex problem there is an answer that is clear, simple and wrong” Henry Mencken
So how do we define architecture in a complex context? To simplify isn’t even always a possibility, the same way as downscaling isn’t always the right thing to do. Instead, we have to work with complexity and try to organize as much as possible. One possible answer for that is the Intentional Architecture as designed and executed by the architects at the System, Solution and Enterprise levels.
An intentional frame for emergent details
Whether you’re a System, a Solution or an Enterprise Architect in a Lean-Agile enterprise, you are in charge of providing a strategy and vision to improve the architecture incrementally, leaving enough room for a coordinated emergent design effort brought on by the development teams. You provide the powerful and coordinated base for Agile teams to keep focusing on delivering value to end customers. It’s up to you to build the right amount of architecture that will enable this value to be implemented and potentially delivered.
You have a responsibility to help teams coordinate, define and share information at the appropriate levels; to understand the underlying purpose and also to be influential enough to direct the fitting amount of funding to the technical aspects and evolutions, to ensure it will get done.
The key is in the balancing act
Balancing sensibly between intentional architecture and emergent design, supported by techniques such as Model-Based Systems Engineering and Set-Based design.
If you would like to know more or need help, feel free to reach out.