Scrum is an iterative and incremental agile software development methodology for managing product development.
It defines “a flexible 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 in the project.
A key principle of scrum is its recognition that during production processes, 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 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.
Roles In Scrum:
- Product owner: the person responsible for maintaining the product backlog by representing the interests of the stakeholders
- Scrum master: the person responsible for the scrum process, making sure it is used correctly
- Development team: a cross-functional group of people responsible for delivering potentially shippable increments of product at the end of every sprint
A sprint (or iteration) is the basic unit of development in scrum. The sprint is a timeboxed effort(restricted to a specific duration). The duration is fixed in advance for each sprint and is normally between two week and one month, with two weeks being the most common.
Each sprint starts with a sprint planning event that aims to define a sprint backlog(identify the work for the sprint), and make an estimated commitment for the sprint goal. Each sprint ends with a sprint review and sprint retrospective.
This article is a good start to understand Scrum and how to use this Agile methodology.