Technical debt is a funny thing. While the term attempts to make an analogy with financial debt, technical debt and financial debt have nothing in common. Instead, it’s the name we give engineering decisions we disagree with.
Robert "r0ml" Lefkowitz (Retired) offers an overview of technical debt, explaining how to recognize it, how to prevent or reduce it, and how come we see so much of it. Many so-called best practices today, are, in fact, technical debt factories. The reason we have so much of it is that we eagerly create it at earlier stages of an organization and fail to alter our approaches soon enough when the organization matures, and these early practices which were “investment” become “debt.” Robert discusses many of these practices.
One of these is microservices—often undertaken as a technique for increasing agility, at the cost of manufacturing tech debt. Robert details common methods for avoiding increasing the tech debt burden by deploying microservices.
Robert explores two primary themes that apply to multiple software methods. The first is the principle of parsimony, which dates back to the ancient Greeks but was popularized more recently by the 12th century theologian William of Ockham. The second theme is the doctrine of immutability. This idea, too, flowered during the Middle Ages and is enjoying a renaissance today with the rise of functional programming languages. Robert dives into both of these ideas as they apply to data types, programming languages, network protocols, software dependencies, configuration management, and more.
This session was recorded at the 2019 O'Reilly Software Architecture Conference in New York.