In Achieve Agility with the Right Batch, we explored how and why to define a batch which delivers value. Now we’ll look at how to make your system deliver more batches faster.
Steps to Improve Your Development System
We start by envisioning the development process as a system or machine turning ideas into saleable stuff. Our work is divided into batches, which are carefully defined so each one will deliver value. During development, each batch moves through a series of activities from start to finish. The system can be optimized by applying the tools of queueing theory to this batch-and-activity model.
First, we need to be able to see what is going on. We will:
- Explicitly identify and name the individual batches.
- Map the system. A very simple state map will be enough.
- Set up a way to see batches move through the map of successive activities. For instance, a visual planning board.
Once you can see what is happening, you can improve the progress of batches through your system by applying some standard tools derived from queuing theory:
- Batch size
- WIP Control
- Integration & synchronization using cadence
- Prioritization of batches
Different Solutions for Different Systems
A given tool, when applied to different systems, may recommend different methods. This sometimes makes people think that the methods have nothing in common, when in fact they are based on the same queuing theory tools applied to different types of work.
For instance, agile software development prioritizes its batches by putting them all in a backlog, and periodically choosing which ones to work on next. This is very flexible and responsive way to handle jobs – but it assumes that the batches can be done in any order, delivered at any time, and don’t have long lead times.
Rapid Learning Cycles prioritizes its batches at the beginning of the project, and lays them out in a time-based visual planning board. That’s because many of the batches are order-dependent, have early deadlines, or have long lead times. A backlog doesn’t have any tools to deal with the interdependencies, so a time-based plan is necessary. But at the same time, Rapid Learning Cycles framework achieves the flexibility to respond to newly gained knowledge by using a light-weight to capture the plan, and then reviewing and adjusting the plan every few weeks.
Both Scrum and Rapid Learning Cycles do a minimum of up-front planning by capturing only short descriptions of their epics/user stories on the one hand, and Knowledge Gaps on the other hand. They both expect the plan to change, and provide for that change in planned meetings on a cadence. However, they use different prioritization methods because their batches have different properties.
More examples of when to use different prioritization methods: State-Driven and Date-Driven Planning Boards.