Don't Outsmart hard choices: Why architects are the ultimate tech debt perpetrators

Problem-solving is both a blessing skill and also a curse. It's on every software architect/engineer veins. It's pretty addictive and makes us feel useful and smart. Having sharp problem-solving skills is always great. I mean talent is gold. We want more talent, and what talent do intelligent solutions to complex problems. The heart of software engineering is fixing problems. Don't get me wrong this is good. However, sometimes we need to go with HARD DECISIONS. I can't think of a harder choice today than decide to pay the technical debt. However, once you got a design wrong and started things with the wrong feet is easy yo keep pushing problems aways without belly and keep the debt growing. Why does it happen?  



Hacker Mindset


Hacker mindset(HM) is at the heart of everything. HM Is both a good and a bad thing. When Hacker mindset means finding a creative solution to outsmart hard decisions, it could be a bad deal in the long term, for the following reasons:

  1. All Smart Decisions have a High Price. Often is complexity.
  2. Not fixing a problem now could mean: Making the problem bigger and live longer. 
  3. The issues tend to get worst over time because we always need to change the software.

What happens is you dont kill the evil at the beginning. It just gets worst. So Often we want to avoid HARD and difficult choices because they mean:

  • Lots of Time Invested (+1 year)
  • Lots of People Invested (+10 people)
  • Lots of Cost involved (People + time) 

As a result, it is not a business feature or capability; it is pretty hard to justify the cost and the time past and get it worse. 


Stop Outsmarting Decisions


Pretty much Software architects are the ultimate tech debt perpetrators. So there are phenomena I want to describe, probably you notice too. Outsmarting hard decisions is expected from Software Architects. It's why they are there, right? Managers, Executives hope software architects to bring magical hacks that would avoid a vast money expense because people dont want to prevent to take hard choices(often making the problem worse). Since 2006 I see this phenomenon happens. Several times is expect from me, a magical solution to avoid lots of work and cost. you know the issue. Several times we can smart hard decisions; however, there is a point where it's no possible anymore, often this is the point that the debt is too high. The famous: point of no return or let's re-write the systems. 


Doing Boring Work


Doing tedious work is hard. As Architects and engineerings, we like bleeding edge stuff. Picking hard choices is even hard because we need to admit we made poor choices in the past, and we prefer to keep picking easy ways outs until there is no way out. We can't do boring work with smart decisions; sometimes, all we need is very dumb and repetitive work. Great design for non-green field solutions often will mean hard and expensive choices given tech debt in place. However, we need to do the hard thing rather than keep hacking our next step away from the problem. Boring work does not involve hards, does not involve outsmart hard decisions and is long, boring, and expensive but sometimes is what you need to do. 


Cheers,

Diego Pacheco

Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java