There’s no shortage of jargon in web development: Agile Methodology, Test-Driven Development, Versioning Control Systems. For those in the know, these terms are essential to developing great work. For most nonprofit teams who have websites they manage…not so much. But there is one web development concept that affects everyone involved with a nonprofit website, whether they’re engineering experts or completely unfamiliar with technology.
We’re talking, of course, about technical debt.
“What’s technical debt,” you say “and more importantly, why should I care?” Put simply, technical debt is an accumulation of outdated, inefficient, and poorly constructed software engineering —everything from how a digital system is architected to the care that’s put into the code that makes it work.
For most nonprofits this means the quality of your CMS and your website—from the platform and plugins to the code and integrity of the data. If you’ve been frustrated managing an old website, congrats, you’ve got first-hand experience living with technical debt! And technical debt matters because the quality of the code in your website and CMS not only impacts the user experience—it has serious impact on how easy or difficult (and expensive) it is to maintain your digital ecosystem.
Think of it like remodeling an existing house. You start with a grand vision for a spectacular space. But once you start opening up the walls, you’re often in for unpleasant surprises. When redesigning a website, technical debt and the unpleasant surprises it brings are hidden behind figurative walls. And the bigger the website, the bigger the problems technical debt can create.
As web engineers, we deal with technical debt all the time. Sometimes it’s minimal and sometimes it’s massive. Whatever the situation, it’s our responsibility to make sure that our client partners understand technical debt so that together we can make good decisions about how to deal with it.
Navigating this technical minefield is filled with that jargon we mentioned. And if there’s one thing we know, it’s that for complex problems to be solved, they need to be accessible if they are to be understood. With this in mind, we’ve collected resources we rely on to help people understand how their digital systems are built—and how they can be built back better. So, if you’re looking for a primer (or even a bit of a deep dive), we hope they shed some light on technical debt and how to avoid it so that the investments your nonprofit makes in web development are also smart investments in your organization’s future.
Wondering what technical debt actually is and why it matters? This detailed primer has answers for you in clear, jargon-free language. With multiple definitions of the term and analogies that drive the concept home, this resource makes it clear what technical debt is, its impact, and how to effectively communicate its importance.
If you’re more of a visual or auditory learner, this brief video delivers a digestible summary of technical debt concepts to help you identify how to recognize it, discuss it, and account for it. It also outlines the “technical debt quadrant,” a popular way to visualize and assess the technical debt that your organization might be facing.
Clunky software architecture, cutting corners, miscommunication—there are countless causes of technical debt—and equally as many negative effects that it has on your nonprofit. This great article by Daria Stolyar provides excellent strategies to help manage technical debt that can save you from much larger (and more expensive) web development problems in the future.
Joel Spolsky is a bit of a celebrity in the software world, in part because of his skill at communicating complex technical concepts with simplicity. Here, he explains the impact of having new teams take over old code—and how to make that process easier and less costly. In summary, when it comes to creating sustainable software, remember this cardinal rule of programming: “It’s harder to read code than to write it.”
Understanding the consequences of technical debt is key to managing it efficiently. This article by Yaniv Preiss succinctly explains some of the most important impacts. Though we may not realize it, prioritizing speed over quality when creating digital projects (though tempting), often leads to bigger problems down the line, such as slower website performance and higher maintenance costs.
Looking for more than an article’s worth of understanding on technical debt issues? This book by Marianne Bellotti dives into the deep end of technical debt, providing abstract principles and tangible strategies for slaying the beast, regardless of the age or state of the system (and without burning through tons of money in the process).
When it comes to technical debt, the struggle is real. But that doesn’t mean it needs to instill fear in the hearts of teams! Positively reframing it as “technical wealth” allows us to shift our understanding towards a beneficial cause. After all, “stronger and more efficient [systems] should be viewed as worthy of up-front investment.”
More Constructively Curated