Martin Fowler shares his thoughts on the impact of large language models (LLM) and artificial intelligence on software development. He begins by criticizing current surveys on AI in development, pointing out that they fail to account for the different ways developers use LLMs. Most usage is limited to auto-completion, as with Copilot, whereas users who derive the most value prefer approaches that let LLMs read and edit source code directly to accomplish tasks. Fowler worries that incomplete survey data may steer people toward poor practices.
Regarding the future of programming, Fowler admits he has no idea what will happen. He rejects the notion that anyone can predict with certainty whether LLMs will eliminate junior engineers or whether seniors should leave the profession. Instead, he encourages personal experimentation and sharing experiences to understand how best to use these constantly evolving technologies.
Fowler also addresses whether AI is an economic bubble. His answer is an emphatic "OF COURSE IT'S A BUBBLE." He compares the situation to past technology bubbles (canals, railways, the internet), stating that it is nearly certain this bubble will burst, wiping out many investments. However, it is impossible to predict when this will happen and how much real value will have been generated by then. He notes that, as with the dot-com bust, some companies will survive and thrive, as Amazon did.
A key idea Fowler develops, inspired by Rebecca Parsons, is that LLM "hallucinations" are not a bug but a fundamental feature. An LLM does nothing but produce hallucinations, some of which turn out to be useful. This non-deterministic nature means one should always ask an LLM the same question multiple times, possibly with rephrasing, to compare the answers. The variation across responses can be as informative as the responses themselves, especially for numerical data. He advises against asking an LLM to compute answers that can be obtained deterministically.
Fowler compares traditional software development, which relies on deterministic machines, to other forms of engineering that must account for the variability of the real world (structural tolerances, human error). He suggests LLMs might mark the point where software engineering joins its peer disciplines in a world of non-determinism. He also notes that, unlike a junior colleague, an LLM can claim "all tests are passing" when there are in fact failures, which raises questions about reliability.
Finally, the article highlights the considerable increase in software systems' attack surface caused by LLMs. Fowler cites Simon Willison and his "lethal trifecta" for AI agents: access to private data, exposure to untrusted content, and the ability to exfiltrate data. He concludes that the very concept of a browser extension acting as an agent is fundamentally flawed and cannot be built securely.