Wednesday, October 15, 2008

Seven Principles of Lean Software Development - Optimize the Whole

Picture courtesy of aussiegall@flickr
Lance Armstrong won seven consecutive Tour de France races between years 1999 and 2005. Every year there were 21 individual stages and Lance Armstrong won "only" 4 individual stages in 1999, 1 stage in 2000, 4 stages in 2001, 4 stages in 2002, 2 stages in 2003, 6 stages in 2004 and 2 stages in 2005.

As you can see Lance Armstrong was not focused on winning each stage (quite the opposite). He was focused on winning the whole Tour de France - yet he had to keep close to the head of the race. And when you take a look at time differences between him and the second cyclist in the final classification you will be amazed - they were close to couple of minutes (out of 90 hours of total time!) It means that he was focused on winning the whole race - not to be the best and outstanding cyclist (he was not - I know because I watched many of the stages these years).

Speaking with the lean language Lance Armstrong was Optimizing the Whole - and he succeeded seven times winning the most difficult and exhausting cycling race in the World.

In this post I will try to explain "Optimize the Whole" principle from "Implementing Lean Software Development - from Concept to Cash" book.

Focus on the Entire Value Stream


Software companies should focus on winning the whole race which is the Software Product. Software company does not have to be the best in everything they do, they don't have to have spectacular successes every week but they should focus on delivering great final products.

This can be achieved by optimizing the Entire Value Stream i.e. if the software teams are doing great but there is a bottleneck between them and the marketing it should be solved ASAP. So what if there is a great team of engineers who can deliver software and respond to customer's changes very quickly if this software cannot be deployed at the customer's site? They are optimized but the whole organization isn't! And this is a mistake.

Customers see the organization as a whole - they don't care if the product is great but they have problems with customer's service or other departments. For the customer every aspect of the software organization should be of the same quality. I dare claim that customers see the whole organization as they see its worst element.

This is why optimizing the Entire Value Stream is so important. It doesn't matter if the 90% of the organization is the best damn organization in the World. If the company's representatives suck our customers will have such opinion about the whole company (because they can't see our greatness).

Deliver a Complete Product


Software is not everything just like with the other products. If you go to shop and buy some stuff you not only look at what's inside but what's outside too. The whole package is important and the same rules apply to software products. Software alone is like the product without the wrapping - it may be great but it doesn't look tempting and it probably will not attract lots of customers to buy it.

Software companies should develop complete products, not just software. Our customers are not worse than we are when we go shopping - they need software, they need advice, they need post-sales service, etc.

Complete products are built by complete teams - it means that our teams should be composed of experts from all needed domains. Teams need to have great leaders as well as great engineers, sales, marketing specialists, secretaries, etc.. They together can deliver great final products to their customers and make them feel special every time.

Optimize the Whole


"Optimize the Whole" principle applied wisely will help you deliver your products and please your customers - that's for sure.

I hope pieces of advice given above will make it easy to understand how to put "Optimize the Whole" principle in practice. If you need more detailed description with more examples and more sophisticated explanation you should definitely go to "Implementing Lean Software Development - from Concept to Cash" book.

PS. Two principles described earlier can be found here: Respect People, Deliver Fast

Originally published on AgileSoftwareDevelopment.com

No comments: