From Mary Poppendieck's Lean Thinking: "It is sometimes thought that a benefit of good software engineering is to allow low skilled programmers to produce code while a few high skilled architects and designers do the critical thinking. With this in mind, a project is often divided into requirements gathering, analysis, design, coding, testing, and so on, with decreasing skill presumably required at each step. A 'standard process' is developed for each step, so that low-skilled programmers, for example, can translate design into code simply by following the process. This kind of thinking comes from mass-production, where skilled industrial engineers are expected to design production work for unskilled laborers. It is the antithesis of lean thinking and devalues the skills of the developers who actually write the code as surely as industrial engineers telling laborers how to do their jobs devalues the skills of production workers. Centering on the people who add value means upgrading the skills of developers through training and apprenticeships. It means forming teams that design their own processes and address complete problems. It means that staff groups and managers exist to support developers, not to tell them what to do." The paper has an interesting breakdown on the changes made in Toyota. It's interesting to compare and constrast this essay and the reality of modern production with the kinds of essays favoured by the MS EMEA Journal of late, or with God knows how many CACM/IEEE journals over the last twenty years, and wonder if our notions about software processes are working off stale data. If your impression of production lines derives from the 1960s or earlier, well times have moved on. Mass production today has more to do with eliminating inventory and logistics than time and motion studies....