Every once in awhile I read something that demonstrates, at some length, how crazy and dysfunctional the world of computer software is. Not hardware, but software. Hardware World may not in fact be paradise, but, compared to Software World, it might as well be.
The first such text I read is a book called The Mythical-Man Month by Frederick Brooks. It was first published in 1975 and I read it within a year or three of publication at the urging of my friend, and fellow student, Bill Doyle. Brooks told stories of how, when time was running out on a project, adding more people to the team just made things even worse. The general message I took from the book is something like we really don't know jack about developing software.
Every few years, or anyhow, at least once a decade since then, that message would be driven home by some other text or by discussions with pros in the business. While this goes on I'm also hearing about how we're getting closer to developing intelligent computers. I wonder: will they be intelligent enough not to write crappy software?
I'm currently nearing the end of another such text. It's called What is Code? and it's by Paul Ford in BusinessWeek, at least I think that's the name of the publication. It's one of those Bloomberg imprints. It's quite different from Brooks' book.
Which is appropriate, as the world of practical computing is different from what it was back then. Back then it was still mainframes and minis, though personal computers were about to be hatched. Now days hardware almost doesn't matter; it's all the web and the cloud. And Ford's text is much more along the lines of "how works software" than Brooks' "we don't know how to manage the beast". But still, the latter message gets through. Software is still a problem and problematic.
Meanwhile, the other guys are still promising us intelligent computers, even super-intelligent computers. It's not clear to me just how we're going to do this. Can we really build intelligent computers from crappy software? Oh, sure, once the software's passed into the land to super-intelligence, it'll be able to clean itself up. But how do we get there?
And yet IBM's Watson wasn't possible back in Brooks' day, nor (sorta' useful) machine translation for everyone, nor self-parking cars. So crappy software isn't necessarily an impediment to the development of new areas of computational cleverness.
Mostly what I think is that it's a brave new world and we don't understand it very well.