The open society and agile development
I just finished reading The Open Society and Its Enemies by Karl Popper. One of the chapters discusses the idea of Utopian engineering rather than piecemeal engineering.
This is opposed to the piecemeal engineer, who:
Now my claim is that Utopian Engineering is similar to the waterfall model and that piecemeal engineering is similar to an agile approach. I think this is pretty much self evident. Waterfall attempts to capture requirements (i.e. the greatest good) and development the ‘final solution’. Agile developments attempts to satisfy quickly certain user stories (i.e. the greatest need).
Popper goes on to explain why Utopian engineering is doomed to failure. Firstly, Utopian engineering encourages centralized control (totalitarianism) and since the re-engineering will likely be painful and costly, the engineer becomes deaf to complaints. Secondly, since the program will take time to deliver, the requirements are likely to change:
Change `political’ for `software’ in that and it reads like a criticism of the waterfall method. Perhaps the history of failure in the software field could have been avoided if we’d paid attention to what happened to previous attempts at Utopian engineering. Of course, the price of failure is much less when software projects go bad, but when our health insurance is being robbed to pay for it it starts to hurt.
The Utopian approach may be described as follows. Any rational action must have a certain aim. … To choose this aim is therefore the first thing we have to do if we wish to act rationally … These principles … demand that we must determine our ultimate political aim, or Ideal State, before taking any practical action. Only when this ultimate aim is determined and … when we are in possession of something like a blueprint … only then can we begin to consider the best ways and means for its realization.
This is opposed to the piecemeal engineer, who:
will be aware that perfection, if attainable is far distant, … will adopt the method of searching for, and fighting against, the greatest and most urgent evils of society, rather than searching for, and fighting for, its greatest ultimate good.
Now my claim is that Utopian Engineering is similar to the waterfall model and that piecemeal engineering is similar to an agile approach. I think this is pretty much self evident. Waterfall attempts to capture requirements (i.e. the greatest good) and development the ‘final solution’. Agile developments attempts to satisfy quickly certain user stories (i.e. the greatest need).
Popper goes on to explain why Utopian engineering is doomed to failure. Firstly, Utopian engineering encourages centralized control (totalitarianism) and since the re-engineering will likely be painful and costly, the engineer becomes deaf to complaints. Secondly, since the program will take time to deliver, the requirements are likely to change:
This approach … can be of practical value only if we assume that the original blueprint … remains the basis of the work until it is completed. But that will take some time. It will be a time of revolutions, both political and spiritual, and of new experiments and experience in the political field. It is therefore expected that the ideas and ideals will change.
Change `political’ for `software’ in that and it reads like a criticism of the waterfall method. Perhaps the history of failure in the software field could have been avoided if we’d paid attention to what happened to previous attempts at Utopian engineering. Of course, the price of failure is much less when software projects go bad, but when our health insurance is being robbed to pay for it it starts to hurt.
December 21st, 2006 at 4:48 pm Agile Development & Open Societies…
A great piece on machine-envy about links between the Popperian open society and Agile Software Development, a very user-centred method of designing effective software, following a number of very socio-political rules. This dovetails nicely with my fe…
January 16th, 2007 at 8:01 pm If we did try and adopt politics to an Agile developement model, surely we’d have to forgo the endless calls of resign when a minister (or their department) makes a mistake. Which I agree with, but we have no political CruseControl to email us when someone breaks our country by commiting a new law to the statue books. Although that would tres cool.