The classical mindset treated software as architecture: plan precisely, construct carefully, enforce correctness locally, and trust composition to scale that correctness up. This worked when systems were small and failure modes were simple. But past a certain size, precision becomes brittle. Correctness leaks away as components interact in unpredictable, adversarial, or simply chaotic ways. Large-scale correctness only ever appears in highly constrained domains (safety-critical systems, avionics, compilers) or in heroic multi-decade efforts that normal teams can’t replicate.
Agentic systems push this further. When behaviour is emergent, adaptive, or probabilistic, the fantasy of clean modular correctness collapses entirely. What replaces it is a biological metaphor: gardening.
A garden is cultivated, not constructed. It is system-level stewardship rather than piecewise perfection. Instead of pursuing immaculate order, you accept that mess is inherent and that the work is cyclical: weeding, pruning, re-balancing, re-seeding. You shape tendencies rather than control outcomes. You assume entropy is active everywhere and that interventions must also happen everywhere: micro-level tweaks, macro-level redesigns, periodic controlled burns.
Early signals of this shift were already visible. Erlang’s supervision trees and “let it crash” reframed failure from an exceptional state to an expected ecological phenomenon. Chaos Monkey and chaos engineering embraced adversarial randomness as a first-class design tool. “Self-healing” clusters normalised systems that regenerate instead of obey. Even the old cathedral-vs-bazaar debate hinted at this: planned order vs cultivated emergence.
The agentic era turns the earlier hints into the default posture. You no longer aim for perfect components but for resilient ecosystems. You seed many agents, observe what thrives, cut back what misbehaves and grows wild, guide the canopy and soil. The work becomes ecological: stewarding tendencies rather than dictating behaviour; the goal is not to eliminate complexity but to channel it. Entropy is active everywhere, so intervention must be multi-scale too — micro-level nudges, macro-level reshaping, occasional controlled burns.
This doesn’t diminish the value of types, tests, contracts, or other forms of static and dynamic assurance. If anything, they become more important: not because they guarantee correctness, but because they provide the fences, trellises, and irrigation channels that shape growth. They define the gradients within which emergent behaviour can roam safely, providing local stability and directional force in an environment where behaviour is fluid and distributed. Continuous sensing — telemetry, evaluators, online optimisation — complements this by giving you the gardener’s eye: early signs of rot, overcrowding, parasitism, or runaway vines.
The developer's role shifts accordingly: less craftsman, more gardener; less artisan-architect, more horticulturalist; less concerned with shaping every leaf and more with ensuring the whole biome stays healthy, productive, and capable of surprising you in beneficial ways.
In other words, the discipline becomes ecological rather than architectural: cultivate vitality, channel emergence, and keep the whole biome pointed roughly in the right direction.