The Death of Code as Craft
๐ Abstract
The article discusses the impact of Large Language Models (LLMs) on the software development industry, particularly the concept of "code as craft" - the belief that well-crafted, carefully considered code can create better products. The author, a software engineer himself, explores how the rise of LLMs is challenging this long-held ideology and forcing a rethinking of the value and practices of software development.
๐ Q&A
[01] The Death of Code as Craft
1. What is the author's perspective on the "code as craft" ideology that he has long held? The author confesses that he has been a long-time advocate of the "code as craft" ideology, which emphasizes the value of deeply considered, finely honed code. He has evangelized this belief and argued passionately for rigorous coding standards and more time to hone digital craftsmanship.
2. What has caused the author to question this long-held belief? The meteoric rise of Large Language Models (LLMs) has cast a shadow over the concept of code as craft, threatening to eclipse it entirely. The author now believes that code as craft might be a relic of a bygone era.
3. What are the key implications of LLMs on the way we write, design, and think about code? The article explores how LLMs will fundamentally change many of the day-to-day practices and assumptions in software development, such as:
- The need to move away from "convention over configuration" towards more explicit, self-describing code
- The importance of choosing programming languages and ecosystems with a wealth of publicly available code examples for LLMs to learn from
- The potential resurgence of monolithic architectures as LLMs can more easily reason about and manipulate larger, more integrated systems
[02] The Great AI Divide
1. What are the opposing viewpoints between the "stalwarts of craftsmanship" and the "young, ambitious programmers" regarding LLMs? The stalwarts of craftsmanship, like the veteran software architect Dave, are alarmed by the potential for LLMs to produce code of middling quality and introduce instability and unreliability into their codebase. They believe in the value of carefully considered, well-crafted code.
In contrast, young programmers like Abby see LLMs as a liberating force that can automate repetitive tasks and free up developers to be more creative and focus on the big picture, rather than getting bogged down in the details of code beauty.
2. How does the author see this battle for the "soul of code" playing out? The author acknowledges that it's difficult to predict the outcome, as the future impact of LLMs is still uncertain. However, he suggests that the developers and organizations that can adapt and embrace the power of AI while also understanding its limitations will be the ones that thrive in this "Hunger Games of software".
[03] Reconnecting Craft and Business Value
1. How does the author suggest the rise of LLMs will force a rethinking of what we value in code and developers? If an LLM can understand and maintain a function with 50 nested "if" statements as easily as a clean, well-factored one, and they both functionally do the same thing, the author questions whether one has greater business value than the other. This will force a rethinking of what we value in code, potentially shifting the focus from the minutiae of code structure to the high-level design of systems and architectures.
2. What does the author believe will happen to the value of top developers in this new LLM-driven world? The author suggests that the skills that truly great developers bring - creativity, problem-solving, systems thinking - will be more valuable than ever. Companies will compete fiercely for the attention and services of these "star performers", and the gap between the best developers and the rest will widen.
3. What is the author's final conclusion about the future of "code as craft"? The author concludes that while the traditional notion of "code as craft" may become less relevant, the broader idea of craftsmanship will remain valuable, especially as it is applied to higher levels of abstraction in software development. Organizations that nurture and value this kind of craftsmanship will have a significant advantage in the war for talent.