The death of the master builder

Atul Gawande expanded a great piece in the New Yorker from 2007 into The Checklist Manifesto, a short, compelling read about how a simple tool can help humans tackle complexity.

Most of the book explores reducing human error in medicine (spoiler: good check­lists prevent mistakes). But Gawande includes a fasci­nating chapter on the construc­tion industry where he writes:

For most of modern histo­ry… the dominant way people put up build­ings was by… hiring Master Builders who designed them, engineered them, and oversaw construc­tion from start to finish, portico to plumb­ing. Master Builders built Notre Dame, St. Peter’s Basil­ica, and the United States Capitol build­ing. But by the middle of the twentieth century the Master Builders were dead and gone. The variety and sophis­ti­ca­tion of advance­ments in every stage of the construc­tion process had overwhelmed the abili­ties of any individual to master them.

The solution? A combi­na­tion of delega­tion, commu­ni­ca­tion, and checklists.

I see many paral­lels to the computing indus­try. Thirty years ago, Steve Wozniak designed and built a complete computer by hand, the now-legendary Apple I. Today, I carry a computer many orders of magni­tude more complex than the Apple I in my pocket: the iPhone. There’s no one person who can under­stand every single compo­nent of the iPhone and how they work together, let alone assemble one from scratch.

Our solution in both hardware and software is abstrac­tion. Different special­ists and compa­nies handle different compo­nents, and agree on inter­faces between those compo­nents, much like the plumbers and electri­cians and HVAC special­ists collab­o­rate on a skyscraper.

In software, abstrac­tions have evolved at the same speed as the under­lying complex­ity, so that appli­ca­tions like the webserver Nginx and the game Minecraft can still be largely written by one person. The tools just keep improving.

The Apple iPhone SDK is a great example of an excep­tional tool: for (almost) no cost, Apple offers devel­opers a complete coding environ­ment, UI compo­nents to make beautiful inter­faces, a distri­b­u­tion channel, and payment process­ing. It’s never been easier for a team of one or two people to make great software that reaches a large audience.

Moreover, program­mers have created many varieties of automated check­lists to fight against increased complex­ity, from unit tests to full functional tests that click on buttons within an app.

Without such tools the age of the programmer “master builder” would have ended long ago. I’m curious if we’ll ever reach a point where one or two people can no longer create meaning­fully useful applications.

The Checklist Manifesto can be found at Amazon and elsewhere.