The case for agility in developing and managing business applicationsLast updated on May 7, 2020
In fact, over the past decade, the word ‘agile’ has emerged to be a developer-centric manifesto. Almost all companies, irrespective of their size, the scale of operations, sector, and revenues, etc. have adopted one or the other variant of agile methodologies. While the most prevailing ones have been Nexus, SAFe, LeSS, Spotify, DAD, it is mainly Scrum and Kanban, which have emerged as the most popular frameworks. Each method’s core principles help solve specific issues and deliver value to end-users.
In this blog, we will understand the applicability of the two most commonly used frameworks Scrum and Kanban, in development and operations support.
Addressing the change, you want to be
In the case of application development, the core challenge is typically to address change. Rapidly evolving customer demands require rapid changes to be incorporated by the developers. This used to hinder the overall schedule, cost, and quality of the end-product. Agile frameworks, for example, Scrum, addresses this challenge by introducing iterative development & delivery models. The method aims to and helps incrementally deliver the software and accounts for flexibilities to incorporate customer feedback, and even plan to deliver the same quality, consistently in the future release(s). Iterations would stop once all customer story points have been coded, tested, and accepted by end-users. From this point on, the operations or support phase begins.
To summarize, an ‘agile’ world makes the nature of development iterative, consistent and flexible – while adhering to quality standards and expectations.
In operations, the primary focus is to make applications perform as per the needs and expectations of end-users until it is retired. The nature of the work during the support phase is not as iterative as it is in the development phase. It is continuous. A myriad of issues, such as bugs, configuration changes, new functionalities, etc., needs to be continuously added and tested. Given that backlogs are also continuous, the operations team must consistently deliver and live up to the end-user expectations.
That said, how do we ensure that operations run better and more smoothly? And can we deliver just-in-time value to the customer, while there is a roadmap to realize larger business benefits? These are the few key questions to be addressed now.
Consistently delivering just-in-time value without compromising efficiency.
Traditional ways of running operations are rapidly becoming moot now – mostly influenced by external business realities such as competition, market uncertainties (a global pandemic), etc. But which agile framework is suitable for IT operations?
Given that the ultimate goal of operations is to deliver Just-in-time value to the customers continuously, Kanban is one of the most suitable and effective agile frameworks to run IT operations. The work to be done using the Kanban framework revolves around the “Kanban board.” It’s a tool to visualize the work and optimize the flow of work among the team. It comes with a three-step workflow model: ‘To-do,’ ‘In-progress,’ and ‘Done.’ Based on the capacity of the operations team, the items are moved to the ‘In-progress’ state. Once it is done, the team picks up the next work item from the backlog.
As long as the support owner keeps the backlog updated with priorities in the ‘To-Do’ bucket, the team is assured they are delivering value to the customer. Unlike in Scrum, there are no fixed length iterations need. Once the work item is traversed through the three steps of Kanban workflow, the cycle is finished/completed. The time taken to finish this is referred to as ‘cycle time’ – one of the key metrics to measure team efficiency and also the delivery of the future work to the customer. One of the key principles in Kanban is to keep as much fewer work items as possible in “in progress” state, because contrary to popular belief, “multitasking kills efficiency.”
However, if the scale of enhancements or the new projects is considerably large, then Scrum can be leveraged for achieving the purpose, i.e., value delivery. There are instances where people blend the ideal aspects of Scrum and Kanban into Scrumban. In sprints, roles are taken from a scrum and ‘work-in-progress’ limits, the cycle time from Kanban to form a Scrumban operating model. Scrumban is used to plan on-demand principles to fill the backlog. Tasks are only assigned by pull systems present in Kanban. Planning on demand, therefore, is mostly utilized for a fast-paced process, relevant for lean teams in start-ups or projects which require rapid and continuous development in a dynamic environment. Also, similar to Kanban, the board maintains persistence, while only the tasks to be done and their priorities change. In ‘Scrumban’ the tasks are typically focused more on planning and strategizing effectively than releasing early, while in Scrum, planning comes after every sprint.
Applying the right agile methodology
Any agile methodology offers a mix of everything a team may need to self-organize, collaborate effectively, guarantee cost flexibility, and plan adaptively. More importantly, agility allows for teams to introduce new changes in applications and products without disrupting its lifecycle or delaying the release.
Succeeding with ‘agile’ can be tricky, which is why we must implement the right framework after a deep and careful understanding of business needs. With time, one can also deploy hybrid models, but that must only come from maturity.