Shims, Jigs and Other Woodworking Concepts to Conquer Technical Debt
Joyce Park stashed this in Code
Technical debt is the spectre that haunts the engineering managers of the world. Some solid tips here for when to allow it, how to reduce it, and what its place is in a CTO's strategic toolbox.
Great article, and taught me the difference between a shim and a jig.
In woodworking, the purpose of the shim is better alignment. “The shim is often a small piece of wood that’s inserted when two parts don’t fit together how they should. Sometimes it’s left in the final product to ensure better structure, but it also can be removed after it serves its role,” says Lockhart. “Shimming code is the notion of putting in some code to make two parts work together that might not otherwise. So, if a part of your code doesn’t expose the right interface, you can add a layer that makes it do what you want it to do.”
“More complex than a shim, a jig is a tool built by woodworkers that facilitates — but does not go into — the final product. For example, it could be a device that guides a saw to achieve a complex type of cut,” says Lockhart. “Jigs generally aren’t quick to produce -- there’s as much craftsmanship that goes into the jig as the final product. By avoiding a shortcut on a jig, you end up with a better final product. I once hated the concept of working so hard on anything that wasn’t a final product. But the investment in a jig can be entirely worth it.”
Today I learned that the term "technical debt" comes from Ward Cunningham in 1992:
Cunningham first synthesized the concepts of complex technical development and debt. The coined term gives a name to the sinking feeling that haunts dev teams the world round. He warns of the incremental debt that engineering organizations accrue in each line of effective — but imperfect — code that’s shipped. If it’s paid back promptly with a rewrite, all’s well. But if not, there’s interest on that debt that compounds and collapses on top of the engineering team that owns it.
Enter One Medical Group CTO Kimber Lockhart, the engineering equivalent of your savvy financial planner. Lockhart subscribes to a philosophy — inspired by woodworking — that helps startups judiciously control the creation and accumulation of technical debt. Before her current post, she rose through the ranks quickly over her four-year tenure at Box, where she started as a software engineer and grew to lead teams throughout the application stack. She joined Box after it acquired cloud storage and document sharing startup Increo, which she co-founded and led.
In this exclusive interview, Lockhart deconstructs technical debt and offers woodworking techniques that will better help you manage it. Like other shrewd technical minds on tradeoffs, she shares how to astutely approach shortcuts, especially in engineering environments where the need for both speed and integrity can be paramount.