Lean process and methodology is important to me because I think it is central to the work that we are doing in the community. Even more, it’s changing how my team at Dell creates and delivers products for customers?
This post may be long, but my answer to “why Lean” ends up being very simple: Lean process is honest and humble.
I believe Lean process is more honest because it assumes a lack of knowledge. It’s more “truthy” to admit there are a lot of things that we don’t know (we can’t know!) until we’ve started doing the work. It’s very hard to admit we don’t have answers for things until we are further along because we want to feel like experts and we to lock deliveries.
The “building software is like building a house” analogy is often used to claim that Lean lacks the design “blue prints” that other processes have. The argument goes that builders needed to understand how the entire house works with structural support, plumbing lines and electrical circuits and things like that. However, if I was going to build a house I would still leave a lot of things to the last-minute. The process of building a house evolves so that the basic outlines of structural elements are known. In a lot of cases the position of rooms, the outlets, air conditioning ducts, a lot of the functional components, even windows and doors while they are often placed in the design can easily be moved and changed as you go through. You can do a walk-through of a house after it’s been framed out and make all sorts of changes and adjustments. As things go forward in the design of the house things become more and more difficult to change. You are building a brick façade, moving the windows within the façade are very difficult. However, interior places they aren’t. Likewise, I don’t want to order my life-gem counter-tops from the blue-prints – it’s much safer to order off actual measurements.
Software projects are also building projects. You build a façade, you build a structure and within that structure you have a lot of flexibility. As you go you make more decisions and your choices become more limited. But, that is the nature of building. For that reason, saying “we don’t know everything we want” is not just good practice, it is much more honest.
But honesty is not enough for a strong Lean process. The need for humility in Lean architects and business people really stands out. The Lean process is humble because it starts with the assumption that we don’t really understand the value, drivers, interests and features that make our product special.
We need very strong ideas and a vision; however, we need to be motivated by making something that is significant to other people. They are the ones who give it value.
We have to give up the idea that we can convince someone who our idea will be significant to them – we have to show and collaborate instead. The most important thing in building any project and taking any product to market is listening to the people who are using your product and understanding what their needs. Instead of telling them what they need; show them something interesting, interact with them and get their opinion.
Contrast that to waterfall methodology where the assumption is that we can put smart people in a room, have them figure out what the requirements are, build a team, get everything ready to go and then start executing. That assumption is highly optimized and seems very efficient, but it has a huge amount of hubris in the process. The idea that we can sit down two years in advance of market need and identify what those features and capabilities are seems outrageous to me in the current technology market. It is so much harder to try to get that information correct and then execute on it that get a directional statement and begin and then get feedback and interact, it is a world of difference between the two processes.
Ultimately, Lean process about having requirements that are less defined or well-known. It’s driven by giving respect to the people consuming the product. We can hear their ideas and their reactions. Where the users’ input can be evaluated and taken in to account. It’s about collaboration.
Humility it not just about listening and collecting feedback: it is about interacting and building relationships.
So just as our customers are building a relationship with our product, they are also building a relationship with the people creating that product. And that relationship is what drives the product forward and what makes it a great product and it is what gives you a strong and loyal customer base, rather than dictating, “This is what you wanted. Here it is. I hope you enjoy it.”
This is a completely different and powerful way of delivering product. I believe that honesty and humility in a Lean process inherently creates stronger products and ones that are both faster delivered and better suited to their markets.