A new lean software manifesto
This weekend saw Eric Ries's Lean Startup movement produce a conference on the approach. People who were there have already summarized and documented the proceedings in quite a detail. One of the interesting take-aways seems to have been Kent Beck's proposal for the evolution of the Agile Manifesto into something more applicable to the startup context of continuous learning and adaptation. Apparently, it has created quite a bit of discussion, but apart from the video recording, I haven't seen it being stated completely anywhere. So, it goes something like this (original waterfall comparison parenthesized):
As practitioners of software development to support lean business, we have come to realize that the unknowns of the business context are more critical to the success of the enterprise than the attributes of the software we create. As we learn this, we have come to value:
Team vision and discipline over individuals and interactions (or processes and tools)
Validated learning over working software (or comprehensive documentation)
Customer discovery over customer collaboration (or contract negotiation)
Initiating change over responding to change (or following a plan)
That is, while there is value in the items on the right, we value the items on the left more.
I hope I did not butcher some subtlety when extracting those words out of the keynote speech. Now, for my own view: there's plenty in the above statements which I can resonate with, but some bits that I find myself somewhat uneasy about. And no, it's not over the second point, which apparently has ruffled the feathers of quite a few software engineers (I'll let Steve Freeman explain that one).
The biggest issue I have is with the third statement, preferring customer discovery to customer collaboration. Not because that's not a great thing in some situations, but because it limits the applicability of this model to a tiny cross section of where the lean principles truly apply. Namely, it works great for a garage startup that doesn't yet know what its market really is. It doesn't work all that great for a business which already has customers, revenue, and even profit - yet such a business is still well served by maintaining a lean approach. Now, one may argue that a growth business will always need to continue to discover new customers, either similar to those it already has, or entirely new segments, and I will not disagree. Still, there comes a point where greater success comes from collaborating with your customers than from looking for new ones.
The second issue I have is with the first statement of preferring teams and discipline over individuals and interaction. Again, not because I disagree, but because I know there are many people who will interpret the word "discipline" as "lets set up processes, plans and approval mechanisms", and turn the whole thing back to waterfall. Successful application of the agile principles has never been as easy as the books and educators make it sound like, and the subtlety of the differences between the values of the first statement is, I think, the primary reason why.