The primary challenge of software development is to build systems that survive change.
People new to programming, and people who don't code for a living but hire those who do, often think of programming as a linear translation of requirements into programming language syntax. This view misguides people into either spending a lot of time getting the requirements or specifications right, or gaining expertise in programming language syntax.
In the context of LLM usage, this view manifests in phrases like 'Human in the loop'. This terminology implies that the primary work of translating requirements into code is performed by the LLM, using the human only for cleanup when the machine fails.
But as any experienced programmer knows, the real challenge is not converting requirements to code, but building systems that survive change.
What makes systems easier to manage as change happens?



