What is the difference between Scrum and Kanban? What are their advantages and disadvantages? In this article, we will try to understand and give a detailed answer for two most popular development methodologies that use all top-rated agencies.
Many companies use different methodologies for software development. First of all, the type of methodology is chosen based on the current project. Both methodologies are well suited for the development of mobile apps and websites, but each has own characteristics. Sometimes companies use the best practices of Kanban and Scrum in one approach. This is called “Scrumban”. If you follow the trends of web technologies, I recommend reading article trends of web development 2019.
Scrum is a methodology for flexible software development. This expression came to us from Rugby and is one of the elements before the game starts. Many IT companies give preference to this methodology, as it significantly increases the efficiency of the development process.
In Scrum, the development process is divided into iterations, which are called Sprints. Each Sprint has a deadline and is a separate module. This is part of the product that can be shown to the customer after the finish. Based on many years of experience, Sprint's runtime is set from 2 weeks to 1 month. If you choose less, then it takes a lot of time off planning. If you take more than a month, it's hard to keep in mind and control the whole process, since there are many tasks that must be performed.
Our web design company, Merehead uses Jira online project management system. It has a huge number of functions and settings. Moreover, the system allows the use of additional plug-ins, which number is more than 1000. This is really a flexible and convenient tool, it allows you to work on Scrum and Kanban methodology. The main drawback of Jira is the complex interface for beginners.
Let's see what the Scrum methodology has.
Sprint Planning Meeting. The web development process begins with planning a Sprint. At this stage, the whole team meets and creates a list of tasks to "backlog" of the Sprint. Team members estimate the time for each task. The number of tasks in the "backlog" is unlimited, but the execution time must strictly match to the time allocated for Sprint. This is one of the most important meetings since it makes the basis of the whole Sprint.
Daily Meeting. In the process of development, every day, there is a short meeting of the team. The main goal is to share experience and evaluate how the development process is going on. At this meeting, each member of the team answers three questions: what was done yesterday, what will be done today, what are the problems? Scrum master controls the process of meeting.
Sprint Review. After the completion of Sprint, a review of the work performed is done. The completed module is displayed to the Product Owner or the client.
Retrospective. After the Sprint Review, the team meets to discuss the optimization of the work. It is here that you can discuss organizational problems so that in future Sprints it is to take into account and improve the development process.
Kanban was developed and implemented by Toyota in 1959. He allowed a significant increase in the company's performance in a short time. Kanban methodology allows you to visually structure the development process. Kanban in Chinese means "visible board". In fact, this is a huge board on which tasks are moved between sections.
Some IT companies prefer to use regular (physical) boards with paper cards. But still, most organization use online boards.
Our company uses online tool Trello. It allows to easily customize the board for each project. The system has all the necessary tools for managing the development process. In my opinion, this is the best online solution for Kanban methodology.
A board can have many columns. We basically use 4 main columns: To do, In progress, Need testing and Done. But there can be more of them. Cards are moved from one section to another.
To do. A different card is created for each task. It can have a detailed description, attached files, label, deadline, checklist. Each card is assigned to the developer, the person who must complete this task.
In progress. When the developer starts working on his task, he moves the card to the In progress column. All team members see who is working on what. When the task was completed, the card is moved to the next section - Need testing.
Need testing. QA-engineer tracks the cards in the Need testing column. He will start to work when the card appears in this section. If the testing was successful, the card is moved to the Done section. If there are any bugs, a comment with a description of the problem is attached to the card and is returned back to the To do column.
Scrum vs Kanban differences
As you can see, Kanban and Scrum have many common approaches, but at the same time, they have a lot of differences.
1.Scrum methodology strictly regulates the development process - Sprints. This makes the team work hard but efficiently, following the deadlines. Each Sprint ends with a completed module that can be shown to the client. Kanban doesn't have sprints. Thus in Kanban it is more difficult to control the development time and predict the completion of a module.
2.After the start of the Sprint, the Scrum methodology does not allow changes in the "backlog" (tasks), since this breaks the basis of the system. Kanban gives you the ability to add/delete tasks at any phase of the web development. Thus, Scrum is not such a flexible methodology as Kanban.
3.Scrum requires additional roles/team members (Scrum Master, Product Owner etc) to manage the development process. At that time, Kanban does not require such resources, since the process is linear and more simple in the organization.
4.Scrum requires time for meetings, Sprint organizations, daily meetings-reports. Kanban doesn't require obligatory meetings and saves time. They can be held once a week or once a month.
As you can see, Kanban and Scrum have their own features. Each project requires a specific approach to the development process. In some cases it is necessary to use Scrum, in others - Kanban. Scrum is great for a large project (duration of 3 months), which has a full specification and requirements before starting the development.
In this case, the team will easily make a detailed development plan and divide the process into Sprints. Kanban is great for small projects, business websites where it doesn't take a lot of time to plan. Also, it is well suited for long-term projects, where there is no clear specification. Where the task is created in the development process.