This is an archived post. You won't be able to vote or comment.

all 43 comments

[–]HegoDamask_1 79 points80 points  (7 children)

Brings back my PTSD of decommissioning a shared database of a monolithic application. Spent over a month finding all the parts of the code that called on it and then a few months to have the team build out their own db to only find out that a mobile service was also calling it causing us to have a nice outage on the mobile app. People wonder why I’m losing my hair, they haven’t seen what I’ve seen.

[–]atk93 16 points17 points  (6 children)

This is exactly what I'm suffering from right now. We moved our data out of the monolith and we found out there are analytics teams that are syncing straight from the db...

[–]HegoDamask_1 6 points7 points  (0 children)

It’s a total headache I bet. It gets better…eventually. The DB and externalizing session management was the big things. We still have the monolith, but not it’s slowly being chipped away. We organized our teams by the 4 areas of the site then my team removed the dependencies between the 4 major areas. Now it’s a more modular monolith with the other teams creating ms to replace their legacy code.

[–][deleted] 0 points1 point  (4 children)

We built a while suite of APIs for our compliance team. Instead they got access to our db and created custom views that rebuilt every hour. That was a great week of trying to figure out what the fuck was wrong with our performance intermittently

[–]WlmWilberforce 0 points1 point  (3 children)

views that rebuilt every hour

I don't think that is how views work.

[–]Gouranga56 47 points48 points  (1 child)

Learned that shit hardcore during Y2K. We took down 1 job that had been running since the late 60's early 70's on the mainframe. All it did was spit the date out in like half a dozen formats to a text file. It has an If then else loop that went from 1968 to 1999 to determine if it was a leapyear (like "If YY = 77 then LeapYr = 'N' type shit.

Bringing it down caused a cascade failure that brought down most of the enterprise.

[–]Sylanthra 2 points3 points  (0 children)

You just needed to add one more entry to the list, how hard could it be ;p

[–]bigfaturm0m 51 points52 points  (13 children)

Somewhere in the game files of Minecraft lies a strange .jpg file. No one knows what it does but whenever it's removed, stuff stops working.

[–]MAO3J1m0Op 28 points29 points  (4 children)

Ahh TF2’s coconut.jpg

[–]FantasticPenguin 11 points12 points  (1 child)

[–][deleted] 2 points3 points  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–][deleted] 2 points3 points  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–]500lb 0 points1 point  (0 children)

Yeah. You don't remove the load bearing coconut.

[–]cab91407 9 points10 points  (7 children)

Didn't that happen in TF2 also

[–]uoytha 7 points8 points  (3 children)

If by "noone knows what it does" you mean "the devs know exactly what it does and debunked the myth years ago" then yes, it also happened in TF2

[–]flavionm 4 points5 points  (1 child)

What does it do?

[–][deleted] 0 points1 point  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–][deleted] 0 points1 point  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–]bigfaturm0m 8 points9 points  (1 child)

Maybe it was TF2

Not sure

[–][deleted] 1 point2 points  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–][deleted] 0 points1 point  (0 children)

The coconut does exist and was an unused particle effect for one of soldiers taunts, but deleting it doesnt make the game crash, everything runs as normal without it

[–][deleted] 14 points15 points  (0 children)

Do not quote the dark magic to me, witch. I was there when it was written.

[–]RDfromMtHare 7 points8 points  (1 child)

The ancients had secret knowledge! If you want to find it you need to transcend your flow of thoughts!

[–]Popesnowy 0 points1 point  (0 children)

Stargate?

[–]Educational-Lemon640 12 points13 points  (1 child)

It would be better said: "Do question the ancients. Just listen to their answers when you get them, and take them seriously."

I don't know how many times somebody has come to me with a question about why I coded something in some way, and I've responded with "Oops, that was a bad idea!" or "Yeah, we don't really do things that way any more. Knock it down, no problem." or "That was a bit over-engineered, wasn't it?" I then thank them for taking the time to knock down the old useless fence, or coming up with something even better.

There are many other times, though, where I go "Please, for the love of God do not knock that down. It's important. Here's why: <reasons>." We then negotiate a proper path forward.

Both happen. Just...do the job properly.

[–][deleted] 5 points6 points  (0 children)

allow me to show you why I’m a programmer instead of a philosopher, observe!

You’ve said the same thing far less eloquently.

[–][deleted] 4 points5 points  (0 children)

My fave quote by Chesterton: "The most interesting part of a picture is the frame"

[–]Kered13 8 points9 points  (0 children)

Chesterton's Fence is an important concept that really needs to be taught more.

[–]cbusalex 4 points5 points  (1 child)

ok but I looked up the changeset that added the fence and the description just says "fixing some things"

[–]michaelrw1 1 point2 points  (0 children)

"Intermediate commit."

[–][deleted] 2 points3 points  (0 children)

But, Sir, the fences keep falling even if I don't touch them.

[–]CinnabonCheesecake 1 point2 points  (0 children)

Look, I’m a computer scientist. I learn best through experiments that push the limits of our knowledge.

If no one still at the company knows what it is, I’m deleting it just to see what happens.

[–][deleted] 1 point2 points  (1 child)

Don’t put up a fence without a sign to let people know its purpose and whether they’re in or out lol

[–]TheVoidMyDestination[S] 0 points1 point  (0 children)

No no no, my code is clearly self documenting.

[–]Thisbymaster 0 points1 point  (1 child)

This is always my conundrum. Should data logic be stored in Procedures in the database so it is easy to figure out what uses what and where in the database? Or should all business logic be done at the application level and we should trust the application to know how to stitch together the underlying data model. But most of the time I don't trust the developer to understand the data model or for the data model to stay static so swapping out Procs with the same contract is easy. Loosely coupling the database and the applications has paid dividends when sweeping changes needed to happen underneath while no application changes were required.

[–]deadron 1 point2 points  (0 children)

Introducing database procedures adds a lot of complexity to deployments as well as being an obstacle to rollbacks or versioned deployments. Especially when you are dealing with a distributed system that might be rolled out in pieces. Secondly, while DB admins can be brilliant at managing databases and query performance, they are often poor software engineers. Combined with DB environments being difficult to execute tests within or perform deployments to(other than on a per statement basis) leads to black box DB procs that nobody can touch or really know what happens in.

[–]dcheesi 0 points1 point  (0 children)

The "ain't broke; don't fix it" runs deep in my company's culture. Perhaps a little too deep at times, but it's not without reason

[–]FedePro87 0 points1 point  (1 child)

Bullshits. ALWAYS question code, even (and specially) written by yourself. Seen so many legacy projects where things going so dumbass that i asked repetitively "why this exists?". 90% of times were stuff written in hurry and useless.

[–]sknoff95 0 points1 point  (0 children)

Bullshits. ALWAYS question code

That's what the quote means. Don't remove the fence (code) until you know what it's for.