Recapitulation theory - does it apply to software development?


Recapitulation theory "claims that the development of the embryo of every species repeats the evolutionary development of that species fully." If you look at Haeckel's picture, you can see how eight different species develop, and how they look like 'lesser' life forms earlier in their development.

i believe that good software develops in a similiar way. that is, that a software system begins as something that a programmer from the sixties would be comfortable understanding. then that system is modified, or systems of that level of complexity are combines, to create a greater system. it is another way to look at test first methodologies - you make sure the animal can breath before you check if it can swim. you make sure it can swim before checking to see if it can do the back stroke.

in a more literal sense, all software begins life as a script. as the script becomes longer, more structure is necessary. perhaps libraries are introduced. perhaps a different language is used, or a database introduced. but to begin with a script and a flat file is the right thing to do. let the project grow if it needs to, but keep it primitive. keep it simple. have humility and do the minimum necessary thing to make the product work. ironically i think this minimal approach is the mark of a master programmer.

(thinking about it some more) there is another angle to this. a programmer must be comfortable on his computer before actually programming anything. that means he must understand what makes his very own computer tick before attempting to make it tick differently.

No comments: