Software that grows with business

Future software will follow the business more closely. As machine precision increases, we may be able to remove the rigid protective barriers that have forced us to build large and sluggish systems. When implementation is no longer the bottleneck, when the machine can adapt and create solutions with speed, software will be able to move at the same pace as the business itself. Both may evolve together.

Systems that follow reality

In such a world, systems will become more data driven than bound to structure. Logic and modeling will be able to follow the rhythm of the business instead of getting trapped in architectural locks. Code will be free to focus on what actually matters: solving the task, carrying the flows and meeting regulatory requirements without unnecessary weight.

As the machine becomes capable of writing code faster and more consistently than humans, the role of the programmer will shift. Human work will move to where it always belonged: understanding the business, formulating the problem, modeling the data and seeing the consequences of change. The hard part of programming has not been syntax, but judgement.

Human work in a machine shaped time

The difficult part is the ability to reason about flows, risk and about what must stay stable and what must remain flexible. It is the ability to see the whole and to judge when a change is an improvement and when it introduces new dependencies. The machine may be able to create the solution, but it will not understand why the solution should exist.

This is where the programmer’s real value will emerge. It will lie in shaping software structures that are easier to live and grow with. It will lie in keeping systems small, understandable and open to negotiation. It will lie in the effort to let software mirror reality rather than inherit old compromises.

The machine will reduce friction, but direction will still be determined by us. The organizations that move fastest, with technology as support rather than obstacle, will be the ones that succeed. The ability to change a system when the business changes will remain a technical challenge, but it will increasingly also be a cultural challenge, an attitudinal challenge and a question of courage.

Technology that allows change

The hard part of programming is not writing code the machine understands. It is writing code that humans can understand and continue to build upon. It is difficult to work in rigid environments with structures that have aged, and with data forced into schemas that no longer reflect reality. It is difficult to maintain stability in systems with many unintended moving parts. Imperative languages with many variables and internal dependencies make this difficult. Relational databases where entities change without clear control also make it difficult. Few people want to talk about transaction isolation or about how state actually propagates through systems. Yet we still find ourselves building upon technology originally designed for computers with limited memory, technology based on ideas from the 1970s that we take for granted.

Functional and data oriented languages together with append only databases reduce complexity and make systems easier to grow with. They fit a world where change is no longer the exception but the norm.

I often hear people say that we will not need programmers because AI can program. That may be true if we are content with standing still. If we want to move forward and get rid of the large rigid systems that hold us back, and if we want technology to move with the business at the same pace as demand, then we will need more programmers. We will need people who understand the hard parts of programming and who know how data can change without everything collapsing. People who can hold the line when the business becomes truly agile, and in ways very different from what we usually imagine.


All #ai #architecture #art #clojure #csharp #data-structures #database #datomic #emacs #fortran #fsharp #functional #gpt #haskell #history #immutability #java #jit #jmm #lambdas #lisp #pioneers #poetry #programming #programming-philosophy #randomness #rant #reducers #repl #smalltalk #sql #threads #unix #women