Scaling between Lean and Agile Practice

First published in The Agile Journal, 24 August 2011

Introduction

Agility can be reduced to a few rules. Scrum is a case in point; its rules are well documented and have been popularised for many years. These rules encompass simple things like having a product owner, prioritisation sessions, daily standups, and retrospectives. Of course this level of distillation doesn't provide for much slack, and so the rules must be enforced scrupulously if chaos is to be avoided. Other methods such as XP, DSDM, and those at the harder end of the Crystal series are comparatively more prescriptive. They offer more guidance about the things that need to be done - things like allocating more varied and focused roles, pair programming, test driven development, the structuring of deliverables, continuous deployment, or a greater focus upon project management or upon the business case.

These more prescriptive methods can seem overly complex when compared to Scrum, but their "bells and whistles" do provide added value. Each represents a roadmap to solving a particular kind of Agile problem. Do you have a small project that would benefit from the rapid delivery of prototypes? Consider XP. Do you need to integrate your project with enterprise processes? Consider DSDM. Not sure? Look at Crystal, or perhaps you can just start with the few rules of Scrum and scale them up accordingly.

Scaling up, scaling down

This idea of "scaling up" to more prescriptive Agile approaches is only one side of the coin. It's clearly an important one, because a successful project is likely to grow, and the demands placed upon its management will increase. But the fact is you might also want to scale a successful project down. There are two circumstances in which this is likely to happen:

The first of these circumstances is the most widely encountered, and perhaps the best understood. I've written about it previously in the Agile Journal. Others have authored books on DSDM and its incorporation into the PRINCE2 framework* and ITIL**. It is the second of these circumstances that is the more controversial. This is because it implies moving away from a proven Agile method, with the hope of finding something better suited to a post-delivery context of small changes and reduced risk.

Enter Lean, pursued by a Bear

Whereas Agile methods use iterations and incremental releases to mark time and progress, Lean uses another measure - the throughput of delivered items, also known as velocity, and the conformance of products to specified tolerances. If the Kanban is supplied with a diet of small and repeatable changes then the velocity can be calculated and the products can be compared to a standard by using appropriate metrics. This provides a mechanism for optimising the entire value stream. By improving team response times throughput can potentially be increased, and by improving development practices the quality of deliverables can potentially be improved. Now all of this might sound perilously Victorian, with Lean developers reduced to the status of Dickensian mill workers. It could have the makings of a good costume drama. Perhaps the Scrummaster can be replaced by an overseer with a pocket watch, glaring at the Kanban board and stamping up and down, growling and scowling if he sees production or quality deviate from projections. A ruddy complexion and mutton-chop whiskers would complete the part.

A conscientiously implemented Lean process will avoid these problems altogether. The primary mechanism for this is the Inversion of Control. This is a well-known design pattern in software engineering and it is certainly interesting to see it used in social practice. The role of the manager is not one of didactic control. There is no "overseer" as such; rather, the organising and actioning of tasks is delegated by the team to a vested authority in those situations where it adds value to do so. In short, the team will direct and update a manager regarding the state of the project. That manager will effectively become a facilitator...much like a Scrummaster in fact. The principle is one of a self-organising team in which members can no longer be adequately considered as resources but as agents of the process itself.

So attractive is this proposition that many Lean principles have been adopted and adapted by the Agile community at large. These include self-organisation and the almost mystical concept of pull. If team members are fully empowered and in charge of their own work, then they are the ones who will generate the driving force for throughput. They'll be constantly removing tickets from the backlog and actioning them, exerting a demand upon the Product Owner for further requirements. When this works it is a beautiful and awe-inspiring thing...you can almost hear the engine humming.

Big Ticket Items: the pressure to upscale again

You'll have noticed that when I was talking about the small and repeatable changes which represent the correct diet for a Lean Kanban, I didn't sound as though I was completely sold on the matter. It isn't that the prescription is wrong. On the contrary, if we are to have a consistent and steady throughput, the team can't spend its time looking at a requirement, turning it over, and cutting it into smaller pieces. It's just that these larger requirements can and do emerge, even in the context of service delivery, and at the very least they'll need to be triaged. There's no guarantee that requirements changes occurring post-release will be of uniform size.

What can we do then? It's best to think of it this way. If it's too big to be picked up by chopsticks then don't put it into a Lean backlog. If it's more of a knife and fork job then you should really triage it accordingly and put it into an Agile one.

Agile methods such as DSDM and Scrum handle big tickets well because they are expressly iterative. They allow requirements uncertainty to be tackled by means of empirical process control. The resolution of scope isn't achieved so easily with Lean since it does not put the same degree of emphasis on timeboxed checkpoints...that is to say, the process gates in which scope is baselined and reviewed. Instead, Lean puts its emphasis on a different kind of empirical process control - checking how well the deliverables meet certain tolerances. Apart from that, all you really get is a "heartbeat" marking the periods of time over which velocity can be measured. If there's any sense of retrospective, it's one that's looking at throughput, and at measuring conformance using like-for-like metrics. But as long as the tickets are kept small enough to flow and compare well, it's all fine and dandy.

Upscaling from Lean to Agile: the nitty- gritty

Of course, what this means is that when you do get the inevitable big tickets items (BTI's) appearing on a Lean team's Kanban board, there are some choices that you will have to make.

Transitioning the Kanban

Aglie and Lean processes are not the same thing, and we've had a look at their relative positioning. We've also seen that you can move from one to the other when scaling a project up or down in order to keep pace with changing project or programme demands.

Now that's all very well, but it still leaves us with a problem - the tickets on the board. When a decision is taken to switch from Agile to Lean or vice-versa, we can't expect the Kanban to be wiped clean. The tickets will need to be transitioned "on-the-fly" and while many of them are in progress. This is potentially problematic, because we can't always expect the rules under which the Kanban operates to remain the same when transitioning between Agile and Lean. Here's why.

There are potentially other differences that will affect the transitioning of the Kanban, such as different measures of ticket estimation. However the issues I have outlined above are the main ones. The way to handle these mismatches is tool-dependent. If all you're using for your Kanban is a whiteboard and Post-It notes then you don't have much of a problem...any rule differences can be carried in team member's heads. But if you're using a Kanban application of some sort, you may have rules configured for each board. You'll then need to figure out how to move a ticket between boards that exhibit potentially different rules, or at least you'll need to figure out how to change the rules of the existing board. Jira, for example, identifies any field mismatches when refactoring tickets across projects, and will invite manual mapping at that point.

Conclusion

A project will evolve continually, and the methodology that is followed needs to evolve with it. The use of an Agile Method does not provide any sort of exemption. Agility is positioned as being adaptive in nature, but we should remember that this quality does not relate exclusively to the evolution of a product. The process that is being followed also needs to adapt so it can meet changing project conditions. The ability to transition between Lean and Agile presents certain unique challenges in this regard, and it's a skill that team leads and project managers should certainly be able to apply.

* Richards, Keith. “Agile Project Management: Running PRINCE2 projects with DSDM Atern”. The Stationery Office, London, 2007.

** Tudor, Dorothy. "Agile Project and Service Management: delivering IT services using ITIL, PRINCE2 and DSDM Atern". The Stationery Office, London, 2010.