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.
Agile as a foundation
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 for a clear process
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.
More freedom with Kanban
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.
The pros and cons of Scrum and Kanban
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.
Combining Agile and Scrumban
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.
Conclusion: what do you get?
A hybrid approach to Agile and Lean software development has three major advantages:
- Market-driven development. You are building new features that are demanded by the market (customers, partners, etc.) rather than working on something you expect will make someone happy.
- More flexibility. A traditional waterfall approach assumes long planning, delivering big updates and analyzing the results. In today’s fast-paced business environment, this does not work. Agile development allows you to be flexible, to react to new events and requests from customers quickly, and see results and make amendments.
- Continuous delivery. By dividing the overall, big development process into small sprints, you are constantly delivering new software. This is good both for the product, as it becomes functional, and users, as they get the features they need, but also to the programming team as well. Programmers like writing code that works in production. Seeing the results of your work, made in a week or a month, up and running is one of the best rewards for engineers.
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!