Software is evolving. It remains to be seen whether intelligence has been created artificially through neural networks yet, but there is nothing theoretically that could prevent it from happening.
Thinking of software as a fixed system, a static machine that we tinker with, tweak, and optimise is no longer sufficient in a world where that machine can think for itself.1
Yesterday, I proposed an alternative to software engineering: software cultivation.
To me, the idea of software cultivation captures the organic nature of software. It is not something that can simply be built.
It grows. It changes. It is, as the name implies, softer - more fluid than the physical world of bricks and mortar, blueprints and plans.
It must also sometimes be pruned, razed, cleared, to make space for something better.
It is thus a creative act. I believe cultivation captures this essence. It also captures the hard work, the delicate touch that is required to achieve the desired yield of value from the software.
It also reflects the essentially human endeavour of creating software. Even if partnering with AI such that none of the code is actually written, deployed or maintained by you, there is still a decision to be made, a choice to create, that starts the process moving.
But software cultivation may by itself not be enough in the future. An alternative name I considered was software economist, to reflect the changing nature of what much of the activity related to software is likely to be in the future. I’ll explore this further tomorrow.
It was insufficient well before AI - the rising traction and importance of observability tools is closely tied to the fact that our software systems have become so complex as to become emergent systems, rather than static ones.