Comic

A two-part diagram. On the left, a decay curve of “cost of generating code” against time flattens just above zero, the gap to the axis labelled “the last mile”; below it a mustachioed letter P says “If I can just bring the cost down a bit more, I’m sure we’ll be bug free!” while a queue of scowling bugs stretches to the horizon holding placards reading “the final bug?”, “the final final bug”, “the final final final bug for real” and “the real final bug”. On the right, a pie chart gives about 15% to “generating code” and about 85% to “the rest of software engineering”, itemised beneath.

The Paradoxes of Software Engineering

Mouseover text

We made the 15% free and called it a revolution.

Download

Appears in Where Does Software Engineering Go From Here? (Part 1)

Transcript

Title — THE PARADOXES OF SOFTWARE ENGINEERING.

1) THE COST OF GENERATING CODE IS TRENDING TO ZERO BUT…

A curve labelled COST OF GENERATING CODE decays across TIME and flattens out just above the axis. The stubborn gap between the curve and zero is arrowed: THE LAST MILE.

P, beaming: “If I can just bring the cost down a bit more, I’m sure we’ll be bug free!”

Behind P, a queue of scowling bugs recedes to the horizon, each with a placard: THE FINAL BUG? — THE FINAL FINAL BUG — THE FINAL FINAL FINAL BUG FOR REAL — THE REAL FINAL BUG — and hundreds more, too far away to read.

2) GENERATING CODE IS ONLY A SMALL PART OF THE JOB THAT INCREASES THE OTHER PARTS.

A pie chart: a thin hatched wedge, ~15%, labelled GENERATING CODE. The remainder, ~85%, is THE REST OF SOFTWARE ENGINEERING — itemised below as: figuring out what to build, understanding problems, design & architecture, debugging, integration, testing (lots), deployment, maintenance, people, and why is prod on fire?