|
| 1 | +--- |
| 2 | +date: 2025-02-10 |
| 3 | +author: Charles Chen |
| 4 | +description: AI coding assistants signal the industrialization of the programming profession where production of code changes from a bespoke craft to a high-output process; it's time to rethink the "operators" of the future. |
| 5 | +--- |
| 6 | + |
| 7 | +# AI's Coming Industrialization of Coding |
| 8 | + |
| 9 | +[{{ $doc.author }}]{.post-author } - [{{ $doc.date }}]{.post-date} |
| 10 | + |
| 11 | +[{{ $doc.description }}]{.post-desc} |
| 12 | + |
| 13 | +The age of AI coding assistants is upon us and with this comes an *industrialization* of the profession of programming and software engineering. |
| 14 | + |
| 15 | +Despite many decades of attempts to formalize the act of programming, by and large, it is still more accurate to think of it as a craft rather than an engineering discipline. UML, for example, was intended to be a transformative tool that formalized the craft through detailed descriptions of design, logic, and flow from which entire systems could be generated automatically. But decades on, its practice has largely faded having fallen far from the lofty vision of replacing coding with diagraming. |
| 16 | + |
| 17 | +To this day, it is more accurate to think of each program as bespoke and hand shaped by artisans, skilled in their craft. AI coding assistants -- even in their current fledgling state -- shift this dynamic from bespoke creation by skilled artisans to industrial operators. |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +In a recent article, *[The End of Programming as We Know It](https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/)*, Tim O'Reilly evokes the era of telephone operators when each call had to be manually routed from caller to callee. This manual task was eventually entirely replaced by software and hardware to perform the routing. |
| 22 | + |
| 23 | +::quasar-image{src="/images/oreilly-operators.png" max-height="500px"} |
| 24 | +Screenshot from O'Reilly's op-ed; perhaps not the most accurate take on how AI copilots are going to change coding. |
| 25 | +:: |
| 26 | + |
| 27 | +But perhaps this isn't quite the right model to consider when thinking about how AI copilots will change the craft of coding; a better analogy -- at least in the near future -- might be to consider the industrialization of a different medium: hardware fasteners. |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +Consider the humble, every-day hardware fastener: the nail. Before the industrialization, if one needed fasteners, one needed a skilled blacksmith to transform raw metals into functional hardware through a process of shaping and hammering by hand. |
| 32 | + |
| 33 | +::quasar-image{src="/images/hand-crafted-nails.png" max-height="500px"} |
| 34 | +Prior to industrial manufacturing of fasteners, each one was hand crafted and bespoke. |
| 35 | +:: |
| 36 | + |
| 37 | +Today, the process of creating hardware fasteners is *very different* with machines capable of mass producing nearly identical fasteners. While a skilled blacksmith may produce a few hundred fasteners a day, modern industrial machines can produce *hundreds per minute*. |
| 38 | + |
| 39 | +::quasar-video{src="https://www.youtube.com/embed/woH-m3TRakA" max-height="500px"} |
| 40 | +Modern day industrial manufacturing of hardware fasteners like nails occurs so fast that the process is only discernible when slowed down. |
| 41 | +:: |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +The transition from the craft age to the industrial age of hardware fasteners means that it is no longer necessary to have a skilled blacksmith to produce hundreds of bespoke fasteners a day; *a modern machine can produce the same volume in a fraction of that time*. It follows, then, that to produce fasteners in the modern age, *a hiring process selecting for skilled blacksmiths is probably the wrong choice*; the right choice is to instead hire the "operators" that: |
| 46 | + |
| 47 | +- Oversee these industrial machines, |
| 48 | +- Maintain them as needed, |
| 49 | +- And check to ensure the quality of the output |
| 50 | + |
| 51 | +It's easy to see the parallels to how AI coding copilots will change the profession of software engineering. When an industrial machine can produce lines of code 100x or even *1000x* faster than even the most competent engineers, then it would seem that teams should consider selecting for the right "operators" of these fantastic machines! |
| 52 | + |
| 53 | +As an example, the N-Queens family of leetcode challenges are both considered "hard": |
| 54 | + |
| 55 | +::quasar-image{src="/images/n-queens-rating.png" max-height="500px"} |
| 56 | +Both are considered "hard" problems |
| 57 | +:: |
| 58 | + |
| 59 | +Yet GPT makes short work of this, generating the output hundreds of times faster than even a developer could -- even if the developer already knew the algorithm and solution. |
| 60 | + |
| 61 | +::quasar-video{src="/images/n-queens-solved.mp4" max-height="600px" ratio=1.3} |
| 62 | +Modern day industrial manufacturing of hardware fasteners like nails occurs so fast that the process is only discernible when slowed down. |
| 63 | +:: |
| 64 | + |
| 65 | +This huge disparity is not unlike the gap between a blacksmith and a modern industrial machine producing nails; there's simply no comparison. Is the solution for teams to make even more convoluted and complicated puzzles? To select for the few superhuman engineers that could even solve them? Or perhaps the right direction is to embrace this coming era of industrialized coding? |
| 66 | + |
| 67 | +Companies that wanted to enter the fastener business today surely wouldn't select for skilled blacksmiths; such companies would select for skilled operators and maintainers of the machines that produce the nails and the workers that could ensure the quality of the output. |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +For teams that are in the process of hiring technical talent, solely focusing on an engineer's ability to craft bespoke code is perhaps the wrong way to go about it. In this age of AI coding copilots and the industrialization of the craft of programming, what teams should consider is selecting for a different set of skills that focus more on the safe, efficient operation of that fantastic machinery as well as ensure the quality of its output and fitness for purpose. |
| 72 | + |
| 73 | +Teams that fail to incorporate code reviews into their hiring process will be selecting for *"codesmiths"* in this coming era of industrial code production machines. |
0 commit comments