FYI: it’s typically management who cuts corners, whether in hiring or process. I’ve met a few exceptions but most devs take pride in their work.
Tips:
- if you’re experienced and management insists on cluegy solutions, either refuse or leave a trail of tickets and comments re: technical debt for the next dev.
- If you’re not experienced, or if you feel out of your depth and have no senior to turn to, know that you will with time and just try do your best.
- In either case, experienced devs will understand the situation and won’t judge you.
- Also in either case, fire the client.
Another method I’ve used extensively is to block code reviews on unmaintainability. Management has insight into high level stuff, but devs where I work dictate what gets merged.
Whenever I can, my code isn’t ready yet, it needs a few tweaks until the code is viable. That way, if I can never touch the code again, it has a chance to not be terrible in the future
I was on the receiving end, except the roles are reversed. Dude retired and left an undocumented spaghetti mess.
But! He worked on a code base by himself for two years, on a subject matter he knew nothing about, in a language he didn’t know, and kept asking management for help. I don’t blame him a single bit, not the tiniest iota. 200% management fault, once for having him do that and once again for ignoring his cries for help.
It feels like you’re describing one of my previous jobs
Oh, were you going to give me a raise that’s more than inflation? No? More than 6 days off a year? Oh, no? Match a 401k? …no. Yeah, good luck with the clusterfuck. The little energy I had beyond just making this function went into purposely obfuscating everything. Just give it to your AI, that’ll sort it out.
I mean, i asked them to allocate time for me to write documentation and they didnt reply to those emails. Its not unmaintainable, but its still not very well documented apart from some comments on the more complex or intransparent sections of the code.
If {Kolanaki != Employed_Here} then {exit()};
Making myself unfirable. 😎
Goddamn that’s a great quote
I wish I’d known about it in 2020 when the powers that be made it excruciatingly clear that “essential worker” was code for “acceptable sacrifice”…
And making your coworkers hate you.
There is only a problem if I am not their co-worker, tho. 🤷🏻♂️
Is this the new industrial sabotage?
Nope. It’s the norm. Well maintained code is a rarity.
It’s a rarity because the nano second a prototype works, it never gets touched again because management only heard it works and don’t give dev more times to make it proper.
So imagine management deciding to ask devs to go back and clean-up a codebase, pure fantasy.
So just don’t tell “management” it’s done. Easy.
Wish granted. Now management questions why everything “takes you so long”, and you were passed up for promotion in order to promote Jim (just last week, he did a presentation about his new feature that uses fancyAssDB).
Don’t worry, though. They’ll need your help soon, in order to make Jim’s fancyAssDB pet project sync with our oldAssDB legacy server (which is a completely different User/id structure. TBH might need to refactor most of Jim’s code to fit. Have fun extending all of Jim’s hardcoded features). He quit the company to join a crypto startup. Still no promotion though, since you finish stuff kinda slow (I mean, Jim built it in 2 weeks, so it can’t be too complicated).
EDIT:
So now I hear you thinking “well at some point, they’ll notice how much better my code works, and that features are much easier to integrate”.
But don’t worry, because the next month, your manager will be promoted to head of a new department and forget you exist. Meanwhile, the new head of your department doesn’t know you, and is thinking of promoting Frank. While you were fixing Jim’s code, Frank added some features to yours using fancyAssLib3. He’s doing a presentation on it tomorrow, and management is very interested, because they hadn’t heard about this code yet. It’s Frank’s codebase, right? I mean, he’s doing a presentation on it.
I try to do that as much as possible, but comes a point where you can’t push back the task in the next sprint.
Taking a job at DOGE
This was my first laugh of the day. Cheers.
This explains a lot.