this post was submitted on 04 Sep 2024
277 points (99.3% liked)

Programmer Humor

32018 readers
539 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 25 comments
sorted by: hot top controversial new old
[–] [email protected] 49 points 1 week ago* (last edited 1 week ago) (1 children)

OK but I'm genuinely terrified by how common this is at my company, and its notably better at retention then the industry norm.

Screw Dead Internet Theory, this is my conspiracy: Crowdstrike style incidents are going to get more and more common as techdebt keeps growing.

[–] [email protected] 12 points 1 week ago

I think you're on to something. Given how software is generally built to the lowest standard possible, there are more and more exploits piling on as a result. The details of any modern tech stack is far beyond human comprehension. It's just not possible to meaningfully audit all the code and all the different interactions within it. The whole thing is just a giant house of cards.

[–] [email protected] 36 points 1 week ago (3 children)

A few jobs ago, everyone hated the tech stack. The people who had come up with it had long left. I talked to everyone, then came up with a plan to transition to a modern stack. Got buy-in from management.

Half the people (and all who had said they hated the status quo) threatened to quit if we made the change.

Fortunately, it was just in time to collect the 1-year retention bonus. Life's too short. Walked away.

[–] [email protected] 9 points 1 week ago

Transitioning a tech stack will lead to tons of unforeseen problems and also add zero new features. It’s only very rarely useful.

[–] [email protected] 7 points 1 week ago

People are very resistant to change that reduces their expertise so that doesn't really surprise me.

[–] [email protected] 1 points 1 week ago
[–] [email protected] 18 points 1 week ago (2 children)

I'm on a project where we original had three devs, but two of them did exactly what is depicted in this image, so now there's only me. There's a proper god damn mountain of tech debt that keeps growing. At this point it'd take me probably a solid couple of months to sort it out, but of course the customer doesn't want to pay for anything, because "what's the problem, it's still running". All I can really do is glance at it every now and then, like that gif with richard ayoade and the fire from IT crowd. It's a pretty big and widely used system too, so it's gonna be a real biblical clusterfuck when it finally shits the bed.

[–] [email protected] 7 points 1 week ago

This is the curse of working in tech. As long as things are working smoothly from customer perspective then the pleas to spend the time to deal with the tech debt are ignored. Yet, when enough debt piles up and things start breaking then it's the people who've been warning about the problems the whole time who get blamed.

[–] [email protected] 6 points 1 week ago

please be Amex, please be Amex, please Amex

[–] [email protected] 13 points 1 week ago (2 children)
[–] [email protected] 47 points 1 week ago (1 children)

When a project is developed for a while, a lot of initial design decisions can become invalidated as business needs evolve. New features have to be added, and in many cases they go against original assumptions about how the project would be used. At that point you have to start making hacks and kludging new features in. This creates a lot of special cases and surprising behaviors making overall project brittle and hard to maintain. That's what's known as tech debt.

In an ideal world you would have time to do proper redesign to accommodate new features, clean up problems as you go, and so on. However, in reality there's usually just not enough time to do any of that so people just pile on features at the cost of overall development becoming harder and more error prone. This is a great discussion on the subject incidentally https://medium.com/@wm/the-generation-ship-model-of-software-development-5ef89a74854b

[–] [email protected] 7 points 1 week ago (1 children)

It also covers shortcuts you take to go faster while acknowledging it's not the correct way and you'll have to pay that debt later on. Like if you took a loan

[–] [email protected] 5 points 1 week ago (1 children)

"pay that debt later on", nothings more permanent than temporary. In my experience things are more likely to default than get paid lol

[–] [email protected] 2 points 1 week ago

In my team we pay the tech debt on the following sprints

[–] [email protected] 8 points 1 week ago (1 children)

The longer you live in a place the more crap you will accumulate in your home. Windows need to be cleaned. Walls need to be painted. There’s this one tap, that’s fixed with some wire and tape.

Tech debt is like that just for software.

[–] [email protected] 5 points 1 week ago (1 children)

There's a second-order thing going on though with tech debt that makes it different than just maintenance: Tech debt is when you address a problem in a way that makes future problems more difficult to address. So if the wire-and-tape fix is actually robust, easy to work around, and/or easy to reverse, then it wouldn't be tech debt. But if it made it harder to unclog/clean the tap, or to fix the next leak, or install/remove things around it, then it would be like tech debt.

[–] [email protected] 2 points 1 week ago

Yes, the software might depend on outdated technology like oil burner heating and you want to transition to solar with a heat pump.

[–] [email protected] 12 points 1 week ago (1 children)

I blame every gray hair on Jenkins Pipeline’s so-called DSL, a.k.a. Groovy.
You’d have to pay me a seven-figure salary to work with that again.

[–] [email protected] 3 points 1 week ago

yup, that thing's a nightmare alright

[–] [email protected] 12 points 1 week ago (2 children)

A new job to you is an old job to others. You're just facing others' tech debt now.

[–] [email protected] 16 points 1 week ago

Yeah but you get a nice ramp-up period where you're allowed to be bewildered and unproductive. In that time, you can probably pick out two or three grandiose changes (ideally with hot new technologies) to throw on the pile before that period ends, and use them as resume padding and interview stories for the next job.

Unlike the old developers, you aren't complicit in the mess until a few years go by.

[–] [email protected] 1 points 1 week ago

There are plenty of greenfield projects out there.

[–] [email protected] 6 points 1 week ago

Nah, our tech stack is a loan shark who'll come collect technical debt in a month's time

[–] [email protected] 4 points 1 week ago

2 years? More like 3-6 months.

[–] [email protected] 2 points 1 week ago

I've actively been told off at work on multiple occasions for putting too much effort into making my code reusable and extendable later down the line

(As of recently I've had to rewrite an entire project from last year because I gave up and just wrote a big blob of difficult to maintain code, then unsurprisingly the requirements changed)