Additive vs Subtractive

Metaphor for future software engineering practice.

Steve Klabnik on 2025-11-17:

A “probably not new to me but I’ve been thinking about it” hot take:

AI-first development processes are significantly different than traditional ones in a similar way to how subtractive manufacturing is different than additive manufacturing

Some of what this means is based on what these forms of manufacturing mean to you.

What I mean is something akin to “traditionally you build up what you want from nothing” and with AI is something closer to “throw some clay on a wheel and start shaping”

This resonates. As some folks have discussed, coding agents require that the engineer in charge have stronger code review skills than code authoring skills, as well as mid-level code architecture skill (where should the abstraction boundaries be, where should logic live?). I'm also getting the impression that the software process itself will become part of what is engineered, because coding agents are low-skill and semi-autonomous — how to break work down into reviewable pieces, how to mitigate lack of testing or other code quality issues, how to coordinate work between agents, etc.

As an example of subtractive manufacturing, the vast majority of knives start their life as bars of steel rather than forged from chunks of metal. It's much more cost-effective for steel foundries to focus on the metallurgy, producing consistent quality of steels with different chemical makeups, for knife makers to purchase those bars in predetermined thicknesses. The knife makers then use bandsaws and abrasive belt grinders to take away and shape the metal blank into the final knife shape.

Within the metaphor, the coding agents would autonomously crank out a full "block" of code at the specific abstraction level. The engineer in charge would then use different agents or other tools to remove unnecessary code from the "block" and shape specific parts into a functional and maintainable application.