Kanban in the information technology industry
At the beginning of the 21st century, Kanban emerged from the automotive industry and was successfully applied to other complex commercial sectors such as telecommunications, software development, research and development, and so on. As interest in efficiency and advances in computer technology grew, key players in the software industry quickly realized how Kanban could positively change the way products and services are produced.
Over the past 13-15 years, the definition of Kanban has undergone its own evolution in the IT sector. Here, Kanban is considered a method that provides flexibility in managing and improving service delivery in a gradual, evolutionary manner.
What software developers refer to as the "Kanban method" is the result of years of testing, learning, and collaborative efforts by leading Lean and Agile experts in the business and academic community. Among them are David Anderson, Dan Vacanti, Darren Davis, Corey Ladas, Dominic DeGrandis, Rick Garber, and others. The growing Kanban community has recognized its ideas and contributions to the development of the methodology.
The Kanban method provides important principles and methods for better managing service level agreement (SLA) commitments, getting products to market on time, and minimizing the risks and costs associated with delay. Using concepts such as "class of service", "deferred commitment" and "two-step commitment", Kanban helps customers and delivery teams collaborate effectively and ensures that the right work is done at the right time.
Application software and technical product development teams have embraced Kanban as a way to implement Lean and Agile principles. Kanban provides technology teams with a great set of principles to visualize their work, deliver products and services continuously, and get customer feedback more frequently and quickly. Hence, it helps teams go to market faster with more readiness for what customers want.
In general, Kanban implements all the principles of the Agile Manifesto and helps to provide products and services that the market really needs. The advent of Upstream Kanban, Portfolio Kanban, and Enterprise Services Planning in recent years has given businesses even more reasons to adopt Kanban to achieve enterprise agility and market efficiency.
It has long been observed that in a software development environment, Kanban teams are more productive because they only focus on the work that is actively being done. But this is not the only key benefit of Kanban for developers. Let's take a closer look at other benefits.
Cycle time is the amount of time it takes for one unit of work to go through the team's entire workflow from start to finish. When only one or two people have the skill set needed to complete certain tasks, cycle times often increase. Slips in work begin to form a "bottleneck" in the workflow, and the system fails.
In Kanban teams, participants share common skills, which means that there will be no slippage. Developers can intervene when necessary. The entire team is responsible for moving items through the workflow. Overlapping skill sets mean that development team members can complete work on tighter deadlines, which is a key benefit of Kanban teams.
An important measure of Kanban is "work in progress" or WIP. IT development teams successfully use the same principles of Kanban to align work in progress (WIP) with the team's capabilities.
Teams set item count limits at any stage to prevent bottlenecks. If a particular stage reaches its limit, team members redirect their efforts and focus on that stage to help clear the path and move items through the workflow faster. Thus, the elimination of problems and delays is part of the system itself. Tracking this process helps teams improve as they progress and more confidently predict the results of tasks in the future.
For example, if the team decides to nominate a specific product owner, they will be responsible for the possible backlog. Kanban team members can do this freely as they only deal with unfinished items. Backlog changes do not interrupt or distract the rest of the team.
Another advantage worth mentioning is the continuous logistics and information flow. Some IT development teams release work daily or even hourly. The faster the team innovates, the more competitive their product is in the IT development market.
Thus, teams that practice Kanban are usually self-managed — they determine when and how work will be completed. Resources are only retrieved as needed or requested, and teammates claim work based on actual throughput. This is a huge contrast to assigning future work to someone else using cardinality estimates.
Thus, the Kanban method provides development teams with a high level of transparency in their work. It also allows you to focus on a few critical tasks of the current moment and includes the mechanisms for identifying and resolving problems inherent in the cycle itself. Such advantages of the Kanban methodology in the field of IT development are difficult to dispute, especially if the tools necessary to support it are already in place.
Kanban in IT design. Reasons for implementation
Against the backdrop of the increasing complexity of software products to be tested, testing is becoming a critical task for many IT projects. Improved tools and standardized methodologies play a big role in this process, and it makes sense for business analysts and IT project managers to explore alternative ways to organize a development team. In particular, many software development teams have been successfully using agile methods for many years, such as Extreme Programming (XP), Evolutionary Prototyping, Scrum, and others. These methodologies have been successfully adapted to meet the challenges of software development projects. Kanban is a more recent methodology, but it also offers some interesting possibilities that can complement the existing IT team management process.
Here are the main reasons why you should consider using the Kanban approach when developing IP:
Provides a visual representation of the development process, allowing the team to easily identify where there are opportunities to optimize the workflow (i.e., in Lean terminology, eliminate waste);
Highlights problems and bottlenecks in the process so that the team can use the right resources to resolve any problems as soon as possible;
Creates opportunities for discussion to ensure that the team is always working on the feature that has the most value for customers;
Provides a more realistic view of the true current state of a project, as well as a view of planned completion, through improved objective project metrics.
Most importantly, it's easy to implement, as you can start by simply capturing an existing process and then progressively optimizing your team's or project's processes. In other words, you don't have to change the way you manage your team, instead, you can gradually introduce Kanban into your workflow.
If you need to know exactly what the current state of the project is, identify bottlenecks, and quickly identify risks that appear during development in an understandable form, it makes sense to use Kanban.
There are many tools available to help teams follow the Kanban approach, but the key advantage of Kanban is that it requires nothing more complicated than a whiteboard and sticky notes.
There are many web-based solutions for implementing Kanban practices today, but don't rush into using them before this change is presented to the team. The team needs to be familiar with the methods and fundamentals of Kanban, and for this, it is easier to use a simple physical board and sticky notes in the first stage, and only then it is worth implementing automated methods for managing workflow.
The day-to-day challenges that developers face in the process of building their products and testing complex systems are:
the increasing complexity of software development;
an increase in the size of the project team, which in turn increases the complexity of internal communications;
the inevitable use of distributed teams, which increases the complexity of both team dynamics and internal communications;
the constant need for information about the current state of the project and the associated lack of information and the imperfection of methods for obtaining it;
limited opportunities to explore new methods and methodologies under development.
Every project is strongly influenced by at least one of these factors. In a situation of working with remote development teams, it is often simply impossible to create a realistic schedule that is convenient for everyone, because by their very nature the software products being created have too many unknowns and risks; this is:
technical risks - usually something that has never been created is being developed, so developers do not have previous experience to deterministically assess the complexity of a project or element;
technological risks - often developers are forced to use a new tool, methodology, or workflow. In most cases, the task of being at the forefront of technology means that they will have to deal with unforeseen bugs;
human risks - the team that starts the project is usually not the team that completes it. Often team members switch between projects and need to back up past work or look at future opportunities;
resource risk - in many large companies, any physical resources, such as compute farms, licenses, etc., are shared by several projects. At some point in a project, competition for resources is inevitable, which will likely result in unplanned delays.
The Kanban method is not a panacea that solves all these problems. But he can help the team to work with purpose and discipline, to understand their next most important task, and clearly define what remains to be done.
In summary, Kanban is a simple process management tool that can give IT development teams additional flexibility and power to manage their workflow. This is the main reason why Kanban in the IT industry is gaining more acceptance and adoption.