One of the most recent trends in software development is combining Agile methodologies to get a unique, hybrid approach that helps an organization to achieve better results. We at 1Ci have our very own combination of Agile and Scrumban. Let’s talk about how to build such a tool, and what to expect as a result.
The principles of this methodology can be found at agilemanifesto.org. Commonly, Agile introduces 4 values and 12 principles. However, different Agile approaches can go back and forth from points in the Manifesto, and this is allowed by the document. The “Agile Manifesto” describes common goals for businesses, including embracing individual’s values and interactions over processes and tools (software > documentation, value for customer > code, etc.)
Agile gave birth to a bunch of methodologies for software development. Scrum and Kanban are two of the most popular.
Scrum is a framework, consisting of three roles, five events, and three artifacts. The roles are Product Owner, Scrum Master and Development Team, the events include Sprint, Sprint Planning, Daily Scrum, Sprint Review and Sprint Retrospective, while the artifacts are Product Backlog, Sprint Backlog and Product Increment.
Regarding software development, the process is constantly repeated in a certain period of time called Sprint. Sprint may be something between one and four weeks.
Kanban, in turn, is a methodology built around five properties and four principles. It involves using cards containing details about a request. These cards are organized on a board in such a way as to define the development process clearly. In the basic situation, you can have a board with cards divided into three columns: To Do, In Progress, Done.
Once it is agreed that the task on the card has been processed and now meets the requirements for the next column, it can be moved there. In such an order every task is handled. Therefore, Kanban is more about incremental, evolutionary change.
Both Scrum and Kanban are methodologies that focus on lean and agile software development processes. They involve frequent releases, encourage the introduction of self-organized teams, continuous improvement and the setting of priorities based on the value businesses can get from a certain update.
Scrum is a strict methodology: it has thoroughly described roles, artifacts and timeframes for delivery (sprints). Kanban gives more freedom than Scrum; it only requires the visualization of the workflow (using board and cards), limiting work in process, constant measurement and improving the flow.
However, both of these methodologies have their complexities. For example, when implementing Scrum, it might be hard for team members to meet the deadlines of time-boxed sprints. Some developers even believe that the requirement for releasing new features at every sprint also slows the overall development process down and creates an overhead and unnecessary pressure. Management might want to see significant results in absolutely unrealistic time frames.
Kanban is a less-structured methodology, which may be right, but also introduces some problems. Too much freedom is not always a good thing as some teams might become less productive in such an environment. Also, there are critics of Kanban as a methodology that believe it does not suit such a creative process as software development.
It was first introduced at Toyota’s manufacturing line, so it is very linear, which is suitable for repetitive processes and noncomplex systems with multiples parameters. Sometimes it is hard for a newly-organized team to use Kanban to develop new features.
To get rid of most of the problems of Agile software development methodologies and benefit from their flexibility and freedom, it is a good idea to use a hybrid approach. You can take only the elements that suit your team and business. Here is how it may look, based on our experience.
In 2009, engineer and software developer Corey Ladas was the first to come up with a description of a hybrid Scrum/Kanban model. He introduced the term “Scrumban.” Ladas suggested starting with Scrum, working on process optimization and quality so that such time-boxed sprints are no longer necessary, and then the freedom of Kanban may be used in full.
Here at 1Ci we use our own blend of Agile, Kanban, and Scrum. Here is how it works:
We have several channels for accumulating information about tasks and requests for new features. After the development team gets an understanding of what users and other stakeholders expect to see in the product, we can move to requirement formalization.
After the task is correctly described, there is voting on whether it should be implemented in the next sprint or not. The product owner reviews the arguments of all stakeholders and makes the final decision.
The next step is designing a user story tailored to a specific task, including its priority. When we have all of this information in place, the programming magic starts. Finally, we have a new feature designed within a given sprint time.
A hybrid approach to Agile and Lean software development has three major advantages:
Agile implementation is an endless process with no final point. Keep working and optimizing, and you will get better results and higher productivity. Good luck!