A very interesting and impassioned post, much of which I agree with, however I gently take issue with a couple of points:
- It is entirely possible to develop and 'grow' algorithms through a process which models evolution through natural selection. This has been demonstrated albeit at a simple level here in the monastery. A search should turn up the relevant threads. I know of no actual production code which has been developed using this method, so calling it a development methodology is a tad premature.
- It could be argued that any development methodology where independent teams develop similar modules of code in parallel (population) and then compare their code (variation) against predetermined criteria before reworking the code in the light of the lessons learned (evolution) bears a likeness to the biological process, the major difference being that the fitness criteria are not determiined by the environment but by the observer.
- I would disagree slightly with your point about evolution merely producing better reproducers: This is the generalised result of the types of evolutionary pressure found in nature, however if the criteria used to judge the fitness of an algorith or module are correctly chosen, this does not necessarily need to be the result. As a further point, I would add that Word is the dominant member of the population because of the pressures of the market, which have been manipulated, quite apart from the software development process.
Though provoking, none the less and I wholeheartedly agree with your crusade against the marketroid crud which can be used to sell software.
Please, if this node offends you, re-read it. Think for a bit. I am almost certainly not trying to offend you. Remember - Please never take anything I do or say seriously.