Technical debt

Introduction

The term “technical debt” refers to messy source code, data, or architecture in a software system. It is commonly understood to represent a vague acknowledgement that the mess should probably be fixed by someone, somehow, sometime.

People hearing the term “technical debt” for the first time are likely to guess what it means, in broad terms, and to understand that it is undesirable; however, the real detriment lies in a concept which, although alluded to by the term, is not spelled out, and therefore hidden. As a result, people often fail to grasp the grave implications of technical debt.

This post sheds light at the hidden concept and shows the real problem with technical debt.

Read more »

Refactoring: strong vs weak

Abstract

Two distinctly different widely used meanings of the term code refactoring are identified and named:

  • Changing how code works, without changing the requirements that it fulfills (refactoring in the weak sense)
  • Changing how code is expressed, without changing how it works (refactoring in the strong sense)
Read more »

The perils of whiteboards

Summary

Building upon the realization that conventional means of software design today amount to nothing more than fancy whiteboards, we examine the pitfalls, disadvantages, and consequences of designing software using such tools.

This post is support material for Towards Authoritative Software Design.

Read more »

On the Tired Light Hypothesis

The Static Universe

The first model of cosmology that I was exposed to, as a small child, was that of the static universe, because that’s all my father knew. According to that model, the universe is infinite in all directions, it is eternal, and it is not going anywhere. Of course I accepted it, because that is what kids do: accept everything presented to them as fact.

The Expanding Universe

Then, during elementary school, I heard of the Big Bang and the expansion of the universe; this new model of cosmology made me feel a bit uncomfortable, but again I accepted it, because a) that’s what the scientists said, and b) I could go to my father and tell him that he is wrong.

Read more »

Code review memes

GitLab allows the insertion of images in code review comments. They make it really easy: if you have an image on the clipboard, you can just paste it into a comment. I suppose the feature exists so that programmers can exchange screenshots, graphs, etc. to explain complicated matters during code review.

I like to use this feature to post memes.

Here is my collection of the most useful code review memes:

Read more »