The letter S in a light blue, stylized speech bubble followed by SpeakBits
SpeakBitsThe letter S in a light blue, stylized speech bubble followed by SpeakBits
Trending
Top
New
Controversial
Search
Groups

Enjoying SpeakBits?

Support the development of it by donating to Patreon or Ko-Fi.
About
Rules
Terms
Privacy
EULA
Cookies
Blog
Have feedback? We'd love to hear it!

Paying down tech debt: further learnings

pragmaticengineer.com
submitted
10 mos ago
byboredgamertoprogramming

Summary

Use tech debt payments to get into the flow and stay in it. Big rewrites need heavyweight support. Without the backing of management, a large-scale rewrite is likely to fail.

Once I have gotten into flow, staying in flow is so important. The tech-debt payments weren’t for some future benefit. They are helping me right now.

I avoid large scale rewrites, as I’ve seen them fail or drag on much more often than they succeeded. My biggest mistake personally was trying to rewrite a C/C++ system as memory safe C# code. But I was also part of a two-year long rewrite that worked, and learned some things that I recommend to clients.

The first lesson I learned about big rewrites was not to underestimate them. The size of the project was well-understood and planned. Contractors were recruited for their expertise in the new system, so couldn't work on the legacy one.

We coupled the rewrite with a user-facing improvement project. By the end of the project, all the non-contract engineers were working on both codebases.

If you can find a way to do it, you’ll have something to show when you�’re done, and can follow up with quality metrics after measuring them. Recruit expertise in a new technology and front-line managers that have done it before.

 jersey T-shirt tee shirt torch microphone mike Windsor tie-0
14

1 Comments

1
boredgamerOP
10 mos ago*
Doing it little by little also ensures you don't have to do the one big rewrite all at once. I always try to get one tech debt ticket per sprint, small enough to not worry management but big enough to be useful. Not sure how anyone else does it.