Software Falls Apart

“Frigo, Beer Pub, Shinjuku, Tokyo” by shinyai

If you know me, you know I hate meetings. But at two straight shops now I have encountered weekly “tech meetings”, where the only thing missing is pints of beer and a dart board.

Those are fine.

At our latest such chat, a young tiger asked how, in a time of encroaching uncertainty, facing the inexorable decay of entropy, us old IT farts could hope to cling to capturing broken data in our rigid SQL tables and columns.

Yeats was among us.

The falcon cannot hear the falconer;

Things fall apart; the centre cannot hold;

Mere anarchy is loosed upon the world,…

I was implicitly rejecting his premise. When cornered, always reject premises; the argument will devolve endlessly until our turn at darts comes up again.

Bowling alley software, I countered, has nothing fuzzy about it. Pins, lanes, games, shoe rentals, leagues, Monday discounts.

Entropy! Where is thy sting?

Then I turned the question back on our young tiger, another good tactic when stumped ourselves: If you had a marvelous, fuzzy-friendly, entropy-ready database to pull from, what output would your app produce?

The blood-dimmed tide is loosed, and everywhere

The ceremony of innocence is drowned;

The best lack all conviction, while the worst

Are full of passionate intensity.

So in my defensiveness I took all the fun out of what could have been a rollicking good discussion, albeit without the beers.

How to program

Feeling bad about that, I have been thinking about how I might have responded more helpfully, and I have come back to the bowling alley, and what we all do when we do IT.

We do indeed impose order on organizations and their practices, precisely so we can use rigid tables and columns, in turn because tables and columns are all we know how to program.

And our organizations benefit from this bullying. Not just because, hey, now we can automate all your tedious information processing. Along the way we also root out legacy ad hoc practices that do not quite work, but which are so old they have become part of the woodwork. Case in point.

If the users will not come to the solution, the solution will go to…

That said, the experienced developer knows that bullying is not always an option. Organizations cannot always change ancient practices. At such times, Einstein’s wisdom shapes the software we write:

“Make everything as simple as possible, but no simpler.”

Entropy is fun to contemplate, but it is true only as an average of all molecular motion. The very nature of building is to produce local islands of useful order from disorder. A programmer asked to automate a task will bedevil their user with question after question looking for invariant rules and, yes, looking for the tables and columns.

“We have an ELSE to code.”

Uncertainty anyway

Wait. What if we cannot tie things down so neatly? What if the rules and tables and columns elude us?

Automate what we can, leave the rest to a human exert peripheral device. Einstein still holds: automate no more than can be automated.

Many come to grief pursuing the White Whale of full automation, when a simple automation of some of a process would let a human expert handle the rest at a glance.

Do not be that Ahab. Until Google or Linus Torvald figure out how to compute the fuzzy, tap human intelligence in otherwise automated solutions.

Developer and student of reactive systems. Lisper. Aging lion. Some assembly required.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store