I’ve been preoccupied with the question of how a solution architect fits into an Agile team.
First — like many folks just about to transition to Agile — I thought that the solution architect defined the solution architecture artifacts before the team could start anything else. After all, how does a team implement anything without the artifacts required to guide the design and implementation of various components, and modules of such complex systems? So the solution architect would operate mainly in the initiation phase, intake, or Sprint Zero — the period before the team starts the sprint or the implementation.
While gaining hands-on experience with Agile and Scrum, I was involved with technical practices, such as code refactoring. However, as we were refactoring a piece of legacy code, we realized that the design was inadequate. I imagined three cycles/loops similar to a Russian doll model — the code refactoring loop is contained in a larger design refactoring loop. And when the latter loop proved inadequate, we would use an architectural refactoring loop.
So now we bring our friend, the solution architect, back on the Agile team. But possibly this individual moved on to other initiatives, products, or solutions quite some time ago. This absence would put their meaningful contribution to a proper refactoring at the architectural level under question, given the likelihood of the lack of context; lack of understanding of the current state of software, solution, or systems; and lack of understanding of the team’s skills, to name a few of the challenges!
Consequently, we would have to keep the solution architect on the team for the duration. But wait! Why haven’t I found the role of Agile solution architect defined in the literature and in the community at large? What is everyone missing? Oh, I get it! I’m the one who forgot that in Agile teams, we need T-shaped professionals who collaborate and share responsibilities for the lifecycle of the product and contribute to the best of their abilities to all aspects and phases of delivery. With this in mind, I’m ready to shape up my proposal for a solution architect.
Solution architect as the answer
The folks arriving into an Agile team with a solution architecture background should step up as the custodians of solution architecture! They bring with them a significant amount of experience, knowledge, and skills about the technology, tools, practices, and solutions in place. These skills and knowledge provide the team with the technical leadership required to define and follow the architectural principles for the implementation of the solution and nothing more — no artificially defined artifacts, rules, or principles that could impede the implementation or deviate it from delivering the most amount of business value often and frequently.
For this structure to function optimally, the person at the center of this model must act as a trusted custodian of the solution architecture, instead of as the owner of it. The individual must consider the input of everyone on the team and guide the development of the architecture, in an iterative and incremental fashion, just in time, and in parallel with the development process.
Instead of telling developers what the architecture is and how they should execute on their design, development, and other tasks, they should collect the details to assemble the current state architecture and drive the team efforts to understand target states, the next steps, and the architectural direction for the day-to-day work.
They can also contribute to:
- The creation and refinement of user stories and acceptance criteria
- The definition of detailed designs and data models
- The implementation of advanced technical practices (e.g., pair and mob programming, test-driven development, and continuous integration and delivery)
And nothing is stopping them from pairing with developers to code some of the components and modules required for the implementation of the solution.
As much as this is a demanding perspective of their daily work life, this modus operandi constitutes an amazing target for the high-performing Agile architecture custodian! And nothing is stopping the product owner, ScrumMaster, or any of the developers on the Agile team from supporting this role.