Beautiful technical debt

What looks like a technical debt in a software solution, might be the most efficient way for people to deliver business value in a given situation. There is a beauty in that, if observed from a distance.

Don't make paying off technical debt your mission. Use it as a guide to understand the landscape and build solutions.

Take a look at that beautiful painting "Pine Tree at Lake Side" by Imoto Tekiho.

image-20220123112216119

The pine tree in front looks nothing like the straight pine trees on the right side of the picture. Yet, this lone pine tree fits the landscape - the barren rock above the water.

This crooked shape is the most efficient way for nature to grow on tough terrain. It clings to a rock while withstanding the storms, getting water and nutrients. It is perfect for this environment.

Software solutions are like that. They take time to grow, from an idea to a prototype to a lifetime in production. While this happens, the solutions are affected by various forces of nature: team structures, personal incentives, pandemics, or bottlenecks in company processes. These forces affect the shape. Available resources also matter.

We all want to build understandable and efficient solutions. Creating a mess isn't in our nature. We prefer straight lines and angles. Nature didn't invent measuring tape - humans did.

If there is some "ugliness" in a solution - there usually is a cause.

Maybe a data scientist could not get proper access to the database, not without a temporary workaround. Maybe a software engineer had to comply with a short-lived regulation. Maybe the lead architect was poached by a competitor before he could finish converging everything towards desired architecture.

All these nuances will leave marks on the final product. It is sometimes called technical debt. It is a mark of external forces that had to be dealt with for the solution to survive . There is immense value and beauty in that.

Don't just try to pay the technical debt off, but embrace and dig beneath. Dig into the problems , conduct customer interviews with stakeholders, get more data, and validate solutions early.

Use existing technical debt to guide your questions and product design.

Read More

Last update 23 Jan, 2022.