Tuesday, February 3, 2009

9. Lean learnings

One of the key factors that enables businesses to regularly deliver value and have successful products is the ability to respect people who work to develop the product.

As an example, a developer is the best judge of complexity of code and what resources it takes to develop quality code. It is a product manager's job to balance business values, and it is important to instill it in development team, but at the same time, it is important to respect developer's commitment and knowledge.

Too pressing negotiations result in weak scaffolding and inadequate quality of code, which may not become apparent immediately, but seriously impact value delivery in future releases.

If a product manager wants to consistently deliver value to users, one of the effective ways is to deliver bite-size (not too big, not too insignificant) change in business value with every product release. This has many advantages:
  • Less amount of testing is required
  • Less amount of documentation is required
  • Less amount of field/user training is required

In general, it becomes easier for developers to develop it, and it becomes easier for users to consume it. When developers get visibility into such realization of value, they are encouraged to deliver faster releases.

Another related and important lean manufacturing concept is "stop the line" (more about it later). As a product grows from infancy, there is another tug-of-war between development and delivery teams. Development team wants to cleanup/refactor the code, or even rewrite an entire feature, but challenge for delivery team is to justify this expensive move. Past experiences in many organizations have proved that respecting core team's decision are less expensive in long run, and enables regular delivery of value.

Many businesses have also achieved similar or better results by allowing development teams to undertake less work than their capacity, and allowing time for maintaining quality and even innovation.

No comments: