All posts

Aquarium: look outside

📅 Created 1 year ago 👁️ 58

🏷️ #management

🔗 Technical debt vs. Logical debt

Українською: Акваріум: погляд ззовні та зсередини

It’s a paradox: when we stew in a process for too long, we lose objectivity. Like fish in an aquarium.
We’re not entirely objective even outside the aquarium because we lack fins.

It would be ideal to simmer in different pots to get a fuller picture, but that’s not always possible. So, what the hell do we do?

Aquarium

Let’s look at some pretty annoying things: refactoring and legacy code. These things are evaluated quite differently by a junior developer, a tech lead, and a project manager.

A typical junior developer, due to lack of experience, can’t quite assess legacy. Well, there’s code, gotta figure it out.

— Why is that?
— Due to historical reasons.
Whatever Alright then.

Refactoring is even more interesting: today’s junior is often a future necessity for refactoring 😁

The tech lead uses more harsh language regarding legacy and the need for refactoring. They often have some good arguments:

  • Refactoring today will cut costs for developing new features tomorrow.
  • The cost of maintenance increases (worst-case scenario — non-linearly).

The PM often agrees with these arguments. Sometimes not, because they see something beyond the wall:

  • We don’t plan (big) new features.
    Why try harder?

    Why try harder?

  • The project might be closed next year.
    Or might be outsourced, and the team will get new tasks.
  • The cost of refactoring significantly exceeds potential benefits.
    Empirical data contribute: costs of previous refactorings were three times higher than planned. Never happened before, and here we go again…
  • The indirect cost of such work is unacceptable now.
    E.g., loss of development pace for new features ⇒ risk of losing ground to competitors.

However, it’s not guaranteed that the PM objectively evaluates the cost (especially considering team demotivation and potential future hiring issues Cobol and the US banking sector).


Based on the presumption of in-objectivity (because the PM has no fins 🙂), I find valuable to speak up and to convey the opinion to other levels of the organization. At the same time, it’s important to listen, because that brings new contexts into the aquarium.

I don’t have a bright success story on this topic. However, I see that conversations help. I see how the team changes their mind after hearing (previously unknown) arguments “from the outside”. I see how management adjusts priorities after meetings with the team.
It’s hard to estimate what would happen if everyone stood their ground. But if you’re familiar with skate- or snowboarding, you remember: to move forward, you need to balance between “right” and “left”.

... About idealism