Tesugen

Lean development

Mary Poppendieck’s book Lean Development, to be released in June this year, seems very promising after having read the introduction and the first chapter (of the review copy). As I understand it, lean development comes from lean manufacturing, which is an approach invented by Japanese automobile companies, such as Honda and Toyota, in the early 1980’s, to compete with American car makers.

Lean manufacturing is concurrent rather than sequential; decisions are made as late as possible; inventory is kept to a minimum (the ultimate goal is to not do anything until there’s a customer order); critical decisions aren’t pushed up the hierarchy, but made by the engineers themselves; a single leader envisions what the car should be, and constantly communicates this to the engineers.

The car design environment, writes Poppendieck, is as complex as in software, and the lean approach has been tried and proven there. She lists seven principles of lean thinking: Eliminate Waste; Amplify Learning; Decide as Late as Possible; Deliver as Fast as Possible; Empower the Team; Build Integrity In; Avoid Sub-Optimization. These all match to chapters in the book, so I’ll write about them in turn.

Waste is anything that doesn’t add value to the end product, such as documentation that no-one reads, extra features put in on speculation, defects, etc. Delay is also waste, waiting for people to decide, for other programmers to complete code that you depend on, switching between tasks. The chapter discusses a technique to map the “value stream”, how much time is wait and how much time is actually spent on value-adding activities. Poppendieck illustrates this with the map for a can of cola to travel from mine to mouth (from the book Lean Thinking by James P. Womack and Daniel T. Jones). The process takes 319 days, of which processing accounts for three hours. The point is to identify where the delays are, and reduce or eliminate them.

I’m currently reading the chapter on amplifying learning; in it, Poppendieck compares development to creating a recipe, while production is like following a recipe. A chef creating a recipe needs to try many variations to discover the best. Software similarly to a large extent about trial and error. She quotes a study made by Raymonde Guindon, in which

she found that cycling between high level design and detailed solution was typical of good designers when dealing with ill-structured problems, that is, problems which do not have a single right answer or a best way to arrive at a solution. Guindon theorized that this unstructured approach is necessary to understand and give structure to such problems.

Poppendieck continues: “The bulk of the work of software development is a problem-solving activity similar to that investigated by Guindon.” In other words, since creativity is about problem solving, programming is a creative activity, where it’s not a question of simply following set rules and practices – rather, it’s an exploration of the unknown.

The above was posted to my personal weblog on January 7, 2003. My name is Peter Lindberg and I am a thirtysomething software developer and dad living in Stockholm, Sweden. Here, you’ll find posts in English and Swedish about whatever happens to interest me for the moment.

Tags:

Related posts:

Posted around the same time:

The seven most recent posts:

  1. Tesugen Replaced (October 7)
  2. My Year of MacBook Troubles (May 16)
  3. Tesugen Turns Five (March 21)
  4. Gustaf Nordenskiöld om keramik kontra kläddesign (December 10, 2006)
  5. Se till att ha två buffertar för oförutsedda utgifter (October 30, 2006)
  6. Bra tips för den som vill börja fondspara (October 7, 2006)
  7. Light-Hearted Parenting Tips (September 16, 2006)
Bloggtoppen.se