Systems
Code became cheaper. Good systems did not
Easier code production shifts value towards understanding the problem, architecture, verification, and responsibility.
Producing a working fragment of code has become easier than ever. This is good news. More people can test ideas, automate their own work, and build tools that previously required an entire team.
It is easy, however, to confuse the speed of producing code with the speed of building a good system.
Code is only one of the materials
A system must answer questions that a code generator does not remove. What are we actually trying to change? How will we recognise a correct outcome? Who is responsible for failure? How will the solution behave under load, after requirements change, or after the person who knew every exception has left?
As code becomes cheaper, mistaken assumptions become more expensive. We can build the wrong thing much faster, distribute it more widely, and conceal it behind a larger number of apparently correct tests.
The source of advantage is moving
A good engineer’s advantage will less often be the number of characters written without assistance. It will be the ability to decompose a problem, define system boundaries, choose the right trade-offs, and produce evidence that the solution behaves as intended.
The same applies to technology leaders. Their role is not to protect an old ritual of software production. It is to use new tools without losing decision quality, safety, or responsibility.
Programming has become more accessible. Building things that deserve trust remains a discipline.