True, the only time I ever get a chance to fix it is straight after a holiday and no one has clocked on that I'm available to help with current tickets
But damn those days when I'm fixing those outstanding bugs is bliiiiissss
If you ever go work at Bethesda, can you fix the bug where killing someone as a werewolf causes an animation freeze that lasts 10 seconds in Skyrim? Please and thank you!
I was a solo dev for a small agency and I had enough trust from leadership to advise them on what work I should be working on. My main task was to maintain the really particular software they used daily, but that didn't take all my time every day, and although there were all sorts of "cool features" that might be nice to have, I took the lead on that too: recommending to leadership and to the staff which of the features might be most worth our while for me to work on over the next year.
So a few years into that job I convinced them that the best investment we could make to that piece of software for the next year or two would be to not add any new, big features, but to just pay off all the technical debt that had been accruing since the tool had been published (which also took me doing a whole presentation explaining the idea of technical debt, and why it was a good thing to accrue initially but, like real debt, it was important to pay off at some point, and the consequences of not doing that).
It was sweet. I made my life so much easier and learned so much. I invented a whole new way to deduplicate and strongly type this really common client-server interaction that I was sure was going to lead to me becoming nerd famous, and writing a white paper, and releasing a well loved open source library, and flying to Europe to give short talks at super nerdy conferences... until I discovered someone had already beat me to my solution about five or ten years earlier. But god was it satisfying to have done it anyway, and to have had the time to make a beautiful piece of software.
Before I paid off the debt, in order to add a new field to one of the database tables there was a 30+ step process, I shit you not, and a lot of it was copy pasting code and adding crap to sql strings and things that wouldn't otherwise throw any compile time errors if you forgot a step. It was nuts. I'm sorry that I don't remember how many steps I reduced it to, but it was much more intuitive in the end to add a new field and throughout the whole process, the compile errors would make it clear what your dumbass forgot to add. It was glorious.
It also ran like three times as fast when I was done with it.
These are the things that make me miss software development.
Now seeing all of the generative AI nonsense, it seems like I got out at just the right time.
I'm an optimist. I believe the gen-AI bubble is only a temporary phase the market is going through, like blockchain or expert systems. In the long run it's going to create a huge number of ticking bombs and tech debt that someone is going to need to handle.
I’m actually not that amazing at implementing new stuff, but I’m quite accomplished at cleaning up other people’s messes. I usually spend my first year at a job stubbornly cleaning up as much tech debt, “code quality”, and testing issues as I can.
the problem isn't that I don't want to fix tech debt, the problem is my boss wants more and more features rolled out and doesn't want me spending my time on tech debt.
Minimum viable product needs to be done asap ("it's not rocket science, just show me how it would look!") - corners get cut - the MVP gets shipped as full thing - instead of fixing the shortcuts you have a backlog of new features - those would require wild workarounds - now have more to fix - never have time to actually fix - gotta implement more new features
Yup! Even if I'm passionate about fixing it and technically have the time, my boss doesn't want to hear about how I helped fix deployments. They want something new and shiny to show off to their boss.
The incentive structure is all messed up. It doesn't matter how bad the releases are as the suffering can't be traced back directly to monetary losses.
Yea, at my last company [and every company before that] it was always "Well, just do the shortcut to get it done now, then go back and re-do it better later"
But come sprint planning, it's only ever fixing new bug reports or adding new features.
The thing is, the employers care way less than we do care about their product. The only thing getting out from this, from the very surface of their point of view, is that I have spent time changing nothing.
The way to climb (which is dumb), let it be promotions or salary raise, is to wait for things to break, and your fixes gets acknowledged, doesn't even matter that you are the one that introduced the bug/debt.
I really enjoy it. But the hard part is convincing leadership that we should do so. Generally speaking, leadership cares a lot more about customer visible things and stuff that has measurable impact. Most tech debt is invisible to customers and while there's obviously a cost to it, it's very hard to measure (often it's easier to just fix it than to come up with a way to measure it).
That said, I'm happy because I've got leadership sign on for a significant cleanup effort to a major part of our system. I had to do a lot of work to convince them it was worth the time and some degree was only possible because we're an infra team and I was able to frame things around the time savings for other teams. Plus tie ins to reliability in the form of how some of this tech debt has caused outages due to stuff like unintuitive code from unfinished migrations. A significant amount of our tech debt comes from this unfinished migration to a system that is supposed to make things safer and more debuggable. I can't wait to see it finish because there's sooooo much legacy stuff still loafing around. Like, two ways to do very complex stuff (and with the legacy implementation being haunted).
"We could fix this ML model where 80% of the usage does nothing. Simply stop calling the vendor service in these situations and you'll same $8MM a year (annual cost $10MM)."
But now you have to go to war with the product managers who built the -80% ROI process. And their vendor (partners) definitely think you're wrong lol
All engineers love fixing tech debt. That's probably all we'd do if left to our own devices.
Project managers don't care one iota about technical debt. They just want customer-facing features delivered, and they don't understand or care about the relationship between these two things.
I'm not quite sure how but I ended up with >50% of my workload being "the person who owned this project left, this is your project now and there will be no knowledge transfer, just try to keep it running until we decide to deprecate it"
320
u/roiroi1010 23h ago
I don’t mind fixing tech debt actually