Scrum is an iterative and incremental agile software development framework for managing product development. It defines “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal”, challenges assumptions of the “traditional, sequential approach” to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines involved.
Principle of Scrum
A key principle of Scrum is its recognition that during product development, the customers can change their minds about what they want and need (often called requirements volatility), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. As such, Scrum adopts an evidence-based empirical approach accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team’s ability to deliver quickly, to respond to emerging requirements and to adapt to evolving technologies and changes in market conditions.
Scrum is a feedback-driven empirical approach which is, like all empirical process control, underpinned by the three pillars of transparency, inspection, and adaptation. All work within the Scrum framework should be visible to those responsible for the outcome: the process, the workflow, progress, etc. In order to make these things visible, Scrum Teams need to frequently inspect the product being developed and how well the team is working. With frequent inspection, the team can spot when their work deviates outside of acceptable limits and adapt their process or the product under development.
The Scrum Team
These three pillars require trust and openness in the team, which the following five values of Scrum enable:
- Commitment: Team members individually commit to achieving their team goals, each and every Sprint.
- Courage: Team members know they have the courage to work through conflict and challenges together so that they can do the right thing.
- Focus: Team members focus exclusively on their team goals and the Sprint Backlog; there should be no work done other than through their backlog.
- Openness: Team members and their stakeholders agree to be transparent about their work and any challenges they face.
- Respect: Team members respect each other to be technically capable and to work with good intent.
There are three core roles in the Scrum framework. These core roles are ideally colocated to deliver potentially shippable Product Increments. They represent the Scrum Team. Although other roles involved with product development may be encountered, Scrum does not define any team roles other than those described below.