A Tower of Technical Debt

Have you ever played Jenga? It’s that game where you have a tower of blocks, and you have to carefully remove one from the tower and place it on the top. Then eventually you remove one that’s too important and it all falls down.

I work in software. I’ve worked on what feels like an uncountable number of projects over the last decade or so. I’ve written in comments about technical debt before, but I think we are now reaching β€˜peak debt’.

Technical debt has existed as long as software has existed. And in a way any system has a level of debt owed when compromises are made. How that debt is managed is what makes a great project manager and a great team. If you’re not familiar, technical debt is the product of trade-offs made when developing software. It is the cost of work that must be done later when choosing an easier solution in the short term.

As an hypothetical example, imagine you’re writing the code to determine whether or not you can take off your helmet. In space, this is bad and should not happen. But inside a space station or on a planet with breatable air, it can happen. The problem is that writing an entire system to determine if the environment you’re in has breathable air is going to be a massive project in itself, and you’ve just been tasked with making sure that the helmet can be safely taken off or not.

The short-term trade off is to find ways that make it work for now. For example, you never spawn in a non-breathable environment – this is just how the game works right now, so you can safely assume that when a player spawns their helmet is off. So the default setting for the helmet can be set to β€˜off’ and the default setting for the ability to take the helmet off is β€˜yes’.

Next, with the limited number of locations around the map where you pass from one environment to another environment, you can simply attach the change to passing through that area. Add a box to the exits that sets the ability to take the helmet off to β€˜yes’ and β€˜no’ depending on which side you exit. Attaching further code to force the helmet on based on this would also be fairly easy at this point.

As far as anybody playing the game knows right now, it works. And if the game stopped being developed at this point, nobody would ever know this is how it was programmed. Software is programmed like this a lot, because the cost of writing that behaviour is perhaps a couple of days, whereas the cost of building a system to actually simulate and understand breatable environme

... keep reading on reddit ➑

πŸ‘︎ 114
πŸ’¬︎
πŸ‘€︎ u/wonderfulllama
πŸ“…︎ Jan 06 2022
🚨︎ report
Quitting a new job because of technical debt and inability to fix it

I started a new job a few months ago and I'm finding it tough to navigate within the team.

The codebase has quite a lot of technical debt. My manager acknowledges it but refuses to even consider fixing it. He's too busy creating busy work jiras and trying to get as many of these closed within the sprints.

The rest of the team knows there are things to fix as well, but they are "too busy" with business deliverables to consider it.

The thing is, if we fix the technical debt, we should be able to deliver even faster.

Here are just a few issues with our project:

  • Monolith repo. It should be split out into multiple repos, but somehow there are several projects all living in different branches in this mega repo. Problem is that master is very very old and releases are never merged into it. Even if releases were merged, it would be difficult since I said different branches for different systems live in this repo.

  • No Unit Tests - I mean none. This could also stem from the fact that there is no DI (next issue).

  • Lack of dependency injection - every object is created within constructors. Some developer looked like they tried to put in a form of dependency injection but ended up just creating a service locator pattern.

I'm thinking of just quitting because I know I won't be happy if this situation won't be resolved, even slowly.

Anyone run into this kind of situation? Any advice would be greatly appreciated.

πŸ‘︎ 174
πŸ’¬︎
πŸ‘€︎ u/haho5
πŸ“…︎ Dec 22 2021
🚨︎ report
A common belief seems to be tech debt == bad. What would you say the β€œpros” are to technical debt and how do you manage it?

I work in an environment where we code review and unit test to 100%. There isn’t too much tech debt. Im actually wondering if we should allow for MORE tech debt, the more benign kind at least. My reasoning being, if you’re working on a product that is still in a pretty evolutionary/prototype stage, there’s a chance some of your debt will be β€œwiped out” so to speak if you need to go a different direction design wise. In our current state, it’s hard to really trim fat since it all needs to get done, so the pipes can get clogged with cleaning up code instead of actually delivering value. I feel as though there is a balance to strike that varies based on the project type and lifecycle stage. What strategies have you used to strike this balance? When was carrying tech debt a good thing?

To me, it’s all about priorities. If you defer benign tech debt, you might be able to unblock a dependency of that system, work on another feature, etc. This seems like it could get out of control at some point though, so im hoping to hear some war stories/general strategies used.

πŸ‘︎ 44
πŸ’¬︎
πŸ“…︎ Dec 29 2021
🚨︎ report
Atletico will receive 180-200M € in next few days following LaLiga's agreement with the CVC. 15% (27M) will be used to repay debts, 15% to increase the payroll which allowed to register RDP, Cunha & 70% to improve the stadium and technical, human resources for the digital content of "Atleti Studios" mundodeportivo.com/futbol…
πŸ‘︎ 681
πŸ’¬︎
πŸ‘€︎ u/nsaha234
πŸ“…︎ Nov 05 2021
🚨︎ report
How to manage technical debt in two dozen microservices on a small team

I have been responsible for maintaining about 20+ microservices, split based on their business logic domains, with a team of <5 developers for the past few years, and up until mid 2021, we hadn't had many issues keeping up with adding additional features, fixing bugs, and updating infrastructure.

However, last year, we started struggling to stay ahead of technical debt incurred by security remediation when our company fully implemented JFrog Artifactory as a replacement to Nexus (artifacts were rarely being blocked in Nexus). Our implementation of Artifactory blocks all artifacts with a medium severity or higher, which initially introduced a rather large remediation effort to be able to use it as our artifact repository, and since we have migrated, it has been common to suddenly see blocked versions of major frameworks such as Spring Boot, Spring Data, various NPM packages, etc..

Unfortunately, while our microservices aren't tightly coupled to each other, they do rely on many of the same major frameworks, so if a dependency gets blocked and requires a security update to a new major version to be compliant, we have to make similar changes across most, if not all of our microservices. Depending on the changes required to migrate to the new version, this effort could be minimal or MASSIVE. Deferral of the upgrade is possible, but limited to 30 days.

The additional technical debt from security remediation has me considering merging some of our microservices together, or potentially removing some common functionality, like database queries and similar work, out into separate microservices to reduce the number of microservices that are touched when an upgrade is needed. Currently, we are down to 2 developers and myself on the team, and it has become a challenge to get anything done outside of security remediation due to the duplicated efforts and testing required for the more impactful remediation.

Are there other teams out there facing the similar issues? If so, how did you manage to mitigate it?

TL;DR: Small team of developers having trouble managing technical debt on 20+ microservices that share frameworks/dependencies and would like to know if anyone else has faced similar struggles, and what solutions were employed to help mitigate the duplicated effort and complexity.

πŸ‘︎ 12
πŸ’¬︎
πŸ‘€︎ u/wruynn
πŸ“…︎ Jan 07 2022
🚨︎ report
What the name for somebody who makes himself essential to the team because only him can maintain a big technical debt? Abusive monopoly ?

You often see those developer who cannot be fired because the software is so badly written but only them understand how it's written. There is no documentation, the code is tangled, methods names make no sense, re-factoring would take years, and newcomers are just unable to really be productive without the help of those "monopoly" developers.

πŸ‘︎ 100
πŸ’¬︎
πŸ‘€︎ u/all_is_love6667
πŸ“…︎ Dec 11 2021
🚨︎ report
Has anyone applied the metaphor of "technical debt" to the question "is innovation slowing down?

In software, we have the notion of "technical debt" which is when you generate bad infrastructure because you build something quickly and thoughtlessly, and then it slows you down in the future because you either need to work around it or replace it. Sort of like if you assemble a rickety bridge during an invasion in the war, but you need to keep a bunch of troops behind to maintain it instead of building a solid bridge and freeing up the troops to advance.

Most previous innovation depended on the idea that the air, water, land and our lungs are suitable dumping grounds for dangerous chemicals: directly dangerous like nitrogen oxides and indirectly like carbon dioxide.

This became unsustainable, which is leading us to have to go back and "fix the mess" before we can move forward again at full speed. An enormous amount of innovative capital is tied up in fixing the mess and it doesn't directly make our lives dramatically better. I love my EV, but when you consider the enormous technological overhaul it took to get from a combustion engine to a battery-powered motor, it's hardly as much of a leap forward as you might hope. Except...it isn't killing me, my family, my neighbors and the planet.

This raises the question: outside of fossil fuel infrastructure (which continues to be built!) what other forms of technical debt are we accruing right now?

I admit I haven't really surveyed the literature to see if this is a common take: it's essentially just a shower thought.

πŸ‘︎ 134
πŸ’¬︎
πŸ‘€︎ u/prescod
πŸ“…︎ Nov 14 2021
🚨︎ report
Is Emacs developing too fast? Contributions seem to focus on increasing code size rather than reducing it, on adding features and not on "paying technical debt"? lists.gnu.org/archive/htm…
πŸ‘︎ 34
πŸ’¬︎
πŸ‘€︎ u/NeilPointer
πŸ“…︎ Jan 04 2022
🚨︎ report
At this point shouldn’t we just skip V2 and go straight to the blockchain? December is days away. This would save HODLers V2 transfer fees and solve all token issues. It could get listed on all major exchanges and significant reduce technical debt. Pro dev here.
πŸ‘︎ 65
πŸ’¬︎
πŸ“…︎ Nov 24 2021
🚨︎ report
I was hired to fix technical debt, a legacy python file with 10k lines of code. Looking for tips/tricks and tool suggestions that could save me some headache.
πŸ‘︎ 248
πŸ’¬︎
πŸ‘€︎ u/meluq
πŸ“…︎ Oct 03 2021
🚨︎ report
How much technical debt does RoN have?

I've seen a lot of EA games start out great but then slow down to a halt due to technical debt and I'm hoping that doesn't happen here. The game seems quite polished so I'm hoping that most of the backend stuff is squared away so content/upgrades can come steadily.

πŸ‘︎ 7
πŸ’¬︎
πŸ‘€︎ u/RhasaTheSunderer
πŸ“…︎ Jan 17 2022
🚨︎ report
Company is falling apart. Too much technical debt.

Hi, I am working as a contractor for bunch of clients. One of them have an issue with people leaving company, tired of working on legacy systems, being on-call, spending 70% of time fixing ad-hoc issues. I was wondering how would such company try to survive. It gets difficult to hire new people (especially that these jobs require certain skillset), old people are walking away (with the knowledge they had). Have you experienced / are you experiencing similar thing? What steps does the companies take to restructure and get back on the track? I'd like to help the managers as I really believe in their product.

πŸ‘︎ 104
πŸ’¬︎
πŸ‘€︎ u/Silver-Thing
πŸ“…︎ Oct 20 2021
🚨︎ report
Old architecture and technical debt prevents us from doing anything meaningful for customers the next couple of years. Help me gauge the situation

Hey guys and gals

I could use a little bit of perspective on my situation.

We are a B2B SaaS company and are riddled with technical debt. As I know other companies are to some extend. We have been around for many years but we haven't moved very much.

The next project is a redesign and a 1:1 rebuild of our architecture on our primary components. It's going to take at least a year according to some. Two according to others. To make matters worse, this has been promised to customers for several years. It's a real shitshow, but that is what I'm here to do something about.

I had a talk with our principal architect today, who basically built most of the old platform. He was very adamant that we wouldn't be able to do anything else because we are locked in the old architecture and are low on engineers. He firmly believes we can't build anything new and innovative because his team would have to support old and new. It also seems like he's opposing doing anything that removes features from current customers for some reason.

I respect his knowledge on the architecture but I naturally don't share the strategy here. Unfortunately I believe others buy into this narrative as well and if this is in fact how it's going to go the next couple if years, I can't see what we would use Product Managers and Product Designers for. All this requires is a delivery team that chops away on the backlog. Not exactly the recipe for great products.

I have other initiatives and priorities I want to talk about and I fully understand the constraints we are working under. I believe I have my research in order but I fear that everything is going to be shot down, because everything is about getting rid of technical debt. I just don't see us survive this narrative. Solving zero problems for two years sounds like suicide. I really want to work through this because I believe Product Management can play a major role in the turnover of this company. My VP Product is on the same page. We really want to change this position.

So what can I do? Do I just keep showing stakeholders my research and make my arguments? Is he right? Can this strategy really be the best solution to our problems? The customers and markets are moving and we are stuck here with rebuilding the same platform almost 1:1.

Thanks in advance :)

πŸ‘︎ 41
πŸ’¬︎
πŸ‘€︎ u/Rallemis
πŸ“…︎ Oct 21 2021
🚨︎ report
Atletico will receive 180-200M € in next few days following LaLiga's agreement with the CVC. 15% (27M) will be used to repay debts, 15% to increase the payroll which allowed to register RDP, Cunha & 70% to improve the stadium and technical, human resources for the digital content of "Atleti Studios" mundodeportivo.com/futbol…
πŸ‘︎ 63
πŸ’¬︎
πŸ‘€︎ u/nsaha234
πŸ“…︎ Nov 05 2021
🚨︎ report
Technical Debt in Hard Engineering

I recently came across the phrease "technical debt" in reference to software engineering.

I really liked it and think it would apply to plant engineering too - if we don't have the right design standards, commissioning standards, and maintenance standards then we see a buildup of "technical debt" where we have to revise designs, change commissioning parameters or put more time and effort into maintenance than we need to.

Just wondering if anybody has any references to this phrase being used in electrical/mechanical engineering before?

πŸ‘︎ 264
πŸ’¬︎
πŸ‘€︎ u/baiju_thief
πŸ“…︎ Sep 13 2021
🚨︎ report
Breaking the Mountain: Technical Debt

Despite over ten years experience, I still can't get over one thing: technical debt. Every company seems to have it, and yet I've always found it tedious and frustrating to work with or around. Others seem to have learned to more or less live with it. Some teams have more, some less.

Lately, I've been finding myself staring at that hard granite face of Tech Debt Mountain. Every morning I take my pickaxe and start chiseling a little off. The next morning, the mountain hasn't moved; despite the grueling work, the difference is hardly noticeable. I long for the green field in the valley below.

This is what my work has been feeling like lately especially. We have tech debt and lots of it. We have high unit test coverage, CI pipelines, code review, and still heaps of tech debt. We also have a sprawl of complexity as systems have been built over the years and developers have come and gone. We have an architecture that forces even many simple changes to wind their way across "the Layers," which cross system boundaries. We have a plan to improve the architectureβ€”incrementally because that's the only thing the Business will tolerateβ€”and yet it is slow going, interwoven with competing business priorities ("revenue generating") and any other urgent matter.

I've been here a few years now, and some of the same architectural grooves I noticed at the beginning are still thereβ€”to be smoothed over someday, eventually, maybe. If I had to diagnose our particular causes, I'd say years of neglect followed by an almost manic pace of new feature delivery, many hands touching the code over time, and little "adult supervision" over the system design choices entry-level developers are making (again, to keep high work in progress in the belief this will lead to more features faster). I've slowly gotten them to start thinking more about design before coding, but that continues to be a work in progress.

The reasons why technical debt exists may be different elsewhere; regardless, most places seem to have it, and it gives the feeling so much more could be done with the work day if tech debt weren't continuously pulling developers back down.

I'm thinking of quitting just because I am so tired of spending eight hours a day plowing head first into this stuff over and over again (among other things). Maybe a change means dealing with technical debt, but at least it will be in a new and different form; maybe the team will be bigger and better equipped to deal with tech debt. Maybe I'll

... keep reading on reddit ➑

πŸ‘︎ 52
πŸ’¬︎
πŸ‘€︎ u/matthedev
πŸ“…︎ Oct 13 2021
🚨︎ report
How much damage can technical debt really do? besserwissers.io/article/…
πŸ‘︎ 25
πŸ’¬︎
πŸ‘€︎ u/that_guy_iain
πŸ“…︎ Oct 14 2021
🚨︎ report
Since it seems you like the classics, here's: Nitpicking Machine Learning Technical Debt matthewmcateer.me/blog/ma…
πŸ‘︎ 9
πŸ’¬︎
πŸ‘€︎ u/LSTMeow
πŸ“…︎ Nov 23 2021
🚨︎ report
Old but New: I used to work as an iOS dev for 4 years between 2014 and 2018, but then completely moved to web dev. What would be your suggestions to restart working on iOS (on a new project) without too much technical debts?
πŸ‘︎ 2
πŸ’¬︎
πŸ‘€︎ u/Cynapt
πŸ“…︎ Nov 05 2021
🚨︎ report
Machine Learning: The High-Interest Credit Card of Technical Debt storage.googleapis.com/pu…
πŸ‘︎ 17
πŸ’¬︎
πŸ‘€︎ u/scottire
πŸ“…︎ Nov 18 2021
🚨︎ report
Does the sentence "Asking for a debt of gratitude" exist in western culture? is there a technical term for this?

Have you ever heard of a situation like this? A owe a debt of​ gratitude​ to​ B B use A's debt​ of​ gratitude​ as​ an​ excuse​ to​ take advantage from A

πŸ‘︎ 22
πŸ’¬︎
πŸ“…︎ Oct 06 2021
🚨︎ report
Is there more bad/overly complex architecture in BI/data now that "Cloud"/SaaS makes it dirt cheap to scale if more CPU/RAM resources are needed? I.e. It's easier to hide Technical Debt with it?

Is there more bad/overly complex architecture in BI/data now that "Cloud"/SaaS makes it dirt cheap to scale if more CPU/RAM resources are needed? I.e. It's easier to hide Technical Debt with it?

If the dashboards and ETL are processes are suffering the low hanging fruit solution is to simply get bigger machines. It's the easy solution.

"Ain't nobody got time to write good code, architect models to deliver optimal performance." mentality seeping in.

I have noticed this with some of the companies I work with, the data models are unnecessarily complex due to a combination of time pressure, staff that don't have a lot of experience but build anyway, and barely any check on the work they are delivering.

Bad performance? Simply blame the infrastructure and get bigger machines. It's the "easy" solution.

... I wonder what will happen a decade down the line.

πŸ‘︎ 11
πŸ’¬︎
πŸ‘€︎ u/TheDataGentleman
πŸ“…︎ Oct 20 2021
🚨︎ report
Check list to avoid the accumulation of technical debt

Hi,
I compiled a simple list to check if a software project is doomed to drawn in technical debt.

Context: Most of our clients have an industrial background and many think they can by custom tailered software like some industrial tool.

I like to give them a simple checklist and with a methapher they can grasp (e.g. steal quality).

Here is the list:

  • Do you write unit tests?
  • Are there automated end-to-end and integration tests?
  • Are you allowed to plan efforts for refactoring and enablers?
  • Do you take actions to make occurring mistakes impossible in the future? (e.g.: by creating automated tests, making the UI more intuitive, …)
  • Do the developers know about Clean Code (e.g.: SOLID principles)?
  • Are there opportunities to learn together and exchange knowledge? (e.g.: CoPs, pair work, …)

Did I miss something? What are your thoughts?

πŸ‘︎ 3
πŸ’¬︎
πŸ“…︎ Nov 04 2021
🚨︎ report
The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction research.google/pubs/pub4…
πŸ‘︎ 11
πŸ’¬︎
πŸ‘€︎ u/scottire
πŸ“…︎ Nov 23 2021
🚨︎ report
What is technical debt to you?

I’ve dealt with my fair share of spaghetti. But unless there was an appreciable metric to point to I’ve never felt the need to go in and fix something because it felt wrong.

What am I missing? Does the job is does the job, right?

πŸ‘︎ 25
πŸ’¬︎
πŸ“…︎ Aug 26 2021
🚨︎ report
Could agile be leading to more technical debt? compuware.com/how-to-reso…
πŸ‘︎ 1k
πŸ’¬︎
πŸ‘€︎ u/hatchikyu
πŸ“…︎ Feb 23 2021
🚨︎ report
3 kinds of technical debt bytesizetheories.com/post…
πŸ‘︎ 143
πŸ’¬︎
πŸ‘€︎ u/nichochar
πŸ“…︎ Jul 11 2021
🚨︎ report
Demystifying Technical Debt storj.io/blog/demystifyin…
πŸ‘︎ 6
πŸ’¬︎
πŸ‘€︎ u/helmex
πŸ“…︎ Oct 15 2021
🚨︎ report
Technical Debt: The Silent Killer - IT Jungle itjungle.com/2021/10/27/t…
πŸ‘︎ 5
πŸ’¬︎
πŸ‘€︎ u/nicksofn
πŸ“…︎ Oct 27 2021
🚨︎ report
On "Technical Yield" (and Technical Debt) timdaub.github.io/2021/09…
πŸ‘︎ 27
πŸ’¬︎
πŸ‘€︎ u/TimDaub
πŸ“…︎ Sep 08 2021
🚨︎ report
I just deleted a thousand lines of code - and I'll do it again! (Code quality/Technical debt) youtube.com/watch?v=cjEdi…
πŸ‘︎ 1k
πŸ’¬︎
πŸ‘€︎ u/crystoll
πŸ“…︎ Feb 16 2021
🚨︎ report
Is it possible to issue bonds for technical debt?
πŸ‘︎ 47
πŸ’¬︎
πŸ‘€︎ u/alexmelyon
πŸ“…︎ Aug 01 2021
🚨︎ report
What is Technical Debt?

Technical debt occurs when software development and execution decisions clash with business objectives and timelines, which is why it is almost unavoidable in any firm. If you don’t release your software or project till every line of code is flawless, your project may never get off the ground, and your company will most likely be close to the end.

Overview of Technical Debt - https://kissflow.com/low-code/what-is-technical-debt/

πŸ‘︎ 3
πŸ’¬︎
πŸ‘€︎ u/joewalter_tech
πŸ“…︎ Oct 22 2021
🚨︎ report
How to Wipe Out IT’s β€œTechnical Debt” with PDCA lean.org/the-lean-post/ar…
πŸ‘︎ 10
πŸ’¬︎
πŸ‘€︎ u/mod_cat
πŸ“…︎ Oct 01 2021
🚨︎ report

Please note that this site uses cookies to personalise content and adverts, to provide social media features, and to analyse web traffic. Click here for more information.