Christmas Ham Story

Here's a great story to get you thinking about how legacy code can build up (I can't find who originally told it). At Christmas, a father prepares a Christmas ham. He cuts of both ends and puts it in the baking pan. His child asks why he cut off the two ends, wasting the meat. The father says it's how he learned it from this mother. Later, he wonders about his child's question and calls his mother to ask the same question. She can't answer however, and tells him to call his grandmother, whom she learned it…

0 Comments

5 Types of Technical Debt And Their Solution

Technical debt and legacy code are closely related but not exactly the same. Legacy code is a derogatory term to indicate old code that is no longer well-maintained. Technical debt, on the other hand, is debt accumulated in order to release software. It can be more than just your code. Let's take a look at the different kinds of technical debt that we can accumulate. Code Debt Code debt is the most obvious form of technical debt. It's what matches best with the term "legacy code". It's code that still serves a purpose but developers don't like…

0 Comments

Avoiding Technical Debt: Don’t Code

I've written about avoiding technical debt before, and probably will do so more in the future. There's just so many ways to avoid it or at least limit its consequences. At the very least, you should be writing automated tests. But let's look at another way to avoid technical debt: no writing the code at all. Am I joking? Not at all! Technical debt inevitably starts accumulating early on in a project. Either corners need to be cut, or situations change. This leads to different kinds of technical debt, but it's inevitable that your software will end…

0 Comments

What Does the Test Pyramid Mean?

I've written about the test pyramid before. It provides a guideline on the type of tests you need and how many. But recently, I got in a conversation on what the test pyramid actually means. Is it about code coverage? Or is it purely about the number of tests? A Brief Recap The test pyramid gives us guidance on how our test suite should look like. We should have less tests that use many components and more that test only one or two components: The reason we follow this guidline is that the tests higher up the…

0 Comments

Disaster-Release Ratio: What Is It And What Can It Mean for You?

I was recently on the Tiny DevOps podcast and mentioned the Disaster-Release Ratio metric. And although I've written about it before, but the podcast made me decide I should dedicate a separate article to it. But before we continue, I came up with this metric while at work with a client, but someone else might already have thought of it before me and just named it differently. If so, feel free to point this out to me. What is a Disaster? The Disaster-Release Ratio is a simple metric that focusses on "disasters." These are bugs that make…

0 Comments

Perfect or Ideal?

When we set out to improve our legacy code and reduce the technical debt, should we go for perfection or for an ideal solution? Should we be perfectionists or idealists? The two may sound similar, but they have important differences. This is a reaction to an email by Jonathan Stark. He sends out a daily email about starting and improving your business. In one of these emails, he explains the difference like this: Perfectionism is a refusal to accept any standarshort of perfection.Idealism is the practice of pursuing ideals, even if they are unrealistic.Perfectionism is about rejection.Idealism…

2 Comments
Read more about the article How Do You Explain Technical Debt?
Photo by Maxim Hopman on Unsplash

How Do You Explain Technical Debt?

Are you finding yourself having a hard time explaining technical debt? You might have a good grasp of what technical debt is and why it's holding you back, but that doesn't mean your manager fully understands. Let's look at some ways you can explain things to management. The Debt Metaphor Ward Cunningham coined the term "technical debt" as a way to explain the concept of taking shortcuts and having to bear the consequences. So you can explain technical debt by taking that literally: it's a debt the team is taking. A certain technical choice is more costly…

0 Comments
Read more about the article How Does TDD Help With Technical Debt?
Photo by Xavi Cabrera on Unsplash

How Does TDD Help With Technical Debt?

If you've ever worked with me, you probably know I'm a big proponent of test-driven development, TDD. It's benefits are great, and drawbacks minimal. Often, the downsides exist in the critic's imagination or come from someone who has little experience with TDD. But if TDD drives our design, what if we already have a design, however bad. How can TDD help with technical debt? Allow me to elaborate. The Usual WorkFlow As a short reminder, TDD works as follows. Before you start writing (or changing) code, you write a failing test. Then, you add or change the…

0 Comments

Measuring Technical Debt

Once you realize you have a problem of technical debt, or if you want to investigate your code to see if the problem exists at all, there are objective ways of measuring this. Here are some metrics that might interest you. Why Metrics Before we list the metrics, let's briefly discuss why they're important. Metrics can objectify a discussion about technical debt. Some team members may think the situation is extremely bad while others may say everything's fine. These discussions can become emotional, especially if people take criticism on their code personally. Metrics will give you objective,…

0 Comments

The Human Side of Legacy Code

I've written several articles on the technical sides of legacy code and technical debt. But now, let's focus on the emotional side, the human factor. I've touched on this previously, but would like to expand on it a bit further. What Frustration Can Lead To Working with legacy code can be frustrating. Especially if there is not enough room to improve it. Or if there is room, but the team can't seem to succeed in improving, for whatever reason. Frustration that is left unaddressed for too long leads to all kinds of bad things. Developers can start…

0 Comments

End of content

No more pages to load