WRITINGS

The Dialectic Approach to Software Development

Nov 11, 2021

Software IS the dialogue among humans and machines.

If machines were half the conversation partners of humans, making software wouldn’t be so arduous.

But humans must first learn how to converse with machines. Machines have incredibly unsophisticated protocols, languages, and contexts to decipher meaning.

You must speak to them in the very precise language of mathematics and logic.

They don’t comprehend nuance. Neither can they learn nuance.

They’re incredibly inhuman and incredibly prone to acting inhumanely.

It turns out that communicating with a computer as an intermediary also tends toward inhumane.

Though nobility can be carefully drawn out from any human, computers haven’t tended to be the best means of achieving that end.

Some might say technology is neutral, and that is true philosophically. But practically, we are shaped by our tools: sociologically and even physically.

Software is dialogue and also a medium of dialogue.

To make good software, you have to get extraordinarily clear on what conversation you’re trying to have.

And if you’re making good software for someone else, you have to dialogue with that other person before dialoging with the computer. And you have to make it extraordinarily clear what the computer can do. So there’s at least three conversationalists, and one is a super dumb machine.

And if you’re making good software for multiple someones (i.e. a client and an end user), you now have at least four conversationalists, and the delivered software will be the dialogue among those in conversation. And always, always, there is the insanely stupid machine that has to be given just all kinds of help to translate the dialogue into something it can compute.

And we must remember, despite all the improvements in the GUI or AI, computing is all that’s going on.

Now, there’s a lot to compute. I’m not saying it’s not marvelous to have all this computing power. And I’m grateful to spend my days thinking of how we might better translate computing into human and vice versa.

But computational power and access to information are no longer the limiting factors for many. (I recognize we still have much work to do to bring the internet to every human, and to ensure that internet is not censored by technocrats or big tech.)

Instead, we are limited by:

Being the type of noble beings who aspire toward the highest heights and are unwilling to attain them through ignoble means - we’ve not figured that out yet.

Being free from fear, bigotry, hatred, envy, lust, pride, greed, and the many vices we invent - we haven’t figured that out yet.

And the injustices inherent to any society go unrighted.

And the bored entertain themselves to death.

And the powerful entrench themselves.

And the earth groans.

If we were righteous, we might technologize rightly.

But we have the hierarchies wrong. The lesser things become our everything, and we become lesser in our worship of these lesser gods.