23 Dec 2016
Scrum embraces the Agile principle of emergent architecture and design. Architectural needs emerge due to functional and non- functional requirements. Certain nonfunctional requirements like security, deployment platforms, compliance, and scalability are often of very high value and ordered high in the Product Backlog. Usually some parts of each of those nonfunctional requirements are required for an initial release of a minimum viable product.Business-facing functionality (i.e., functional requirements) also drives architectural and design needs as well. In Scrum, each Sprint serves to build at least one piece of business-facing functionality that has at least some tiny amount of value. So as we evolve the system, we build only enough architecture and design to support the functional and nonfunctional requirements that we are focusing on for that Sprint.
Important: In every Sprint at a minimum we have to build at least one piece of that business-facing functionality, regardless of how many nonfunctional requirements and architecture we are also focusing on.
Then with every subsequent Sprint, more and more of the architecture and design emerges in response to more and more high-ordered requirements. The purpose of this is to build architecture and design only in response to the highest-valued requirements at the top of the Product Backlog.
An example of how Architecture is handled in Scrum.
In the example shown in the chart, in Sprint 1 the majority of the work done by the Scrum Team is on architecture/infra- structure; however, enough business-facing valuable functionality is still released by the team to deliver value and validate the current architecture work. As the team progresses further Sprint over Sprint, the architectural needs decrease, and the value-driven business functionality delivered increases.
The Development Team also ensures good architecture by ensuring a set of guiding architectural principles that every Development Team member understands and follows while writing code. In addition, architecture is an ongoing discussion in the Development Team focusing on implementing current Sprint Backlog items.
This is one of the topics from my book – “Scrum Insights For Practitioners: The Scrum Guide Companion“. Happy reading!
You can read more about Emergent Architecture and Design here.