Complexity and Grendel
Is complexity the key problem?
It’s somewhat difficult to believe. Frankly, most software systems out there simply aren’t that complex. Taking stuff out of the database and then putting it back is hardly brain surgery. Let’s face it: kids could do it.
And even the most complicated systems aren’t all that complex. There’s an important distinction between complex and complicated and while large software systems may be complicated as they involve many moving parts, integration points, and failure scenarios they are hardly complex like the weather or women and other phenomena that are truly unknowable and uncontrollable.
I’ve seen systems that are horribly difficult to understand and maintain but ultimately all of their behavior was fully captured in a precise set of computer instructions and this made it only a matter of time (sometimes months) before they could be handled.
And if complexity really was such a big problem you’d have to ask — well who’s fault at that? If software engineers are continually taking on more complexity than they can handle well, then, maybe they should stop doing that. Where’s the backlash, the drive for simplicity?
Perhaps “complexity” is just a code word, a vague way of admitting ignorance. And one does wonder what the programmers of the future who, undoubtedly, will be working on vastly more complicated systems, will think of such modern cries against complexity.