Hey folks, welcome to the positive AI corner of the internet and how to survive the coming AI disruption!
AI IS ABOUT CONTROL, as described in my last article about Vibe Coding. Developers have been giving up control in the past decades to the machine. They gave up control to the C-Compiler, which writes machine code for them. They gave up control to the virtual machine, which does memory allocation for them. They gave up control to the IDE, which does refactoring and code completion for them, and they no longer type every line of code themselves. Giving up control is not something new that come with AI. Giving up control in the past made developers more productive.
While developers were giving up tiny portions of control in the past, in the age of AI this is the guiding principle. AI is about giving up control. The biggest leap developers need to make next, is giving up control of source code. They can do this, they gave up control of machine code, and control of memory management. Giving up control over source code is just one more step. This will reap huge benefits.
Control has been a theme of my engineering management job for the last decades. I have been telling managers, especially product managers, for decades, “the decisions you do not make, are done by developers”. The control you give up, does not evaporate. Everything that has not been decided, needs to be decided in source code. Control can be seen as an underlying principle of software development over the last several decades.
The bag of decisions in software development form a hierarchy of control. There are many levels of control by decision here:
Control the color of a button.
Control the position of a button.
Control the fields of a form.
Control the layout of a form.
Control the layout of a page.
Control the flow of the website.
Control the features of the app.
Control the business logic.
Control the business goals.
Control the business strategy.
Control the business vision.
Control how time is spent.
The staircase of control goes from controlling small things like the color of a button to controlling big things like business goals and vision. Each time we want to control something, we can't use an AI to do the task. The AI can control the things one level down. When we want to control the page, the AI can control the form. When we control the position of a button, the AI can control the color. When we control the vision, AI can control the strategy.
This way the benefits from AI are bigger the more control we give up. If we let the AI decide the business strategy, the AI has a much higher impact and benefit than when we let the AI decide the color of a button.
The opposite is true too. The more you want to control, the less you can reap benefits from AI. In my last article about Ambdahl's Law, I wrote how speeding up development is limited by the discussion with product managers. The faster you finish writing your code, the earlier you need to talk again to the product manager. Code that has been written in a day before, now might be written during the standup with Claude Code - how often you need to talk to the "decision maker" increases exponentially. Talking to the product manager is nothing else than relinquishing control to the product manager - and the control of the product manager is a limiting bottleneck. The need for control by the PM limits all productivity gains for the developer.
Eureka! We can formulate this as a law:
"Schmidts's Law of AI: Control is your bottleneck."
This connects perfectly with the Theory of Constraints (ToC), as developed by Goldratt in "The Goal". In any system, there is always one constraint ("bottleneck") that limits the entire system's performance. In the age of AI, that constraint is increasingly our wish to control aspects of development. When we apply ToC thinking to AI adoption, we see that our insistence on controlling certain aspects of development becomes the bottleneck that prevents us from achieving exponential productivity gains. Just as a factory floor must identify and elevate its constraints to improve throughput, developers and organizations must identify where their need for control is limiting AI's potential. By systematically relinquishing control in areas where AI excels, we remove these constraints and unlock new levels of productivity.
The most successful businesses (and developers) in the AI era will be those who recognize when control itself has become their primary constraint and have the courage to let go.