Peter Morlion logo

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 […]

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 […]

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, […]

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 […]

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 […]

Strangle Your Legacy Code

So you’ve decided to do something about that piece of legacy code that is taking too much of your team’s time. Then you should be aware of the strangler pattern. Your Options When dealing with a piece of legacy code, you basically have three options: do nothing refactor rewrite I’ve written about the first option, […]

When Upper Management Doesn’t Want to Pay Off Technical Debt

Are you convinced your team should spend time paying off technical debt, but you can’t get upper management on board? Here are some ideas that might help. Collect Numbers Upper management or the board of directors work a lot with numbers. Their job isn’t always easy: the people they manage are most often not happy […]

Categories of Technical Debt

There are many ways of categorizing technical debt. Here is just one way. I divide technical debt along two axes: intentional vs unintentional and known vs unknown. And I’ll briefly mention a fifth category that doesn’t fit well with these axes. Intentional Technical Debt Technical debt can be a conscious decision, like a real loan. […]

Monitoring Legacy Applications

So you have a legacy application with quite some technical debt? But you’ve started turning the ship around and the situation is improving, right? If you’re planning on increasing the release cadence, you’d better start monitoring your application. What Is Monitoring? Monitoring is the practice of setting up an automated system that keeps an eye […]

Why Should I Test Legacy Software?

I’ve already written about why you need automated tests, but let’s take a step back. Why do you even need to test legacy software at all? It’s running fine isn’t it? Until it isn’t. Legacy Software Is Important First and foremost, many legacy software systems are important to the business. They often actively bring in […]