The Role of Human Expertise in Code Generation
Two huge negatives of undisciplined code generation: code duplication and large batch sizes. Both slow delivery even as individual coders go faster.
This means the human in the loop needs to be expert at coding and actively coding even if they don’t type the code themselves.
They must engage through analysis, planning, execution code block by code block: directing, correcting, interrupting, asking challenging questions.
This produces less code cloning, more incremental test validation, tightly constrained scope, and small commits that create only the desired behavioral changes.
Coding agents and tools are getting more capable. Their training on an internet of code patterns and access to public APIs is superhuman in scale if not quality, but they are general purpose by design.
The need for human craft to address highly contextual problems in complex codebases won’t go away.
Context isn’t just the locally relevant code and high-level business objective. It’s also the builder’s design intent informed by professional judgment, acquired craft, depth of experience informed by institutional knowledge of past decisions, problems, and strengths of the software system, code repos, organization, and stakeholders.
And only the human can retrospect on each session, pragmatically apply those learnings to continuously improve execution for the specific project at hand.