- Started reading:
- 17th October 2006
- Finished reading:
- 25th October 2006
Like economics, the discipline of software development suffers from a weakness that prevents the resolution of competing theories, in that it is generally impossible to perform controlled experiments. It would take an extremely brave manager to ever try out two competing development theories by having two teams build the same product simultaneously. However, it is possible to borrow a technique from theoretical physics and perform thought experiments. Such an experiment would involve having more than one team develop the same product simultaneously, but using different techniques. That type of experiment is the premise of this novel.
The main character is a recent victim of downsizing who is kidnapped and taken to a formerly communist country where the educational level is high and the costs are low. Once there, he succumbs to his fantasies and agrees to perform the experiment of his dreams. With six products to build and a large staff of developers, he splits them into eighteen groups where each product is being built by three teams simultaneously. Each group of the three then uses a different development method. Throw in impossible deadlines and you have a microcosm of software development.
It would appear that such a premise would guarantee a boring book, but nothing could be further from the truth. The book is entertaining and enduring, as developers will recognize most of their development problems, albeit couched in somewhat unique circumstances. Many of the leading figures in the theory of software development management make cameo appearances, including a certain very rich man. The end result is a true stroke of genius that has somewhat of a surprise ending, but actually quite natural, given the current climate in the computer business.
It is rare when a book about the management of software development is not as dull as baked dirt, and this book is indeed the exception. Not only is it entertaining, but you can even learn some management skills in the process.