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.
There are several fundamentals that Scrum teams follow:
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|
Another Scrum fundamental is that teams complete work in a time-bound cycle called a sprint cycle, which follows this format:
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.
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 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.