Time traveler? The Future of Computing: Logic or Biology

I was watching one of the Software Should Work talks and the guy mentioned the PDF below which I thought was great and also made me wonder if he traveled 20 years into the future and then back to 2003 to write it.

I would recommend reading it before continuing this post.

Text of a talk given at Christian Albrechts University, Kiel on 11 July 2003 by Leslie Lamport

It also reminded me of this VSauce video where they do a human version of the Skinner box experiment.

I’ve been building software for 20 years and I have seen people do things with software/computers in certain ways or certain steps because they believed that was the way to get it do what they actually want. In reality, they were often just working around a process that was not working often due to a bug or just bad design. They also won’t report it because they don’t believe anything is actually wrong… it’s just how to get the magic box to do the thing…

In the early 2000’s we would often get this exact error at LAN parties with counter strike:

… to this day I don’t know what was the actual cause, but we figured out that if someone on the network did not have the same subnet as the rest of us then we would ALL get this error. We would then go through every machine to find the offender, change the subnet to appease the network gods, and then we get no more error and we start tapping some heads… until someone new show up and plug into the network without having the correct subnet and the ritual starts again. Good times…

But what about developers? Surely we don’t do that… right? Well today we can point to…


… as a very obvious example of this where many of the “AI” bros on twitter are not that different from shaman as they have the magic spell (MD files) that makes the “AI” work… and you can pay them for it so you don’t get left behind, obviously.

I think that since we are all still just human that we, developers, have been doing it and that it’s been wider spread than we would like to believe for well over 2 decades at this point.

In my opinion we have a pretty big problem in tech where there exists a worrying amount of belief rather than logic and although “AI” is an obvious example to point to, it does show up all over. The company I work at decided about 2 years ago that they will rewrite the old legacy winforms app using DotNet Blazor and it should take them about 1 year. I remember one of the devs say that “it’s a no-brainer” and the others all agreeing, but here we are 2 years later and it’s really not going well. I’m not directly involved in that team, but I do see most of the pull requests and there’s been a few examples where they’ve had to fix the same UI element like 7-8 times and quite a few PRs would get like 10 new commits only to end up abandoned. In my opinion stuff like that are pretty significant red flags that something is not right.

Other red flags are:
Devs or product owners saying that user “just need to do it the right way”…
Clients refusing updates because we break everything every time…
Parts of code the devs actually fear and don’t want to touch because it blows up in our faces every time we do…
Knowingly making bad design choices just so we can minimized our changes and hopefully avoid breaking who knows how many things we might not even know exists in the code base…
DB changes are too risky, but adding 100s if not 1000s of lines of code to make the app work and do things it’s not designed to do and the DB structure does not support at all is somehow not risky…??

Imagine the construction industry worked like this…

Sadly whenever devs who question how we do things try and talk about it and share ways to try and do things differently, my self included, they hit a brick wall with pushback like “it’s not industry standard”, “that’s not best practice”, or my personal favorite “that’s anti-pattern” which I’m pretty sure is a developer’s way of calling different programming ideas blasphemous. I know… it’s sound ridiculous, but that’s only because it is.

I for one think that we are very much in the era of building biological systems we don’t understand and is glued together with hopes and prayers and we have been probably for at least 2 decades at this point. Leslie Lamport did that talk in 2003, but the signs must already have been everywhere for him to have made the observation. We jump on one hype train after another and never question any of it. Why?… because we’ve all been taught that someone else already solved these problems and we should not reinvent the wheel… right? Except, no other industry works like that… including those making wheels.

When it comes to HOW we build software, we are very much stuck in the age of steam and any ideas that goes against the holy book of S.O.L.I.D design principles is considered blasphemous.

I know, I know… it sounds ridiculous, but that’s only because it is.

1 Like

Lamport is a phenomenal computer scientist imo, it’s a shame his work isn’t taught more…

I am reminded of Programming Sucks , it goes into some more stupidity in software design if you want to have a laugh

1 Like