A recent reflection from a software developer highlights a growing debate in the programming community about what it means to be a software engineer in an era increasingly dominated by AI-assisted coding tools. The author critiques the emerging dichotomy that separates "serious" engineers, who prioritize reliable and well-crafted code, from "artisanal" programmers, who are perceived as valuing the coding experience over the final product.
The writer emphasizes a commitment to creating reliable, maintainable, and correct software, achieved through patience, deep engagement with code, and traditional methods rather than relying on large language models (LLMs). This approach, often labeled "artisanal," is contrasted with the industry trend where AI-assisted coding and rapid development practices are becoming the norm.
This shift in terminology and perception raises concerns about the subconscious implications for professional identity. The term "software engineer" is increasingly associated with those who use AI tools, while those who avoid such tools risk being marginalized or seen as less legitimate engineers. The author references a 2021 study by Hillel Wayne, which found that experienced engineers from other fields recognize software engineering as a genuine engineering discipline but note that not all software developers practice engineering in the traditional sense.
The article argues that the current trend favors speed and AI assistance at the expense of reliability and craftsmanship, a reversal from past developer attitudes that valued thoroughness and technical debt management. This cultural change is linked to broader anti-intellectual tendencies within software communities, where complex knowledge and education are sometimes undervalued.
The author calls for a more nuanced vocabulary to describe different approaches to software development, proposing terms like "AI-assisted coding" and "AI-free software engineering" to better capture these distinctions without diminishing the value of careful, manual coding.
Ultimately, the piece urges the community to recognize the importance of care, precision, and human creativity in software development. It advocates for preserving the legitimacy of traditional engineering practices alongside emerging AI tools and encourages open discussions about the values and identities within the profession.