No True Agile, No True Lean, No True Latte
No True Agile, No True Lean, No True Latte
Join the DZone community and get the full member experience.Join For Free
You've been hearing a lot about agile software development, get started with the eBook: Agile Product Development from 321 Gang.
My presentation Complexity vs. Lean has been well received by many, whereas it was berated by a few. And good or bad, it certainly has sparked some interesting debates about "true Lean" and "true Agile". Here’s my take on the matter.
No single truth
I don’t believe there is one “true Islam”. Some people say that the “real Islam” is a peaceful religion, while others think that the “real Islam” calls for the death of infidels who occupy holy territory. I don’t believe either of them. There is no scientific way of determining who is right and who is wrong.
Likewise, I don’t believe there is a “true Christianity”, a “true democracy”, or a “true liberalism”. Worst of all, there’s not even a “true caffè latte”. These are all just words. They are models copied from mind to mind, and mutated to suit people’s purposes. The models are supposed to represent what the world ought to look like, but there are so many different versions in people’s heads that we cannot know which is the real one.
Complexity science taught me that, in the end, all models are wrong. There is no such thing as a single truth. But that doesn’t mean all models are useless. In fact, some versions are less terrible than others. (And caffè latte in Holland can be really terrible.) But not one of them can be the True One.
And so, there is also no “true Agile” and no “true Lean”. Although some versions of Agile and Lean in some people’s heads are undoubtedly more useful than others, it is impossible to determine which ones. There is no objective way of determining who is right and who is wrong.
An aggregate model
But if the models are all different, then which is the best model to refer to? How can I speak of Lean when there’s no way of knowing what it “really” is? How can we evaluate Agile when people disagree on the practices? How can I describe how to make a proper caffè latte?
I believe the safest way to approach this problem is to create an “aggregate model”, which means attributing relative weights to versions of the model depending on how often they are being referred to. Just like the reputations of scientists are calculated using citations of their articles. And just like Google’s page ranking algorithm calculates relative weights from hyperlinks to web pages.
No true Agile
This would mean that the Agile Manifesto, which is referred to by almost every Agilist, should be regarded as one of the primary sources of the aggregate model for Agile. But the Agile Manifesto does not count as the only source for Agile. Common practices, like TDD, pair programming, and stand-up meetings, are by many people considered to be part of Agile. And therefore they are. It doesn’t matter that the original manifesto doesn’t name specific Agile practices. It’s enough to observe that most Agilists support them.
Many people also say that “self-organizing teams don’t need managers” (which is not really true) and that “cross-functional teams are better than functional teams” (which is also not necessarily true). It doesn’t matter what the original founding fathers of Agile had in mind. The only thing that matters is the similarities of the many models of Agile that people now carry around in their heads. If many people believe that pair programming requires chicken soup, then chicken soup is part of the aggregate Agile model.
It’s no use pointing out what an original document actually meant in the past, whether that was 10 years ago, or 2,000 years ago. What’s important is the ideas that people share now.
No true Lean
It’s the same with Lean. We can refer to the original pillars of the Toyota Production System, the 14 principles of Deming, and the 7 principles of Lean software development. They all still carry a lot of weight in the aggregate model, because they are referred to time and time again.
But also part of the Lean aggregate model are interpretations of businesses as linear value chains (which is an oversimplification), the advise to optimize the whole (which is theoretically impossible), and a huge emphasis on kaizen, or gradual improvement (while basically ignoring kaikaku, or radical improvement). Again, what the original gurus really meant is interesting. But what really concerns us most is what Lean practitioners actually practice and preach in the Lean world today.
Don’t forget that we should give most consideration to those who are most often referred to by others. If only one “Lean” practitioner in the world claims that Lean requires a daily bowl of low-fat yoghurt, then we can safely ignore him. But when nearly all Lean practitioners tell you to focus exclusively on the customer, while presenting no original ideas on how to keep the other stakeholders happy, then you have good reasons to claim that Lean is sub-optimizing for customers. And that’s what I did. With style. And pleasure. And a latte afterwards.
No true Latte
Some people gave me the impression that only the ideas of “thought leaders” should count when determining what is “true Lean” and “true Agile”. To this I merely like to point at the Pope, Osama bin Laden, and American TV reverends and ask, “Do thought leaders have the exclusive right to determine what constitutes a true belief?” I think not. And it’s no different with Agile and Lean.
Another argument I heard is that misunderstandings should not count as being part of Lean or Agile. For example, the “working software over documentation” principle is sometimes misunderstood to mean that documentation doesn’t matter at all. And “optimize the value chain” is misunderstood to mean that business is a linear chain. To this I say that misunderstandings are a result of miscommunication. If many people have a tendency to misunderstand your message in the same way, then there’s something wrong with your message. In my view the broken messages, including the common misunderstandings, are all part of Lean and Agile.
Of course, my preference to rely on an aggregate model is my own choice. In the end all models are wrong, including any aggregates. But if you’re looking for a model that is useful, my approach might be a safer bet than guessing which thought leader has the most convincing rhetorics.
p.s. I finished this blog post while enjoying my own version of a latte. It was quite good actually.
Published at DZone with permission of Jurgen Appelo . See the original article here.
Opinions expressed by DZone contributors are their own.