Today, most companies have embraced Agile methodology to their software development rather than traditional Waterfall model. Agile has various frameworks with similar principles and end results, yet they are different in structure and management approach.
Wondering which one is the best fit to your project? Is it Scrum or Kanban? Or both?
Read about them and find about their differences. Check out an innovative way to mix these frameworks to continuously improve your efficiency and productivity.
The Agile methodology originates from the Agile Manifesto (2001). In the last years, it has become the most popular project management strategy. The VersionOne 12th Annual State of Agile Report identifies that in 2017, 94% of the respondent companies have implemented features of Agile in their work. Key features of the methodology are open communication and flexibility that are always result-orientated. Its main focus is to deliver value to the customer.
Agile is an interactive and incremental methodology for project management, characterised by constant adaptation of the project to the end users’ requirements through collaboration and adaptivity. From my experience at an Angular development company, this approach always requires adaptive planning, evolutionary solutions and precise software delivery.
Scrum is an agile method for managing the needs of a project. It is used mainly in software development where tasks are effectively delegated to a small team. This type of management is proven to be effective due to its simplicity and productivity levels. In the last years, it has become the widest used framework in the software development.
The concept was developed by Jeff Sutherland and Ken Schwaber in the early 90s. In fact, the term “scrum” comes from scrummage, a player’s position in rugby formed by team members closely pushing each other to get the ball. Accordingly, the core idea of the framework is the regular collaboration within the team that aims to close the communication gaps. Thus, the goals of the project become clear, together with the challenges along the way.
In Scrum there are three roles: Product owner, Scrum Master and Development Team who break product development work into small increments called Sprints. They are time-boxes, consisting of Sprint Planning, Daily Scrums, Sprint Reviews and Sprint Retrospective events happening every Sprint. In each Sprint, the high performance Scrum team discovers innovative solutions to complex problems in order to develop, release and sustain the product.
The team is relatively small, usually 3–9 members. The Product owner and the client set all the rules, the Scrum Master is a facilitator and a coach, while the developers are committed to their assigned responsibilities.
The Scrum Team delivers the software bit by bit, with the label “Done” to maximize feedback and efficiency.
Similar to Scrum, Kanban is a management approach, designed to cope with changing requirements. It focuses on continuous delivery of working software without setting strict rules. Typically, it consists of several small teams working independently on specific tasks placed on the Kanban Board. Flexibility is one of the main principles of Kanban.
In the late 40s Taiichi Ohno, an engineer at Toyota, created the first Kanban management system to optimize productivity by production tracking. “Kanban” means billboard in Japanese. Consequently, the board visualization is core organisational tool for the Kanban framework.
There are no specific team sizes or positions in Kanban. The small teams specialized teams work. Each team’s top priorities are on the board. There are no timeboxing in the Kanban management. This gives freedom to the team members to work as intense as they want in order to get the work done. In fact, the freedom comes with more responsibilities. The teams should organise themselves and rely on their experience without expecting supervision.
There are no need for limitations to tasks or control measures. However, the manager can measure average time for completing tasks and discuss it with the teams as an attempt of improvement. Also, he organises the board where all goals, future tasks, tests and completed tasks are recorded.
Job roles and responsibilities
As discussed above, Scrum team members have predefined roles, while Kanban ones are more liberated. The Scrum Product Owner has full control of the goal setting, task delegating and process planning. There are hierarchy that usually do not change throughout the project life cycle.
In Kanban, the manager is the organisator of the project, where the development teams collaborate and help each other regardless the side of the project they work on. For example, if the software developer is ready with his tasks on the board, he starts work on testing when the QA team is behind.
- What kind of team works better?
It depends on the nature of the project. Software development project, requiring a strict set of rules would be managed better by a Scrum team. On the contrary, if a project requires continuous delivery, a flexible Kanban team would do better. Thus, the team type is dependent on the project’s flexibility, task delegation and organisation.
Scheduling and delivery dates
Scrum is all about the time. The increment must be “Done” within one or two weeks. Straight after, the next Sprint is on. After precise measuring of the team’s capabilities in previous time schedules, on the Sprint Reviews there is a discussion on optimizing workload and time.
Kanban does not care about time. It is about transparency, efficiency and continuation. If Scrum is a ‘marathon’, Kanban is a ‘road trip’. The product in Scrum is delivered frequent, while in Kanban it is delivered as a whole, whenever it is done.
- Is time scheduling better or not?
Ideally, the management should answer the client’s expectations about when the product would be released. Scrum is definitely the better option to deliver your product within the assigned time. Due to the Sprints, Scrum is desirable for projects where the client and the management record progress. Kanban’s lack of consistent time schedule is for more complex projects in the long run where the work is precise, rather than rushed.
Productivity and Measurement
Scrum and Kanban aim for quality improvements, together with productivity, to bring efficiency in the software development companies. Scrum team collaborates to complete tasks, focusing on coping with all issues appeared with the software design and testing. The Daily Scrum and the Sprint Reviews allow the continuous measurement of work performance. This contributes to the team’s abilities to carry out complex projects.
Kanban is focusing on achieving individual goals written on the Kanban Board. The progress does not have specific measures. Typically, the visualization of tasks shows the progress of the each small team.
- Is one agile methodology more productive than the other?
No. There is no right recipe for agile management. It depends on the project needs. Just keep it clear: What are the project goals? What workflow suits best the team members? What is the end user demand?
Both Scrum and Kanban are strengthening the management of the project but in a different way. So why choosing just one of them? What if there is a third method that combines their best features?
Scrumban originates to help the transition Scrum to Kanban. It is a hybrid, characterised with management techniques that make continuous improvement on software development. In 2009, Scrumban — Essays on Kanban Systems for Lean Software Development was published by Corey Ladas. The book suggests that Scrum has a field for improvement by applying Kanban principles.
Visualization of the work items from Kanban framework is introduced to Scrum. The Scrum ‘in progress’ work items are detailed on the Kanban board. Diagrams are applied to detect weaknesses and show opportunities for improvement. Hence, the Scrumban would have growing transparency where everyone can see what is going on with the project.
The Scrum team becomes more specialised. Typically, there are job roles but the responsibilities delegation is more flexible. Thus, the team work at capacity. The team members are motivated to work together like in Scrum, yet they have individual tasks assigned. Scrumban helps the improvement of commitment effectiveness in the team.
The Scrum team can sometimes come to the incompletion of multiple tasks due to time limitations. By applying the Kanban method of scheduling the tasks are fully completed before going to the ‘Done’ column. Rather than releasing work items at once every 2–3 weeks on Sprints, there is continuous delivery of working software. Quality comes before time. Thus, Scrumban has on-demand improvement to maximize the flow of work.
Therefore, dislike Scrum, the increments are measured by Kanban metrics, rather than velocity. The improvement of the project is detected within the each team independently. This allows the more credible measurement of progress.
However, in Scrumban, the Sprint framework is still present to provide feedback to the teams.
The Sprints Reviews are implemented to analyse the outcomes of each work cycle. Further, like in Scrum, the daily meetings track the continuous work on the requirements.
Scrumban is an innovative agile approach where the management strives for greater performance of software development projects. It allows a flexibility to the Scrum and measurement of the Kanban flow of work. The quality of work is improved by minimizing waste time and completing tasks on time but at capacity.
What are your thoughts on Scrumban? Let me know your opinion on Scrum and Kanban. Have you tried to combine their features in your projects? Leave a comment for further discussions on the topic.