As I mentioned in my last post, I’m working with a number of large-scale agile transformations, most deploying Scrum. However, while Scrum drives agility and efficiency for the software development team, Scrum (or XP) doesn’t have so much to offer to the line managers, directors and VPs engaged in managing development, project, program, and product management and all the other surrounds that are necessary in the larger enterprise. And we all know that a set of agile teams, by themselves, does not assure an agile enterprise.
To address these larger issues, I’m using the principles and tools of lean – value stream analysis, flow, pull, kaizen mind, limiting work in process, etc. – because these principles apply equally well to a program office processing incoming requirements as they do to manufacturing lines. In addressing this larger problem, you have to consider the value stream in total, from the sales office where an order originates – to the development team – to production and distribution. As you know, that can be a long and arduous process in the enterprise, resulting in unacceptably slow time to market, even if the teams themselves are agile.
So the question arises, do we have two different, complementary or even competing philosophies at work – lean for the enterprise and agile for the teams? Or is agile really a “software instance of lean”, making the philosophy of approach, and language of discussion, one harmonious construct, where agile is the lean development practice subset of an overall lean enterprise approach.
Based on my personal experiences with lean manufacturing a decade or so back, I’ve always seen agile development in lean terms, and it certainly seems to be a “lean instance” to me. Many others do to. For example, Ryan Martens recently blogged on the topic at Agile and Lean Software Development – an Oxymoron? However, some of the experts comments he received back were not so simpatico.
With respect to XP, Kent Beck commented on Ryan’s post:
“I think that Agile and Lean are strongly related, but that they are two different ideas. Lean aims to achieve efficiency through eliminating waste and respecting people. Agility is a by-product in lean as rapid cycles are required to identify and eliminate waste. Agile software development aims to meet the evolving needs of customers through the early and continuous deployment of valuable software.
The values, principles, and practices of the two approaches are different, even though complementary.”
Now personally, I’ve never considered the elimination of waste as the primary driver behind lean (I rather think of flow, pull, kaizen, reduced wip, faster cycle times – which of course tends to happen when you reduce waste!). However, in the popular book Lean Thinking: Banish Waste and Create Wealth in Your Corporation (Womack and Jones), eliminating “muda” (waste) is the primary theme, so that there can be no doubt of the objective from their expert perspective. Larman and Vodde however, disagree in noting “the pillars of lean are not tools and waste reduction”.
No matter whether elimination of waste is or isn’t the primary objective of lean, it’s clear that Kent Beck does not see XP as a subset of lean, as they have “different values, principles, and practices”. And who would argue with Kent on the philosophy and roots of XP?
As for Scrum, however, which is the primary method being use in the enterprise projects I’m involved with, its roots are quite different, as you’ll see in my next post.