The Genie and the Damped System
While we’re all thinking about LLMs and Coding Genies, here’s something to think about. Taken as a whole, the process of software development is a system. Not just a system, but a system with feedback loops. Make a change, see what happens, react to the change. The OODA loop.
As an aerospace engineer who got started dealing with computer-controlled flight dynamics and keeping them stable despite dealing with human pilots who insisted on overcontrolling things and getting into Pilot Induced Oscillations (PIO), I’m very familiar with different kinds of damping modes. Depending on how you like to name things, there are 3 or 4 basic classes of damping. The different classes describe how a system responds to a single disturbance.
Overdamped
In an overdamped system, the system eventually returns to (approximately) its initial condition. Slowly getting closer and closer. But it takes a long time. The more overdamped, the longer it takes.
Underdamped
In an underdamped system the system will probably return to its initial condition, but again, it takes a long time. Unlike the overdamped system though, the underdamped system goes back and forth, like a pendulum. It starts with an offset, goes back to where it was, then keeps going. Eventually it slows and swings back, continually crossing where it started and again, eventually returning.
Critically damped
The critically damped system is somewhere between the over and under damped. Done right, it quickly approaches the initial state and then settles back into place. It might overshoot once, but not twice. Either way, it gets back to where it started and stays there much more quickly than either the overdamped or underdamped system.
Unstable
Finally, there’s the unstable system. That’s what happens when you take an underdamped system and add in some more inputs. At the wrong time or in the wrong direction. That’s what PIO is. The system is somewhat underdamped, and the pilot makes it worse. Instead of settling out, the oscillations get bigger. In the aviation world, the best thing you can do at that point is take your hands off the controls. All general aviation aircraft are generally stable, so when the get unstable letting go will sort things out. Note, this does not mean they fly themselves or can correct for problems, just that, within their performance envelope, without excessive inputs, they tend to fly straight and level.
Now that’s all interesting, but what has that got to do with LLMs and Genies? Consider this.
Software development is a feedback system
You put in some code. The compiler and your tests give you some feedback. You make changes and do it again. You deploy your code or otherwise put it into use. You get some more feedback and make more changes. Over time we have, individually, and collectively, figured out the right amount of friction and delay to to keep the system well damped, but not overdamped.
Sure, sometimes we take too long to react and things are overdamped, or we don’t react fast enough and things are underdamped. Sometimes we even over-react, like during an outage and make things worse (unstable). But generally, we’ve figured out, for ourselves and our teams, what works for us.
Enter the Genie
Now add the Genie (LLM) to the system. You’ve just removed a lot of the friction, the damping from the system. Instead of it taking some amount of time to write the code, the Genie does it for you and does it quickly. The genie makes it possible for people without experience in the system to change things. Even less friction. Think about what happens when you remove friction from a mechanical system. It very quickly becomes underdamped. And at that point tiny inputs can make it unstable. But the genie doesn’t do slow, small changes. What was critically damped (or even overdamped) is now underdamped.
Which means, at a systems level, the results are unsurprising. Rapid change at the beginning. Large oscillations pretty soon after. A much higher tendency towards unstable responses.
So what do you do? You do what any control systems engineer does. You start by observing. You find out what the behavior drivers are, and what their frequency is. You see how that frequency matches (or doesn’t) to the response curve of the overall system. And then you work to bring the two into harmony. You add a bit of delay here. A bit of friction there. Maybe some artificial damping in certain conditions.
You control the system instead of letting the system control you. Because that’s what engineers do. You understand the system, and you work with it.

