No More Software Engineers!?!

I just stumbled across this piece in The Atlantic and had a nice chuckle:

An engineer, doing some serious engineering. Like, for real, you guys.

The thrust of Ian Bogost’s article is that today’s software creators don’t deserve the title, because the vast majority of today’s software doesn’t meet the reliability standards we have for, say, bridges or building construction. This is a true statement — the stakes simply aren’t as high — but the terminology problem, by itself, isn’t that serious. Po-tay-to, po-tah-to.

Ironically, the idea of software creators as “engineers” is a misnomer for a much simpler reason:

So, why did we start using these words? Because they made sense at the time when programming culture was forming: the early days of NASA. (Check out Pete McBreen’s Software Craftsmanship for more on that story. It’s fascinating.) The daily efforts of those who worked side-by-side with rocket scientists involved a lot of applied science (a.k.a. engineering), extremely rigorous testing, exhaustive documentation — all things Bogost apparently longs for.

Unfortunately, many of the attitudes and processes used by those teams continue to shape our projects — waterfall, anyone? — though we operate in wildly different contexts. Most software bugs don’t kill astronauts, and those that do slip through can be fixed via automatic updates. Software teams have adapted, and for what it’s worth, engineers have learned new tricks too.

If your team is building high-stakes software, then by all means exercise due caution. (I might need a pacemaker one day.) Not every project needs that level of testing, but every team should stop and reflect upon their goals, the context in which they’re operating, the risks involved, and act accordingly.

This reflection led us to the realization we need craftspeople at Appiphony — those that blend technical quality with both a sense of artful care and pride in completion. That’s what our best work looks like. If that interests you, maybe we can work together.

And don’t get me started on what a “software architect” is supposed to be.