Lean Software Development

Read Complete Research Material



Lean Software Development

Lean Software Development

Introduction

Lean software development in general is still a new process, but the theories are solidly anchored by the manufacturers that have made it work for them. What Merwan, David and Raffo did was to translate every good practice to the software world. But because of the novelty of the approach, there are very few examples in the article of the lean techniques as applied to software development. Some time has passed, however, since the article has been written and today the reader can find a plethora of examples dispersed on the Internet, via developer blogs everywhere. Alt.Net in particular is a group whose members adhere to agile and lean practices and would be a good place to start searching.

Analysis

I consider this article an excellent introduction to lean software development and highly recommend it to anyone looking into this methodology wanting to know more about it, or wanting to implement it in their workplace. The language provides an easy read and most real life examples are taken from Merwan, David A and David Raffo's personal experiences at the various companies they have worked for and are always very insightful.

Seriously, however, lean development is about using tools and techniques in accordance to seven basic principles in order to eliminate waste in the value creation process. The value creation process is simply how your company (or department) creates value. In our case, how we develop software is the process we are talking about here. Software is the value we create for our customers.

One way we can visualize this process is by using a value-stream map, which depicts all the steps taken when designing, developing and deploying software, along with the time taken to go through each step and the time that has been lost just waiting for something (feedback, testers, DBAs, etc.) Then we apply lean methodologies to try to shorten the value-stream map as much as possible without sacrificing on quality. All and all, it means having shorter software creation cycles.

Too often I see Lean being taught as "the elimination of waste" when in fact waste reduction is a tertiary concern. While waste elimination is important, waste should not be reduced in detriment to flow, and smooth flow can be sacrificed to improve value delivery. So for example, a queue in a kanban system can be considered as waste (probably necessary waste). As queues are a ...
Related Ads