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.
- Title: Technical debt: A master class
- Release date: December 2019
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 0636920338017
You might also like
Design Patterns in the Real World, an Analysis-Based Approach
Alan Holub takes coders deep into the reality of Gang-of-Four design patterns, those reusable guides to …
Software Architecture Fundamentals, Second Edition
Being a successful software architect is more than just possessing technical knowledge. It’s about thinking like …
The Manager's Path (Audio Book)
Managing people is difficult wherever you work. But in the tech industry, where management is also …
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …