Scrum 101 – A tutorial on Scrum
Scrum is an Agile process framework for incremental product development. It is rooted in the notion that change is constant and unavoidable during the life-cycle of a project and the most effective process is one that is rooted in this fact. Also, Scrum provides a set of basic meetings (called “Ceremonies”), artifacts and roles that work together to leverage a team-based approach to product development that values and supports each individuals unique contribution, builds team accountability and drives a level of empirical predictability based on known throughput or velocity.
The three basic roles within Scrum are the following:
- Product Owner
- Scrum Master
- The Team
The Product Owner
The Product Owner is defined most succinctly as being responsible for managing the ROI of the project. In other words, the Product Owner sets down a prioritized list of work items and works with the Scrum Team to see that the vision for the product can be realized. Through a process of ensuring well-defined, small and testable units of work are compiled and presented to the team to pull from, the Product Owner enables the concept of “just-in-time” requirements to be leveraged. Within Scrum, there is not a heavy focus on copious amounts of documentation or formalized requirements. The teams focus on the immediate iteration of work, or sprint, to deliver the highest priority (and thus the items with the most business value) work, meeting a predefined standard metric, otherwise known as a “Definition of Done”. Through continual inspection of the methods and outcomes of each sprint, the Product Owner can help teams to be more productive, change the focus of the project on a sprint by sprint basis or otherwise ensure that at all times the team is focused on the set of features that is of highest value to the customer. In some teams, actual customers play the role of Product Owner, while in other teams the Product Owner is a domain expert and is empowered to drive the values and vision of the product or service the team is building.
The Scrum Master
The Scrum Master is the guide and coach in the team’s adoption of the Scrum framework. Their work centers around ensuring that Scrum principles and best practices are followed by mentoring team members and generally acting to keep the team continually improving. The Scrum Master has some primary responsibilities, including working to identify, manage and work down reported impediments by raising issues across an organization to see quick resolution, to ensure that work items that are at a candidate state for development meet the team’s definition of READY and to act as a servant leader within their teams. The concept of servant leadership goes hand in hand with the “pull” style nature of Scrum. In other words, teams pull from the experience, advice and direction of their Scrum Master, as needed. The Scrum Master role is truly there to serve the needs of the team, be it in finding additional hardware for testing, in getting technical training for team members, for providing ongoing workshop session on Backlog Grooming techniques, software estimation, release planning and any of the daily activities that an Agile team might pursue. The Scrum Master is defined as a manager, such that they manage the “Scrum Process”, not the people. The most effective Scrum Masters blend a set of technical and people skills with a zen-like viewpoint that acts to stabilize teams that can become unbalanced and provide confidence and reassurance to executives that the most business critical issues are being worked down at all times. As a Scrum Master you are part conflict resolution artist, mentor, coach, guide and generally the resident expert in how to apply Agile practices within a Scrum framework to leverage increases in process efficiency and software quality, while staying true to the core Agile principles that value human interaction and communication above other forms of more prescriptive interaction and documentation.
The Team is defined in Scrum as a cross-functional group of software engineers, database experts, QA professionals and any others that play an active role in working down backlog items to a DONE state. The Team is described as “self-organizing”, which in reality means more that the team members focus on the technical design and implementation details of the request and operate in a pull-based cycle of iterative and incremental product development, according to their own assessment of what commitments they can keep. The Team is responsible for working with their Product Owner and Scrum Master to assist with Backlog Grooming and generally a process of enriching the definition of work items to a point just prior to a Sprint where they meet a predefined READY state. The Team works together to estimate each work item, including conducting such activities as Planning Poker and assessing the technical dependencies and complexity of items. The Team forms a dynamic and living bond with their Product Owners to ensure that their vision for the product can be realized, while owning the specifics of how that vision becomes a reality.