Change management
Managing change has always been fundamental to creating software.
Now that creating software has become almost unimaginably faster and cheaper than ever before, change management becomes all the more important.
There are various tools, processes and techniques that have been developed to help manage changes in software.
Version control, continuous integration and development (CI/CD), infrastructure as code, GitHub Flow, Trunk-Based Development, Test-Driven Development, Agile, Kanban, plus innumerable other acronyms and ideas that very likely seem indecipherable to the outside observer.
It’s hardly surprising so much time, effort and money has been invested into these, because the value of software is directly correlated to how easy it is to change.
Optionality theory tells us that the easier it is to change software, the more valuable it becomes. So investing in managing change, in whatever form, is one that usually pays you back handsomely, if you survive long enough to enjoy the spoils.
With AI, the entire economic map has been upended. The traditional trade-off of ‘features vs futures’ has now been compressed and warped so much that it can be hard to see where it applies.
Features that once would have been unfeasible to even contemplate for a large team can now be achieved by single developer and a large token budget. Design decisions costing future value that previously would have been almost impossible for a human developer to introduce can now emerge easily.1
The core trade-off remains, but the landscape is drastically different. We’re entering the unknown. Patterns are emerging, and the work to understand the new world we find ourselves in is underway, but we risk ignoring the most important piece as we manage this change - ourselves.
The change management we must be focused on in this moment that which supports us as human beings. At no point in our history as a species have we been so connected, the changes we’re undergoing so rapid and profound, the future so uncertain.
That means taking the lessons from these systems we’ve created for software, and applying them to ourselves.
Check in at safe points (family, friends, a good book) regularly. Have support networks that reflect ourselves back to ourselves, to ensure we’re on the right track. Favour small concrete forward steps over grandiose ambition. Prioritise learning, not accomplishment.
Many of these systems for software were created with humans in mind, designed to be human first. Now is the time to remember this, and remember that like software, we need support to grow and change in unexpected and delightful ways.
Today, let’s give that opportunity to embrace change to ourselves, and to others.
One example I’ve come across in my work was a developer who was relying on AI for writing datetime functions. The AI dutifully created new functions each time it wanted to record a datetime, but this led to multiple implementations and inconsistencies with how the dates were formatted, leading to lots of data headaches down the line.
The irony is a human developer would almost certainly have been too lazy to recreate the same functions over and over, and so would have very quickly standardised a single function and then reused it.

