This post originally appeared on LinkedIn.
Language is the bottleneck. We need to be able to understand each other and ourselves if we want good things, or if we want other people to provide good things for us.
Sometimes we need to express ourselves very precisely, effectively, and efficiently. That makes mathematical modeling the bottleneck. Mathematical notation can help us to make a lot of progress on that.
Computers might help us to solve problems by applying mathematical functions. It takes time for someone to translate those into machine code. Creating the machine code is the bottleneck. So let’s apply compilers and high-level languages that closely resemble mathematical notation and English or other natural languages.
Now programming is the bottleneck. It takes time to express things in a high-level language so the compiler can turn that into code that can run on a machine.
But wait… we have to get clear on what the program should do, and how it should be constructed to fulfill people’s needs and desires and requirements and preferences. But machinery can handle that too; all we need to do is review. Review is the bottleneck. So let’s have the machine review and then build the program. Goodbye bottleneck!
Now we have the program. But the code and the artifacts that no one sees are produced in non-deterministic ways. Outcomes are uncertain and somewhat unpredictable. Is the program correct? We must understand the relationships between the built program, the design, and people’s needs and desires. Does it fit?
So we need to test—evaluate the outcomes by learning about them through experiencing, exploring, and experimenting. Testing is the bottleneck. Dammit, we need to get rid of that too.
…unless we look at all this in a different way.
Let’s start here.
I want to say this to all the tech bros, the cryptocurrency geeks, the non-critical AI fanboys, the Startup Founders, the CxOs, the teenage brains that mistake the warnings in science fiction for Great Ideas About What To Do Next:
Human civilisation has lasted for ten thousand years without your stupid new app—or even your profoundly useful one. We can all wait a week, or a month, or a few years until you can design, develop, test, and deploy it safely. We’ll survive.
There is no bottleneck on reality itself. The world is what it is. Nature is as nature does. People are as people are. But there is a difference between the world most of us want and the world you might wish for; between the world that you fantasise about and the damaged world that could emerge if all your wishes were granted.
The bottleneck is a constraint on the differences between those worlds. It’s the same kind of bottleneck between real, physical, human, social worlds and the fantasy worlds desired by a child having a tantrum.
It’s the bottleneck between recklessness and consequences at every stage. That is exactly the kind of bottleneck we all need to preserve if we actually care about other people and our societies.
Responsibility is the bottleneck.