Those easily offended beware!
I'm _trying_ to give a damn!
Life is sexually transmitted … and fatal.
Tuesday, 21 April 2009

Software Development 101
These days, there seem to be a lot of development, software development, blogs running around the internet. Well, I've been developing software professionally since around 1981, so it seems like I might have a thing or two to contribute to the topic. Or maybe not. I guess that's for you to judge.

The topic admits, and merits, a lot of discussion, especially when you start as far above the ground as a term like Software Engineering. That's like the million foot view. You've heard of the 50,000 foot view? Well, this is like twenty times higher.

Frankly, I hate that term. I do not believe that software engineering exists, as a discipline, much less a research topic. Software development, as pursued in the early twenty-first century, is not engineering. At least not for most values of the term engineering.

If you ask a mechanical engineer or civil engineer to design a physical structure in a certain location for a certain purpose, they know, a priori, that a finite number of physical structures, built using a finite number of physical materials, will yield a usable structure that will not fall in on the assembled masses and destroy them, and will suit the requested purpose to within some acceptable delta.

Software development has in no way reached such cohesive heights, and will not for the foreseeable future. We simply understand too little of the solution domain. We don't even really understand the whirlpool of thought from which the solution domain emerges.

Presented with a request analogous to build the Golden Gate Bridge, the early-twenty-first-century software developer has no choice but to design from First Principles. Bricks, we wished we had bricks. We've got clay and water and straw. And very little concept of stress and force and wind shear and stuff like that. Iron ore and only the vaguest possible notions of how to transform it into steel, or why we might want to do so.

We're reduced to the state of civil engineers in the time of the Holy Roman Empire. We have no theoretical foundation upon which to base our judgement. We subsist with merely anecdotal evidence: that design fell down after two years, the other design survived decades. It seems like a good idea to emulate the latter, rather than the former. That's not engineering.

All text, layout, and photographs within this site are copyright © 2000-2011,, unless otherwise specified, and all rights are reserved. The non-photographic graphics on this site, however, have been collected from a variety of sources, and they remain the property of those sources, and all rights are reserved to those owners.