Disciplined Agile

Use Whatever Agile Method Works

Teams that are new to agile can get caught up in discussions about what method is best. Scrum? Kanban? Scrum and kanban? Which is better? And what about Extreme Programming (XP), which adds engineering practices such as test-driven development and continuous integration.
It is a fruitless debate.

Each of these approaches have good practices and principles to offer. Each has its own approach to improvement. Disciplined Agile says to be pragmatic.

  • Be pragmatic. Our aim isn't to be agile, it's to be as effective as we can be and to improve from there. To do this we need to be pragmatic and adopt agile, lean, or even traditional strategies when they make the most sense for our context. 

Use what works. Choose and evolve your way of working.
Look at the context and incorporate practices from each to find what works for the team. 

Let Lean Thinking Guide You

As you think about what to do, let yourself be guided by the essence of lean thinking and lean practice including

  • Systems thinking, optimizing the whole.
  • Continuous improvement, learning pragmatically.
  • Removing delays in workflow and feedback, eliminating waste.
  • Build quality in.

Both scrum and kanban are partial implementations of lean thinking. We can use lean thinking to assess them both.

Why Scrum Works

The essence of Scrum is to have co-located, cross-functional teams that complete work in sprints of one to four weeks. These practices work to reduce delays in workflow because the people needed to get something done are always present in the team. Teams get the answers they need right when they need them. They also reduce delays in feedback because stories can be completed in a matter of days and product owners can provide feedback during the sprint.

What Scrum Leaves Out

Scrum is great but it is missing some key elements that improve collaboration efficiency, namely systems thinking and explicit workflow.. 
Scrum does not take a systems-thinking point of view; it takes a bottom-up approach. Mostly, teams work individually and then try to coordinate with a scheme such as a scrum-of-scrums and then finally attend to the business needs across the organization. This bottom-up approach focuses on only parts of the value stream.

Scrum does not embrace explicit workflow within the team. Scrum does not explicitly manage work-in-process.

How Kanban Implements Lean Thinking

Kanban is based on three basic principles:

Visualize and make explicit how you do your work
Limit the amount of work-in-process (WIP)
Enhance flow

Kanban is known as a pull method. It has two mantras, “Flow when you can, pull when you must” and “Stop starting and start finishing”. Kanban’s focus on flow and managing WIP reduces delays both in feedback and workflow. Visualization and explicit policies of the workflow also improve collaboration, even when teams are not colocated. Kanban is sensitive to culture and context and shows respect for current roles, responsibilities, and job titles.

What Kanban Leaves Out

Because of its sensitivity to culture and context, kanban emphasizes starting where you are and evolving iteratively. While the attention to context is essential, there could be practices and structures that would offer immediate improvements, but which would create too large a leap from the current state and are therefore ignored.

Abrupt Versus Evolutionary Change

Scrum and kanban are not merely different sets of practices, they are based on different models of transformation. While both work in many situations, they are somewhat extreme in their original forms.

The transformation model of scrum is disruptive, bringing in a set of practices and roles that must be followed. Learning is supposed to take place by creating great teams and having them figure things out, but this can be difficult to handle for a new team.

The transformation model of kanban works on creating a better understanding of what work you are currently doing and following the principles of flow. It is based on evolutionary change, not the abrupt change that scrum demands. However, its focus on workflow ignores the value of cross-functional teams in many cases.

An Integrated Approach

Lean thinking allows us to take from scrum, kanban, and also Extreme Programming to create an approach that is effective for the context. They all have good elements. And they have a lot in common. It turns out that several practices of scrum and kanban and Extreme Programming should be done by all teams as illustrated in Table 1.

Table 1. Agile Practices

Scrum

Kanban

XP

Use small batches

Self-organization

Daily coordination

Estimates and velocity

Focus on finishing

Make work visible


Have explicit workflow

Manage WIP explicitly

Use ATDD

Continuously integrate

Right at the start, we are faced with a few primary decisions.

  • Will iterations be used? Iterations are useful because they provide discipline – the time-boxing gives the team an end-date and creates a focus on completion. It also forces the team to develop in small stories. On the other hand, in the case a team is doing mostly maintenance or unplannable work, you may find that just working on items that come in and focusing on finishing them doesn’t require iteration timeboxes.
  • Will the teams be cross-functional? Whether the teams can be truly cross-functional or not, they are a good idea. Strive towards them to the greatest extent possible.

Summary

Guide your thinking by focusing on what makes for effective teams: Creating value quickly, sustainably, and with high quality. How to do it depends upon the context of the team and the type of work they do. Trying to pick Scrum or Kanban can result in missing the opportunities that a blended model based on Lean Thinking provides. Each approach provides valuable insights; in fact, several practices of scrum, kanban and XP are useful for virtually every team.

July 2023