Beautiful technical debt (2022)

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.


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.

I can send you an email whenever there is a new article. No more than once per week, likely - less. Subscribe here.

You can also subscribe via RSS Feed.

My personal email: Rinat[@] Please feel free to reach out! :)