Sat 24 Mar 2007
Here I will try to examplify some vicious circles that one regularly faces during software development and project management. There are some archetypes of dynamic interaction which were described by Peter M. Senge in “The Fifth Discipline. The art and practice of the learning organization”. Some Pattern you will find (implicitly in the recipes) in “The Pragmatic Programmer” by Anrew Hunt and David Thomas. There is also a very instructive Google-Video of Ken Schwaber giving a talk about Scrum Project Management where he demonstrates some mechanisms which lead to system rod and decline of quality.
The first example: You are in a hurry, you skip writing tests (doing refactoring, documenting) for your code, your code quickly becomes less stable reducing your productivity and putting you more and more under pressure - eventually ending in the programmers burn out. In the language of system archetypes this could be described as”Fixes that Fail” (see Archetypes for an overview). The unintended consequences of reducing code quality also influence, after some delay, the amount of control you have over the coding process.