Artificial intelligence (AI) is transforming software development by rendering code 'write-only' and disposable. This paradigm shift means AI-generated code is often too dense and complex for human comprehension, making comprehensive tests the de facto documentation. Furthermore, AI-driven code becomes more practical to rewrite than to debug, emphasizing its transient nature. The inability of humans to review AI-produced code at scale necessitates automated review processes and AI agents that can self-heal software, proactively fixing issues detected via observability platforms. This evolution fundamentally decouples a developer's creative intent from the technical implementation, urging software engineers to shift their focus towards innovation and problem-solving, rather than the minutiae of code generation or debugging.
Phillip Mortimer's presentation at QCon London posits that artificial intelligence is fundamentally changing the nature of software code, rendering it "write-only" and inherently disposable. He argues that the immense complexity and density characteristic of AI-generated code make it virtually impossible for humans to read and understand effectively. In this new landscape, comprehensive test suites naturally evolve into the primary form of documentation, clearly defining the intended behavior of the system. Moreover, the effort required to debug such intricate code often exceeds the effort to simply regenerate or rewrite it entirely, highlighting its disposable nature. This shift also implies that human intervention in reviewing AI-produced code is becoming untenable at scale, prompting a necessary pivot towards automated review mechanisms and intelligent agents capable of autonomous software healing, guided by robust observability. Ultimately, developers are encouraged to detach from low-level implementation details and re-center their efforts on creative problem-solving and higher-order design.
Drawing parallels with languages like APL and regular expressions, Mortimer defines "write-only code" in the context of AI as software so intricate and densely structured that it resists modification or even basic understanding by anyone beyond its initial creator, and sometimes not even by them. These languages, by design, prioritize extreme power and performance, accepting reduced readability as a trade-off. A critical principle for managing this type of code is that its behavior must be unequivocally defined and understood through extensive test cases, which effectively serve as the primary source of documentation. Developers interact with the code by examining input-output pairs provided by tests, gleaning its functionality without needing to parse the dense internal logic. Coupled with this, the "disposable code" principle suggests that due to the extreme difficulty of debugging write-only code, it is frequently more practical and efficient to discard the existing implementation and regenerate it from scratch, retaining only the validating test suite.
Acknowledging the impracticality of human-led code reviews for the sheer volume of AI-generated code, Mortimer advocates for a paradigm where automated agents perform this crucial function. He proposes integrating AI coding agents into continuous integration (CI) pipelines, allowing them to act as virtual senior developers, providing comments, requesting modifications, or even approving pull requests. Surprisingly, even self-review by these models can be effective when different prompts, instructions, and contexts are applied, demonstrating an adversarial review process that successfully catches bugs. Beyond the pull request workflow, "de-slopify" agents can continuously analyze codebases for common, low-risk issues such as code duplication, unparameterized tests, or obsolete feature flags, automatically initiating fixes. This technological advancement allows for a necessary decoupling of conceptual intent from concrete implementation, thereby making developers more adaptable across various programming languages by leveraging natural language interaction with AI.
Mortimer champions creativity as the new cornerstone of a software developer's role in the age of AI, asserting that AI has largely "solved the implementation problem." He describes creativity as an iterative process, involving steady, incremental improvements over time, emphasizing that it's an accessible pursuit that simply requires engagement. Organizations are encouraged to cultivate environments conducive to creative work by providing ample, uninterrupted time and mental space, minimizing the distractions of routine meetings and deliverables. Counter-intuitively, individual work often proves more productive for generating ideas than traditional brainstorming sessions. Furthermore, judicious application of constraints can paradoxically enhance creativity by focusing exploration within a manageable scope, as illustrated by past experiences in problem-solving under resource limitations. This viewpoint positions the modern developer as a creative builder and problem-solver, with AI acting as a powerful tool that transforms ideas directly into functional software, thus expanding the scope of what a single individual can achieve.
Mortimer elaborates on how to automate code reviews, explaining that a coding agent harness can be invoked as a Continuous Integration (CI) action. This agent, imbued with the 'skill' of a senior developer, can post comments, request changes, or even approve pull requests. He notes that even models reviewing their own output can be effective when given distinct prompts, instructions, or contexts, forming an 'adversarial review process' that proves valuable in pre-deployment bug detection. Additionally, 'de-slopify' agents can operate outside the conventional pull request cycle, regularly scanning the codebase for structural issues or low-effort, low-risk fixes such as duplicated code, unparameterized tests, or unused feature flags.
To foster creativity, Mortimer suggests organizations provide dedicated time and space for individuals to work, free from the daily demands of meetings, deliverables, and demos. He highlights that individual work often yields more good ideas than traditional brainstorming sessions, advocating for scheduling meetings in blocks to create longer periods of focused work. Furthermore, he emphasizes the importance of constraints in creative processes; these boundaries remove infinite possibilities, forcing a concentrated exploration of a bounded problem space, leading to innovative solutions. Creativity, he asserts, is iterative and compounds over time, making uninterrupted time for reflective and creative thinking more critical than ever in an era of rapid engineering velocity.