Scrum is an iterative and incremental agile software development framework for managing product development. Scrum adopts empirical approach i.e. problems cannot be fully understood or defined, focussing instead on maximising team’s ability to deliver quickly and respond to emerging requirements.
Three pillars uphold every implementation of empirical process control:
- Transparency: Significant aspects of process must be visible to those responsible for outcome.
- Inspection: Must inspect frequently progress towards sprint goal to detect undesirable variances.
- Adaptation: Must adapt when a process deviates from the acceptable limits.
Scrum is a simple framework for effective team collaboration on complex projects. Scrum provides a small set of rules that can create just enough structure for teams to be able to focus on their innovation on solving what might otherwise be an insurmountable challenge.
Building complex products for customers is inherently difficult task.Scrum at its core is governed by three primary roles:
- Product Owners: Defines what needs to be built.
- Development Teams: Builds and Demonstrate to Product owner and based on this PO decides on next sprint.
- Scrum Masters: Ensures the process happens as smooth as possible and continually help improve the process, the team and the product being created.
Scrum Events: Following events are used to create regularity and to minimise the need of meeting not defined in scrum. All events are time boxed, once a sprint starts it cannot be shortened or lengthened. Each event in the scrum is formal opportunity to inspect and adapt.
- Sprint: The heart of scrum which is less than a month and during which a “Done”, usable potentially releasable increment is created. A new sprint starts immediately after the conclusion of previous sprint. Sprint contains of sprint planning, Daily Scrums, Development, Sprint Review and Sprint Retrospective. A Sprint can be cancelled before time box is over by only Product Owner.
- Sprint Planning: Its a time-boxed activity where team collaboratively decides the amount of work to be performed.
- Sprint Goal: Its an objective set for the Sprint that can be met through implementation of product backlog. Selected product backlog items deliver coherent goal.
- Daily Scrum: Its a 15 minute time boxed event for development team to synchronize activities and create plan for next 24 hours. Daily scrum is held at same time and place every day to reduce complexity. During scrum team explains following questions:
What Did I do yesterday?
What I will do today?
Do I have any impediment?
- Sprint Review: Its held at the end of sprint to inspect the increment and adapt the product backlog if needed. This is four hour time boxed meeting in a sprint of one month. The result of review meeting is revised product backlog that defines probable product backlog for next sprint.
- Sprint Retrospective: Its an opportunity for scrum team to inspect itself and create a plan of improvements to be enacted during the next sprint. It occurs after sprint review and next sprint planning. This is three hour time boxed meeting for one month sprint.
- Product Backlog: Its a way to express ordered list of requirements for a product. It can be expressed as user stories, use cases, features, bugs etc. Product owner maximizes the value of the product and work done by development team.
- Sprint Backlog: Its the list of work development team must address in next sprint. Development team should keep in mind its past performance before taking up the new work. Product back log are broken down to tasks by the development team. Tasks are never assigned but picked up by the team members using self organisation.
- Sprint Burndown Chart: Its publicly displayed chart showing remaining work in the sprint backlog. Its updated every day and gives simple view of sprint progress.
- Release Burn down Chart: Publicly displayed chart showing remaining work to complete target commitment for a product release. Its updated every sprint.
- Definition of Done: Specified criteria by the team when to accept work as completed. It includes unit testing, reviews, functional testing, user acceptance testing etc.
- Definition of Ready: Specified criteria when a story can be picked up from backlog item. It includes backlog item written, user experience included, acceptable criteria defined, dependency defined etc.
- Velocity: Its the total effort a team is capable in a sprint.
- Spike: Time box period used to create simple prototype after research. Spikes are often introduced before large projects. Unlike sprints spike may not deliver tangible, shippable, valuable functionality.
- Impediment: Anything that prevents team member to perform as efficiently as possible.
- Tasks: Work items added into sprint backlog at the beginning of sprint and broken down in hours.
- Tracer Bullet: Its a spike with current architecture, technology and results in production quality code. Often these implementations are quick shot through layers in tech stack.
- Backlog refinement(grooming): Its a process to keep refining the backlog so that it gets properly prioritised and makes them clear for the team as they enter sprints.
- Scrum of Scrums: Its a technique to scale scrum to large development groups. Each scrum team designates ‘ambassador’ which has daily stand up with all ambassadors from other teams. Depending on the context ambassadors may be Scrum master or technical team member
- ScrumBut: Customised scrum for the team.