Scrum is an Agile framework for software project management. Scrum defines a set of roles, artifacts, and practices.
Roles
- ScrumMaster: Responsible for facilitating the Scrum process. Directs meetings, enforces rules, keeps team focused, manages artifacts.
- Product Owner: Represents the stakeholders and the business. Articulates their needs.
- Team: Responsible for delivering the product. A cross-functional group that does the analysis, design, coding, testing, communication and documentation.
Artifacts
- User Story: A description of a feature to be implemented, and the acceptance testing criteria for that feature. Typically written by the Product Owner.
- Technical Story: A description of technical work that must to done to support the product. Typically written by the Team.
- Product Backlog: The collection of all stories that have not been completed.
- Sprint Backlog: The collection of stories to be completed in the current Sprint.
- Burndown: A chart that displays remaining work to be done versus time. It is intended to give everyone insight into the progress of the project.
Practices
- Sprint: The period of development, typically lasting 2 to 4 weeks. Scrum uses the term “Sprint” for the Agile concept of “iteration”.
- Sprint Planning Meeting: Prior to the start of the Sprint, this meeting is held to determine which stories from the Product Backlog will be entered into the Sprint Backlog. The Product Owner will prioritize the stories, and the Team will plan the Sprint.
- Daily Scrum: A 15-minute daily meeting for the Team, where each team member describes: what they did yesterday, what they are doing today, and any roadblocks encountered.
- Scrum of Scrums: Used when teams are not co-located. A representative from each team will attend this meeting that occurs after the Daily Scrum.
- Sprint Review Meeting: Review the work that was completed and not completed. Present (demo) the completed work to the stakeholders; incomplete work is not presented.
- Sprint Retrospective: Reflect on the last Sprint, in order to improve the process. Questions to ask: What what well in the last Sprint? What could be done better in the next Sprint?