Yes, by definition Agile is a methodology that uses cross functional teams because there are still many requirements that a project will have. Obviously depending on the requirements, but it is likely that there will be a need for a design and still a need for high quality architecture.
But what role does a software architect have in an agile environment, especially in Scrum?
To understand the role of the software architect in agile, it's helpful to first understand the role of a software architect in general. A software architect is responsible for designing the overall structure of a software system. This includes determining the technologies, frameworks, and patterns that will be used, as well as how the different components of the system will fit together.
In a traditional, Waterfall development process, the software architect plays a critical role in defining the entire system upfront. This can include creating detailed documentation and design specifications, which are then passed on to the development team to implement.
However, in an agile environment, the focus is on continuously delivering small increments of functionality, rather than trying to define the entire system upfront. This means that the role of the software architect in agile may be different than in a traditional process.
In Scrum, the software architect may still be responsible for designing the overall structure of the system. However, they are expected to be more flexible and adaptable to change. Rather than defining the entire system upfront, the software architect works with the development team to continuously evolve the design as new requirements are identified.
Scrum/Agile methodologies also carry with specific project management ideas when developing products. These ideas include: using short iteration cycles for development, focusing on the backlog of tasks to complete and planning ahead for the next iteration. A software architect that can piece all of these components together will make the life of the Scrum team a lot easier and more productive.
The software architect is also expected to be an active member of the Scrum team. This means participating in daily stand-ups, sprint planning, and sprint reviews, and helping to prioritize and estimate user stories.
One important aspect of the software architect's role in Scrum is to ensure that the system is designed in a way that enables the team to deliver high-quality software quickly. This may involve choosing technologies and frameworks that allow for rapid development, as well as designing the system in a modular and scalable way.
In summary, the role of the software architect in agile, especially in Scrum, is to design the overall structure of the system while being flexible and adaptable to change. They are also expected to be an active member of the Scrum team, participating in all aspects of the process and helping to ensure that the system is designed in a way that enables the team to deliver high-quality software quickly.