Glass Maze Every jumbled pile of person

Posted
12 October 2009

Tagged
Geekery

Programming and Fadishness

From a sobering assessment of the state of software quality, by Les Hatton:

So how good is good? In computer science, we regrettably operate in a largely measurement free zone. Very few experiments are done and even fewer results are published. This has been noted a number of times over the years by researchers such as Walter Tichy in Karlsruhe. As a result, software development isn’t an engineering industry, it is a fashion industry populated by unquantifiable statements and driven by marketing needs. We are exhorted to develop using Java Beans or OO this or UML that and that this will fulfil our wildest dreams. It is arrant nonsense. Such experiments as we have managed to carry out suggest that by far the biggest quality factor in software is the ability of the person developing it.

This was written in 2006, but I don’t imagine that much has changed since then. In fact, I’d be willing to wager that things have gotten worse.

And the damage caused by the faddishness of the software industry doesn’t stop at poor-quality programs. You’ll find its most harmful effects in the prevalence of codebase dead zones: petrified subsystems, usually buried deep in the weft of the product, that rely on some completely defunct technology.

We’ve all encountered these things: dark places on the map that were written in a language, or using a tool, whose popularity flared briefly and died quickly and no one knows how to use anymore and everyone is afraid to touch. The mitigation strategy for these kinds of dead zones is, almost literally, prayer — hope nothing goes wrong, and, if it does, scramble madly.


2 Comments

Posted by
Tim
15 October 2009 @ 10am

I agree. But I also feel you could apply this complaint to a lot of the world today. “The ability of the person developing it” goes for just about anything. Take American cars, for instance.


Posted by
lapsed.cannibal
15 October 2009 @ 8pm

Yeah, no question. I think what separates software engineering from any other kind of engineering, though, is the insubstantial nature of our infrastructure. Whether you’re building a car or a bridge or whatever, you’re dealing with physical laws that basically don’t change. With software, human beings are responsible for the various layers of fundament that undergird any program: whether it be an instruction set, or a higher-level language, or a web framework, or an ORM mechanism, or whatever. The fact that it’s so (relatively) easy to create one of these — ie, to change the fundamental laws of the universe — and that the industry is so susceptible to the associated fads, is what makes this particular problem so much worse in our industry.


Leave a Comment