Agile Development is a general term that includes a number of software development methodologies, among them, are Extreme Programming, Scrum, Crystal, Lean Development, Dynamic Systems Development Method (DSDM) and Feature-Driven Development (FDD). Kanban is often referred to as Agile methodology, inasmuch as it is often used together with Scrum principles, but it was actually developed by Toyota back in the 1950s. Despite the fact that each methodology has a unique approach and particular principles, all of them have similar distinctive features such as flexibility, lightness, focus on constant development and goal orientation. Today we would like to cover Scrum and also Scrum hybrid with Kanban.
In these latter days, Scrum is one of the most popular frameworks and it is widely used by IT companies all over the world. Talking about “Agile” people often mean Scrum, but what is Scrum in practice?
Scrum is widely applied by software development teams and according to “The 9th Annual State of Agile Report” 72% of software teams use Scrum or Scrum’s hybrid. Talking about hybrids companies often combine it with Kanban or Lean practices.
How can Scrum be distinguished from Agile? – Scrum is a subgroup of Agile and while Agile Development is a set of guiding concepts, 12 principles, and values for implementation of agile projects, Scrum runs these values and principles of Agile and moreover it is possible to employ various techniques and processes within this framework.
The significant components of Scrum Development: roles, events, artifacts, and rules.
Scrum key roles are:
· Product Owner is one person, who is responsible for managing the Product Backlog, increasing the value of product and work of the Development Team.
· Development Team is a self-organized cross-functional group of professionals that typically consists of 7-9 members and whose work consists in delivering suitable for release Increments.
· ScrumMaster as a servant-leader and facilitator for the Development Team, Product Owner, and Organization, who coaches the Scrum Team, ensures that Scrum is understood, and Scrum practices, rules, and theory are implemented.
Scrum events include:
· The Sprint is a time-box limited to one month or less during which the Development Team creates a potentially releasable and usable product Increment.
· Sprint Planning is a time-boxed meeting of the entire Scrum Team which results in work agenda for the oncoming Sprint.
· The Daily Stand-Up is a 15-minute event for the Development Team that is held at the same place and time every day and during which team aligns activities and draws up a plan for the next 24-hours.
· The Sprint Review is a time-boxed meeting at the end of the Sprint within which the Scrum Team and stakeholders review the Increment and customize the Product Backlog if needed.
· The Sprint Retrospective takes place after the Sprint Review and before the next Sprint Planning and during this time the Scrum Team should inspect itself and make a plan for improvements to be implemented within the upcoming Sprint.
· Product Backlog is a runtime ordered list of everything that might be needed in the product and it is a sole source of requirements for any changes to be applied to the product. It consists of all the features, requirements, functions, fixes and enhancements to be made to the product and it is never complete.
· Sprint Backlog is a set of items from Product Backlog selected for the Sprint with a plan for creating the product Increment and implementing the Sprint Goal. In this way, the Development Team makes a prediction about what functional capabilities will be included in the upcoming Increment.
· Increment is the total of all items from Product Backlog that were delivered within the Sprint and the sum value of all the preceding Sprints’ Increments.
In comparison with Scrum, Kanban is much more flexible and less structured; besides its principles can be easily combined with any actual practice that you already adhere to, even Scrum. For this and other reason Kanban is often mixed with Scrum and usually applied by larger teams. Initially, Kanban dropped out of Lean Manufacturing techniques in the 1950s, but somewhere in 2007 it was adapted for knowledge work, like software development, DevOps, etc.
Kanban is introduced to match the amount of work in progress with team’s capacity, what provides more flexibility, faster delivery, better visibility and clear goal orientation. All the work is organized on Kanban board with usually five states (columns): product backlog (to-do), in progress, testing, ready to release and released (done). The main condition is Limit of Work in Progress (WIP Limit) and it should be pre-set for every column on the board. It is important to note that if one of the columns is full, then new items can’t be added to the state, moreover, the whole team should work on clearing up the impediment.
In basis, Kanban is built on 4 main principles:
· Visualization of the workflow – allows to observe the flow and all the stages of an item in Kanban system, from request to completion. The main goal is to bring positive changes and optimize the workflow.
· Limit the amount of work in progress (WIP) – helps to balance the workflow at each state, because new items are rolled in only when the particular WIP limit is met. Limiting WIP is the heart of Kanban methodology.
· Focus, manage and improve the flow – adherence to the foregoing principles helps to follow the system, analyze, optimize and improve it. This process is never complete.
· Continuous improvement – Kanban methodology requires constant analysis, monitoring, and measuring of productivity by tracking efficiency, quality, flow, etc.
The main distinguishing features of Kanban are:
· No roles, like Product Owner or Scrum Master
· Continual delivery without time-boxed sprints
· Flexibility and capability to make changes at any stage
Application of Kanban can bring such benefits, as:
· Features are delivered faster due to shorter work cycles
· Responsivity to changes – best fit for companies where priorities shift often
· Decreases the amount of waste and removes those events that don’t deliver value to organization or team
Both Scrum and Kanban proved themselves to be efficient and mature frameworks that can help companies to develop and succeed in their industries. Different approaches can work in a worthwhile manner at different times, so while making a decision ask which aspects and principles of Scrum and Kanban can be applied with your teams to effectually deliver products and services.