Uncle Bob honored me back in 2008 by asking me to pen the foreword to Clean Code (Prentice-Hall, 2008). Though perhaps better known for writing about programming in-the-large, I was being asked by Bob to reflect on the crucial issues of programming-in-the-small. After all, the greatest mansion eventually reduces to its boards and tiles, and the most ambitious creations in software are built brick upon procedural brick. Small things matter.
In career, as in architecture and coding, there is a close tie between quality in detail and quality of the whole. We can recall a host of cultural saws that recognize and celebrate that relationship. He who is faithful in little is faithful in much. A stitch in time saves nine. Mighty oaks from little acorns grow. An ounce of prevention is worth a pound of cure. The architect Mies van der Rohe tells us that God is in the details.
A paradox lurks here. A career is a grand notion that transcends decades and thousands of individual acts. No one is under any illusion that we can define a precise career destination and arrive there by taking exactly the right footsteps in exactly the right order. Together, however, steps are guided by an underlying compass needle, a broad goal.
Agile principles lie deeper still: the power of choice to change one’s compass heading. We may do so to adapt to temporally short obstacles. More fundamentally, we can choose to redefine the destination. To unthinkingly plod to a stubbornly fixed destination can be a death-march. The mid-20th-century notion of “taking over Daddy’s business” is one archetype of such paths. Agile careers recreate networks of associations every day, because the world changes too much not to.
Pirsig, in Zen and the Art of Motorcycle Maintenance (William Morrow, 1974), offers a metaphor linking the big picture with crucial details. “To strive only for some future goal is shallow. ... [I]t is on the sides of the mountain where things grow. Yet, there are no sides without a top. The top defines the sides.”
If the path up the mountain twists and turns, and if we even switch to another mountain now and then, what is the deep, underlying invariant? Pirsig suggests that it might be caring. Caring plays out in the small things of life. Any destination is the accumulation of thousands of individual acts. So while the compass needle points the way, our daily choices define the path. The destination can be foreseen, but the path is defined only in retrospect.
You can make the grandest claims about being an engineer striving to make the world a better place, but it is a hollow accomplishment if you climb on peoples’ backs to get there. Accomplishment goes deeper than some goal: equally important to what you do is who you are. As Pirsig reminds us: the journey is on the sides of the mountains.
Caring subsumes a host of ethical preconditions to any career. I opened my foreword to Uncle Bob’s book with an anecdote about a Danish licorice box. Our Ga-Jol licorice boxes all come with a witty saying printed on the inside of the lid. On the morning of the day that I was to write the foreword I opened a box to the admonition, Ærlighed i små ting er ikke nogen lille ting. “Honesty in small things is not a small thing.” Keep the big picture before you, but attend to excellence, honesty, integrity, beauty, and joy in the small things of life. Big things will follow.