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
9 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
9 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.