The Solution Architect’s role
There are no formal roles for a solution architect in a scrum project. So what does the solution architect do?
Do we need an Architect?
The answer to this depends on a variety of questions:
The size and complexity of the project
The duration of the project
Are developers skilled enough to look at the big picture?
Is technical leadership required, or can the developers and team leads do this?
Is the Product Owner capable enough technically to handle non-functional requirements?
What could happen without Technical Leadership?
Agile project delivery embraces requirement changes to the software product under development throughout its life. All members of the scrum team are under some pressure to fulfill their responsibilities, and more often than not, the overall technical aspects of the software take a back seat.
Although the items in the product backlog are important, it should not be at the expense of long term costs such as product maintainability, performance and documentation.
Technical short sightedness can bring about painful lessons for a project, especially if the project is not trivial and is not a short duration.
Without good technical leadership, what usually happens is that all members of the team tend to focus on their goals without looking at these big picture items.
The Architect’s Role
The architect’s role is one that requires swimming against the Agile tide to avoid big changes with every subsequent sprint cycle.
It is one of the few roles that requires a long term vision of the product beyond just the next few sprints.
The solution architect’s role is very challenging, especially complicated by the fact that it is not well defined.
Some of these responsibilities include:
Understand any technology restrictions imposed on the future of the product features and product development.
What are the external systems that the product needs to interact with?
Understand the team’s skills and decide on the technology stack to be used.
Decide on the tools used for the development and building the product to help streamline the developer’s activities.
Get ahead of the development process to decide on the technical architecture and strategy for implementing the sprint backlog.
Decide on what coding quality needs to be enforced and reduce technical debt.
Provide improvements during the Sprint Retrospective along with the rest of the sprint team.