Lean development #4
(More on Lean Development by Mary Poppendieck.) She writes about “pull systems”, systems that are pulled by need rather than pushed by schedule or plans. For example, in manufacturing, there’s a technique called “kanban”, where a “kanban card” is left as a part is taken from inventory. Workers then take the kanban card and sets out to make a new part, as specified by the card. The part might consist of subparts, which means that new kanban cards are left for these, causing a ripple across the system, creating a whole slew of new parts, all by demand.
Software development is often a push system, where plans and schedules are made to decide what to do. XP, however, would be more of a pull system, since you don’t actually work by schedule; rather, you identify a set of features (“user stories”) for an iteration, that are too represented by cards. These cards are preferably kept visible, so that everybody can see what remains to do, what is being worked on for the moment, and what is done – for example in the form of a bulletin board with three sections, “To Do,” “Now,” and “Done”.
Poppendieck talks a lot about “depth-first” and “breadth-first”. This is generally a preference: some people are inclined to prefer depth-first, others prefer breadth-first. But when faced with a new problem, most people tend to approach it depth-first, trying to get a sense for the details. Earlier in the book she quoted Raymonde Guindon, who had discovered that good designers often cycles between details and the whole (see my first post on this book). Depth-first requires a sense of the whole, or your assumptions of what details to focus on might be wrong. As I experimented with finding XP metaphors, I discovered how having a metaphor made it easier to return to the whole when I had gotten stuck on some detail – I just tried to restate the problem in the vocabulary of the metaphor.