Time to Confess Your Sins and Clean Up Your Code

By Nigel Cheshire

This past Tuesday was Shrove Tuesday here in the UK, the day that was known as “Pancake Day” when I was growing up, and in many parts of the world is called Mardi Gras. Many British people make a point of eating pancakes on this day.

The pancakes that the Brits eat on Shrove Tuesday are more akin to French crepes than anything that a red blooded American would call a pancake, and they are served with fresh lemon juice and sugar on top (at least that’s how my mom prepared them). Looking back now, it seems like a bizarre tradition, but I never questioned it as a hungry kid. My brother and I would have competitions to see who could eat the most pancakes.

But why is it called “Shrove Tuesday?” It turns out that the word “shrove” is a form of the English word “shrive”, which means to obtain absolution for your sins through confession and penance. And so Shrove Tuesday, or Mardi Gras (“Fat Tuesday”) marks the dual themes of confessing your sins and feasting in preparation for the 40 days of Lent in which many people give up something, often sweet, fatty foods, perhaps alcohol or something else which is considered a “vice”.

And that, of course, turns my thoughts to the subject of technical debt, something that many developers fret and generally feel guilty about, but don’t necessarily do anything about.

If you’re not familiar with the term, technical debt refers to the concept of creating a debt of work that will need to be done in the future, by taking shortcuts in the present. This should be a familiar scenario to many developers: you have to add a feature to an existing application, and you’re under pressure to get it done fast. You might just be tempted to cut some corners to get that manager off your back.

As a simple example from the world of Notes and Domino application development, let’s assume the new feature has to perform an @DBLookup call into a database that’s located on a different server. You have a choice: you could create a shared field to contain the server name, making it easy (for you or others) to change if necessary in the future. Of course, you also want to check first to make sure that such a field doesn’t already exist. That all takes precious time. Or, you could just type the name of the server right into the @DBLookup call, telling yourself you’ll come back later to clean that up. Cha-ching! You just notched up a few hours of technical debt.

The more technical debt you accumulate, the more complex your code becomes. And the more complex the application is, the harder it becomes to add features, leading to more shortcuts being taken. It’s a vicious cycle.

Here at Teamstudio of course, we have tools that can help with cleaning up your code and paying down your technical debt. Teamstudio Configurator, for example, gives you a handy way to locate all the occurrences of a hard-coded server name anywhere in a Notes application.

Lent is typically a time when people become more introspective, perhaps thinking about things that they have done wrong in the past and ways that they could do better in the future. It might just be a good time to think about how we approach these decisions and whether we really want to continue to make problems for ourselves (or other people) down the road.

Learn more about Teamstudio Configurator by clicking below.