(2011-04-20) Lean Agile Production Vs Theory Building

Jorge Aranda notes A critique from Alistair Cockburn on how the Agile Software Development movement is under attack from Taylorism led me to an essay by Dave West on the philosophical incompatibilities between Lean Development and agile techniques, and this in turn led me to finally give a read to Peter Naur’s 1985 text, “Programming as Theory Building.” (Naur Programming as Theory Building) Naur’s programmer’s theories are essentially Mental Models in the sense I (and many others before me) present them, and both he and I claim that the overarching goal of a software development organization is to build those models (or theories) during the life of the project. I could actually restate my thesis contributions as extensions to Naur’s sketch in two ways: first, I explore what I think is the main challenge that software team members find today: to build consistent mental models (or in the terms of the thesis, to develop a shared understanding (Shared Language)) of the world, among potentially large groups of people, in the face of abundant, shifting, and tacit information, and unclear or exploratory goals. Second, I outline some attributes of team interaction (Team Work) that make such a challenge easier to overcome.

Dave West's essay is titled: Lean and Agile: Marriage Made in Heaven or Oxymoron?: Lean and Agile are grounded in fundamentally different World View-s and therefore will inevitably find themselves in opposition on critical points... Production and process vocabulary and metaphors are pervasive throughout the entire (Lean Development) book. Although there is a clear rejection of 19th century ideas about production (e.g. Taylorism) there is an equally clear adoption of enlightened production models (e.g. the Toyota production model)... The observable activities associated with Theory Building include telling a lot of stories, exploring ideas, trying things to see if they work, testing your understanding, populating your physical space with evocative reminders of your understanding, and doing these things iteratively in increasingly comprehensive increments. Looks a lot like an agile environment, but bears little resemblance to a production environment.

Cockburn's responses to West's piece: "Agile views software development as a process for building a consensual theory of the world: with an artifact being a byproduct – an expression – of that theory." Except, not all agilists view it that way. I am watching the pressure on programmers to adopt the XP practices as mandatory indicators of professionalism: Are you programming in pairs? Why not? Do you write your tests before you write your code? Why not? Do you have continuous integration in place? Why not? It is not that these are bad practices. Quite the contrary. What makes me nervous is the assumption that we have now found the Best way of working. That is the Taylorist stance: We (some “we”) will find the Best way of working, and You will Work That Way.

cf Conceptual Integrity, (2022-04-10) Arango Taylor On Christopher Alexander


Edited:    |       |    Search Twitter for discussion