||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Agile, XP, Kanban, Lean, software methodology
Title: Lean from the Trenches
Author: Henrik Kniberg
Publisher: Pragmatic Bookshelf
Level: No previous knowledge of Agile assumed
Verdict: Highly recommended
The biggest problem with software methodologies is the real world. And what goes for the methodology goes doubly so for the books. Far too many books on development methodologies present scenarios that are either so simplified as to be fantasy, or else only really apply to very small projects over short time-scales. Which is why 'Lean From The Trenches' is such an engaging read - the trenches it describes are the familiar landscape to anyone involved in team development on significantly long or complex applications. In this case it's a 60 person development for the Swedish Police, using a mixture of Scrum, XP and Kanban-based methodologies. And, for those who care about these sorts of things, the application is about moving police operations from being largely paper-based to being largely online - with laptop access from police officers on the go to all relevant databases and applications.
The book consists of two sections - part one, the core of the book, is an extended case study of this particular project. Part two steps back and intrdouces a bit more about the Agile and Lean methodologies, going into more detail about specific practices and techniques. While it's possible to read part two as a standalone introduction to Agile techniques, it's really the first part, the detailed case study that makes this such a standout book. Particularly for those who learn best from concrete examples, the narrative in part one of the book is pretty compelling.
It's no surpise that the first part of the book is entitled 'How We Work'. It describes the nuts and bolts of day to day activity on the project (and there is a detailed introduction to the project itself, which sets the scene so that the reader is aware of the context - both in terms of the technical constrainst but also the political and organisation pressures that were at work). Of the actual working processes, there is considerable emphasis on tackling the communication problems that are inherent in any large and complex project. The 'daily cocktail party' emerges as probably the key organising principle at work. This is more than just a quick stand-up meeting as prescribed by Scrum, in this project it becomes a core part of the process - evolving as time goes on so that it always remains relevant and important and not just something that has to be done because the methodology says it should.
In fact a key lesson from the book, and a core part of the Lean process, is that the methodology itself is allowed to evolve and change. If part of the process doesn't work it's dropped or changed. This evolutionary process is described in part one of the book, and also comes out later when specific features of the process are described.
In terms of techniques that are addressed in the second part of the book, there's an overview of Agile, Lean, Scrum, XP and Kanban, followed by looking at techniques for solving specific problems. As you'd expect, the introductions to Agile, Lean etc are fairly fast and furious - you get a flavour but not much depth, pretty much as you'd expect. The problem areas that are a focus of the subsequent chapters these are reducing the test automation backlog, sizing the backlog and a chapter on cause-effect diagrams.
While the second part of the book is interesting, and it's as readable and engaging as the first part, it really is the tales from the trenches that draws the reader in. In describing specific incidents and problems, in giving a glimpse of the day to day reality of dealing with tight deadlines, competing demands and different people (developers, architects, testers, users etc), you can learn a lot more than any number of dry and theoretical justifications of this process over that.