What is scrum?

Scrum is the best known and most widely used agile software development framework. It is used for managing software projects and product or application development. Its focus is on an adaptive product development strategy where a cross-functional team works as a unit to reach a common goal within a specified period of time (typically one to four weeks).

A key principle of Scrum is its recognition that during a project, product managers and customers may change their minds about what they want and need, and that unpredicted technical challenges cannot always be seen at the beginning of a development cycle. For this reason, Scrum promotes a flexible approach and rapid iteration to contend with unforeseen challenges.

Scrum fundamentals

There are several fundamentals that Scrum teams follow:

Scrum roles

While the members of the cross-functional Scrum team collaborate to achieve their goals, certain team members will take on the following defined roles.

Product owner

Scrum master

Team members

Voice of the customer for the Scrum team

Clearly defines overall vision and strategy for the product

Translates customer requests into user stories

Owns the product backlog

Prioritizes the backlog based on how different items will impact alignment with overall product strategy

The coach for the team

Ensures Scrum practices are maintained and roadblocks are removed

Not the boss of the team, simply a member with a strong understanding of Scrum best practices

Professional certifications are available to become a Certified Scrum Master (CSM)

Spans the skillsets required to successfully deliver a new product feature

Often includes developers, designers and testers

Sprint cycle

Another Scrum fundamental is that teams complete work in a time-bound cycle called a sprint cycle, which follows this format:

Sprint planning meeting

In this meeting, the team commits to a set of deliverables for the sprint and identifies the tasks that must be completed in order to deliver the work on time.

Daily Scrum/standup

The daily Scrum or standup is intended to be a short and focused daily meeting. The team members each share what work has been completed, what work is next and any questions or obstacles that might have come up since the previous daily meeting.

Sprint review

This is the meeting where the team presents the stories completed within the sprint to relevant stakeholders. The team shares the stories that have been completed and also discloses any stories that were committed but unable to be completed. Feedback is gathered from stakeholders to use for future iterations of the completed stories.

Retrospective

The retrospective is designed to be the team's opportunity to review the previous sprint and share any strategic changes the team feels could make future sprints more efficient.

Scrum vs. Agile

This commonly asked question is a trick question. Agile is a set of principles designed to create more efficient development teams. Scrum is an implementation of those principles. Scrum is Agile.

Scrum vs. Kanban

Both Scrum and Kanban are based on creating small, cross-functional, self-organizing teams that work in time-boxed iterations called sprints. They both also focus on iterations and releasing software frequently by breaking work into small, individually deliverable pieces.

The key difference between Scrum and Kanban is in time and commitments.

In Scrum, the team reviews the backlog, evaluates, plans and makes commitments on which stories can be delivered by the end of the sprint cycle. Adding additional work in mid-sprint is not a best practice, as it is counter-productive to the upfront sprint planning work done by the team.

In Kanban, the use of time-based iterations is optional. Kanban is often managed through the use of a board and cards. The board is broken into columns representing the various workflow stages and the cards represent the work being done. The team manages time by imposing limits on the number of items that can be in any given workflow state. This allows the team to add new work items whenever capacity is available.

Scrumban

Scrumban is somewhat new and is a hybrid implementation of Scrum and Kanban, often used by teams looking to move from a Scrum methodology to Kanban. Scrumban utilizes the time-based iterations of Scrum, but the planning is done on demand as the number of unfinished stories reaches a lower limit.

The team also frequently utilizes a Kanban-style board approach to monitoring work as opposed to a traditional Scrum-style board. On a basic level, a Scrum board consists of the overall product backlog, the committed work, what is in progress and what is completed. A Kanban board simply includes the backlog, what is next, what is in progress and what is done. The commitment on a Kanban board is not made until the work is started.