Joined devRant on 2/19/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
A follow-up to a previous rant: https://devrant.com/rants/2296700/...
... and how the senior dev recently took it up a notch.
To recap: Back then the senior dev in our two-man project prepared tasks for me so thoroughly they became typing monkey jobs. He described what to do and how to do it in minute detail in the JIRA tasks.
I talked to him back then how this is too detailed. I also talked to our boss, who agreed to nudge mr. senior in the right direction and to make it clear he expects teamwork.
Fast forward to a couple of days ago. An existing feature will get extended greatly, needing some rework in our backend project. Senior and me had a phone call about what to do and some unclear details in the feature spec. I was already frustrated with the call because he kept saying "No, don't ask that! That actually makes sense, let's just do it as the spec says" and "Don't refactor! We didn't request a budget for that from our customer". Like wtf, really? You don't consider refactoring part of our job? You don't think actually understanding the task improves the implementation? Dude...
We agreed this is a task for one person and I'd do it. It took me the rest of the day to wrap my head around the task and the corresponding existing code. It had some warts, like weird inheritance hierarchies and control flow jumping up and down said hierarchy, but nothing too bad. I made a mental note to still refactor this, just as much as necessary to make my task easier. However... the following day, I got an email from mr. senior. "I refactored the code after all, in preparation for your task". My eyebrows raised.
Firstly, he had made the inheritance hierarchy *worse*. Classic mistake: Misusing inheritance for code reuse. More control flow jumping up and down like rabid bunnies. Pressed on that matter, he replied "it's actually not that bad". Yeah, good work! Your refactoring didn't make things worse! That's an achievement worthy of being engraved on your tombstone. And didn't he say "no refactoring"? Apparently rules are unfortunate things that happen to other people.
But secondly, he prepared classes and methods for me to implement. No kidding. Half-implemented methods with "// TODO: Feature x code goes here" and shit. Like, am I a toddler to you? Do you really think "if you don't let me do things myself I feel terribly frustrated and undervalued" is best answered with giving me LESS things to do myself? And what happened to our boss' instruction to split the task so each of us can work on his parts?
So, this was a couple of days ago. Since then, I've been sitting in my chair doing next to nothing. My brain has just... shut down. I'm reading the spec, thinking "that would require a new REST endpoint", and then nothing happens. I'm looking at the integration test stubs ("// TODO: REST call goes here") and my mind just stays blank, like a fresh unpainted canvas. I've lost all my drive.
I don't even know what to do. Should I assign the task back to him and tell him to go fuck himself? Should I write my boss I'm suddenly retarded? Could I call in sick for a year or so? I dunno... I can barely think straight. What should I do and how?5
"Impossible deadline experience?"
When product owners promise delivery dates.
One day, I came back from a two weeks holiday, relaxed. I noticed a teammate missing. "Yes, he took the week off". Sure, why not.
We were working under a bastardized enterprisey version of Scrum (didn't we all at some point?). So we didn't just have a product owner, we had three and an additional "Head of PO". Because enterprises can't live without hierarchies or something. Barely an hour after I came into office, she entered the room and came straight to me. "Your coworker was almost done implementing feature X. You need to finish it immediately. No worries, though, coworker said the rest is a piece of cake".
It wasn't. There was *a lot* left to do, the JIRA task wasn't entirely clear, and the existing code for the feature was so-so (obviously WIP code). I estimated two weeks for the implementation, plus some time to clarify the requirements. When telling "Head of PO" she lost her shit. Screaming things like "this feature is due the end of this week" and "I signed this with my blood!". Well, I didn't, and I made it clear that I hadn't been consulted on this, thus I would not accept any blame in case we missed the deadline.
So I gave my best that week, getting pestered by "Head of PO" all the time. "Is it done yet?", "why does it take so long?" and "your coworker would've been done by now!". Yeah fuck you, too. Not only was I not relaxed any more, I was even more stressed than before my holiday! Thanks, you stupid bitch.
Well, her arbitrary deadline came and the feature wasn't ready. And what happened was... exactly nothing. The following week my coworker returned, who gave me an apologetic smile. "I told her the feature was nowhere finished. And even me, being familiar with the task, couldn't make it in time". We finished the feature together that week, and that was the end of it. So... "Head of PO" either didn't listen or lied to me. She then stressed me to the max right from the day I came back from my holiday. And in the end it didn't even matter.
Again, thanks you stupid bitch, for creating a toxic work environment. Should you ever read this, I'm happy I quit and I hope you miss every single deadline for the rest of your life. Screw you.8
You know, I sort of hope that open-plan offices become illegal after this Corona crisis.
We all know most companies don't give a flying fuck about the productivity, opinion or wellbeing of their "lowly work force". OTOH maybe, just maybe, do politicians care about lowering the risk of such a pandemic repeating. Pass some laws for reasonable working conditions already!7
I really need to vent. Devrant to the rescue! This is about being undervalued and mind-numbingly stupid tasks.
The story starts about a year ago. We inherited a project from another company. For some months it was "my" project. As our company was small, most projects had a "team" of one person. And while I missed having teammates - I love bouncing ideas around and doing and receiving code reviews! - all was good. Good project, good work, good customer. I'm not a junior anymore, I was managing just fine.
After those months the company hired a new senior software engineer, I guess in his forties. Nice and knowledgeable guy. Boss put him on "my" project and declared him the lead dev. Because seniority and because I was moved to a different project soon afterwards. Stupid office politics, I was actually a bad fit there, but details don't matter. What matters is I finally returned after about 3/4 of a year.
Only to find senior guy calling all the shots. Sure, I was gone, but still... Call with the customer? He does it. Discussion with our boss? Only him. Architecture, design, requirements engineering, any sort of intellectually challenging tasks? He doesn't even ask if we might share the work. We discuss *nothing* and while he agreed to code reviews, we're doing zero. I'm completely out of the loop and he doesn't even seem to consider getting me in.
But what really upsets me are the tasks he prepared for me. As he first described them they sounded somewhat interesting from a technical perspective. However, I found he had described them in such detail that a beginner student would be bored.
A description of the desired behaviour, so far so good. But also how to implement it, down to which classes to create. He even added a list of existing classes to get inspiration or copy code from. Basically no thinking required, only typing.
Well not quite, I did find something I needed to ask. Predictably he was busy. I was able to answer my question myself. He was, as it turns out, designing and implementing something actually interesting. Which he never had talked about with me. Out of the loop. Fuck.
Man, I'm fuming. I realize he's probably just ignorant. But I feel treated like his typing slave. Like he's not interested in my brain, only in my hands. I am *so* fucking close to assigning him the tasks back, and telling him since I wasn't involved in the thinking part, he can have his shitty typing part for himself, too. Fuck, what am I gonna do? I'd prefer some "malicious compliance" move but not coming up with ideas right now.5
The exit interview with an ex boss.
While working there, we had regular meetings every other week. Discussing current work, equipment requests, technology, sometimes office politics. At some point we discussed that our team was moved to an open-plan office and how I regarded this as detrimental to our productivity and satisfaction. Of course we sometimes had different opinions, but it was an amicable atmosphere. My boss also always carried a personal organizer and sometimes wrote notes during these meetings.
Later I resigned. Him becoming more and more abusive was a major reason, and I think he knew he had crossed a line. So the day of the exit interview came...
In a professional setting, you'd thank each other for the good collaboration. Maybe laugh about one or two points from the past. And then wish each other success for the future and say farewell.
Not there. Not with him in the exit interview.
Instead, he apparently went through a list in his personal organizer. A list of every single thing we ever disagreed at. And roasted me for each. single. item. "Back when you said x... you can't really say it like that". Or "remember that time when you were against open-plan offices? Let me tell you, that's just your opinion. There are no actual arguments against them, it's just a matter of taste". And that went on and on and on. Like a final reckoning. Like he needed to get revenge. I hope that carnage made him happy, because it made *me* happy to have had resigned.
And it was fucking unprofessinal, because this is the management equivalent of stomping your foot in rage and anger, shouting "no no nooo I'm right! I! am! Riiiiiiight! *stomp*".6
Just a short "dafuq?" about VS Code.
I have a MacBook Pro from last year, so it's a capable machine. And there I was today, sitting on the train, coding some Python in VS Code.
Suddenly it got all laggy. Like, one second behind my typing, dropping keystrokes, stuttery scrolling... the whole deal. The system itself was perfectly responsive and the activity manager showed the CPU at 30%. After a minute or so, it magically recovered and worked as if nothing ever happened.
What the actual fuck was VS Code doing? I mean, it's a fucking text editor. In 2019 this should be a bloody solved problem! There's absolutely no reason to use around 30% CPU in the first place, and use that much and still *lag*. Holy crap, and people ask with a straight face "what's wrong with reinventing everything based on web technologies?" Fuck everything Electron-based. Make it ElectrOFF already.
*takes deep breath*
So, editor suggestions are welcome. I used Sublime Text 3 before VS Code, I'll likely return to that.21
I just got e-mail:
"Sunsetting Mercurial support in Bitbucket
After much consideration, we've decided to remove Mercurial support bla bla bla crocodile tears bla bla..."
So basically, Bitbucket started out as a Mercurial repository hosting platform. After GitHub's rise in popularity, they decided "hey, everyone's welcome, both Hg and Git!" Then it became Git and "okay Hg too, but shhh don't tell anyone". Now they FINALLY completed running it into the ground: "Only 1% of repositories are Mercurial" - yeah no shit sherlock, after actively hiding the fact you support it, people don't find out you support it! Surprised Pikachu! Oh congrats, Atlassian. You're so smart.
Mercurial support was the sole reason I had repositories there. I mean, for Git we already have GitHub, GitLab and others. So what's their unique selling point again? What's that, the sound of crickets? Thought so.
So after that, hopefully they change the name to "Gitbucket". Or preferably "Bitfuckit".7
After leaving my previous employers behind, I think I'm finally ready to write negative reviews about them without getting into a rage.
The policies of glasdoor and similar platforms say to review a company, not individuals. However, as the saying goes, "employees don't quit companies, they quit managers". And that is 100% true for me. The reviews I'd write would in large parts be about how managers mistreat the people they're responsible for. In my case even to the point I needed therapy... so really really bad.
I'm not sure how to bring those two things together. Have you made similar experiences? How would you write such reviews? Thanks for any tips.5
Had a conference call for a fairly large internal project today. Everyone involved was there. Turns out the other subteams had done jack shit. Blablabla drafts and concepts bla, yeah right.
Then someone had the idea we needed an e-mail distribution list. But what's it gonna be called?
Suddenly *everyone* had an opinion and wanted their name used. And, in true "design by committee" fashion, everyone's ideas got merged.
Our list's name is now 30. fucking. characters. long. FUCK. you.
Luckily, I can leave the project this month. Can't wait...
Hold a meeting that the participants actually want.
The biggest time wasters I had to attend were:
- "generic weekly meet up of people not working together telling what's new on their side" (I don't work with you, I DON'T CARE)
- "management wants updates/wants to talk about doing instead of letting us do" (go read Jira tickets, and ffs stay out of the experts' field... They're experts in it for a reason)
- "no agenda, this is just to get to know each other" (I get to know people on my own terms, stop forcing what can't be forced)
- most Scrum meetings (some people need guidance, I don't! Your Scrum chains actually hinder my productivity! Can we please stop wasting my time and nerves?)
And the best meetings? A couple of coworkers realizing "hey we need to make a decision here, let's book a conference room together" and "hey you know your stuff about xyz, can you teach us what you know?".10
Not a rant. But about Windows 10, because some asked "why are there only rants about it?"
The day before yesterday: When switching off my PC, I noticed the shutdown options were "Update and restart" and "Update and shutdown". I chose the latter and went to bed.
Yesterday: I switched on my PC, Windows takes some extra seconds at "Installing updates, 99% done" and... I'm on my desktop. All is well. As unspectacular as it can get.
For me, that is every update experience since Windows 7, ever.5
Most obnoxious company process: The newly introduced promotion process at my ex-employer.
Originally they had a run-of-the-mill process. You and your boss reviewed your performance independently, then spent an hour to compare results. If you agreed to have proven yourself, your boss did some remaining paperwork (iow he did his job) and done.
Under the guise of transparency, fairness and autonomy of employees this was changed to:
You had to find three coworkers willing to review you (favorably). You collected their feedback, processed that (strengths, "opportunities for improvement", etc) and presented it to your boss for review. These were the first two steps of four in total, of which I've forgotten the other details tbh. It became pretty ridiculous with you defining "progress indicators", your boss's boss involved in another review round and what not.
The true purpose was clear: Delaying promotions as long as possible, making the employees do all the work, and being able to just say "no" at any point. I don't know how intellectually superior managers and HR viewed themselves, because literally none of my coworkers bought this as an improvement.
But, yeah, that became the new process at a company too big to fail.1
Worst WTF dev experience? The login process from hell to a well-fortified dev environment at a client's site.
I assume a noob admin found a list of security tips and just went like "all of the above!".
You boot a Linux VM, necessary to connect to their VPN. Why necessary? Because 1) their VPN is so restrictive it has no internet access 2) the VPN connection prevents *your local PC* from accessing the internet as well. Coworkers have been seen bringing in their private laptops just to be able to google stuff.
So you connect via Cisco AnyConnect proprietary bullshit. A standard VPN client won't work. Their system sends you a one-time key via SMS as your password.
Once on their VPN, you start a remote desktop session to their internal "hopping server", which is a Windows server. After logging in with your Windows user credentials, you start a Windows Remote Desktop session *on that hopping server* to *another* Windows server, where you login with yet another set of Windows user credentials. For all these logins you have 30 seconds, otherwise back to step 1.
On that server you open a browser to access their JIRA, GitLab, etc or SSH into the actual dev machines - which AGAIN need yet another set of credentials.
So in total: VM -> VPN + RDP inside VM -> RDP #2 -> Browser/SSH/... -> Final system to work on
Input lag of one to multiple seconds. It was fucking unusable.
Now, the servers were very disconnect-happy to prevent anything "fishy" going on. Sitting at my desk at my company, connected to my company's wifi, was apparently fishy enough to kick me out every 5 to 20 minutes. And that meant starting from step 1 inside the VM again. So, never forget to plugin your network cable.
There's a special place in hell for this admin. And if there isn't, I'll PERSONALLY make the devil create one. Even now that I'm not even working on this any more.9
Management in big corp I collaborate with has decided they want intermediate releases every 4 weeks. That's kinda OK, we work in two week Scrum sprints.
However, not this sprint. Because of Easter it's three weeks. And because the 4 weeks rule is absolute, the one after that is only one week. Which implies we do the whole review-presentation-planning ceremony twice in a row. That's fucking absurd. But when management agrees on a plan, it's reality that needs to comply, right? Argh.2
> Worst work culture you've experienced?
It's a tie between my first to employers.
First: A career's dead end.
Bosses hardly ever said the truth, suger-coated everything and told you just about anything to get what they wanted. E.g. a coworker of mine was sent on a business trip to another company. They had told him this is his big chance! He'd attend a project kick-off meeting, maybe become its lead permanently. When he got there, the other company was like "So you're the temporary first-level supporter? Great! Here's your headset".
And well, devs were worth nothing anyway. For every dev there were 2-3 "consultants" that wrote detailed specifications, including SQL statements and pseudocode. The dev's job was just to translate that to working code. Except for the two highest senior devs, who had perfect job security. They had cooked up a custom Ant-based build system, had forked several high-profile Java projects (e.g. Hibernate) and their code was purposely cryptic and convoluted.
You had no chance to make changes to their projects without involuntarily breaking half of it. And then you'd have to beg for a bit of their time. And doing something they didn't like? Forget it. After I suggested to introduce automated testing I was treated like a heretic. Well of course, that would have threatened their job security. Even managers had no power against them. If these two would quit half a dozen projects would simply be dead.
And finally, the pecking order. Juniors, like me back then, didn't get taught shit. We were just there for the work the seniors didn't want to do. When one of the senior devs had implemented a patch on the master branch, it was the junior's job to apply it to the other branches.
Second: A massive sweatshop, almost like a real-life caricature.
It was a big corporation. Managers acted like kings, always taking the best for themselves while leaving crumbs for the plebs (=devs, operators, etc). They had the spacious single offices, we had the open plan (so awesome for communication and teamwork! synergy effects!). When they got bored, they left meetings just like that. We... well don't even think about being late.
And of course most managers followed the "kiss up, kick down" principle. Boy, was I getting kicked because I dared to question a decision of my boss. He made my life so hard I got sick for a month, being close to burnout. The best part? I gave notice a month later, and _he_still_was_surprised_!
Plebs weren't allowed anything below perfection, bosses on the other hand... so, I got yelled at by some manager. Twice. For essentially nothing, things just bruised his fragile ego. My bosses response? "Oh he's just human". No, the plebs was expected to obey the powers that be. Something you didn't like? That just means your attitude needs adjustment. Like with the open plan offices: I criticized the noise and distraction. Well that's just my _opinion_, right? Anyone else is happily enjoying it! Why can't I just be like the others? And most people really had given up, working like on a production line.
The company itself, while big, was a big ball of small, isolated groups, sticking together by office politics. In your software you'd need to call a service made by a different team, sooner or later. Not documented, noone was ever willing to help. To actually get help, you needed to get your boss to talk to their boss. Then you'd have a chance at all.
Oh, and the red tape. Say you needed a simple cable. You know, like those for $2 on Amazon. You'd open a support ticket and a week later everyone involved had signed it off. Probably. Like your boss, the support's boss, the internal IT services' boss, and maybe some other poor sap who felt important. Or maybe not, because the justification for needing that cable wasn't specific enough. I mean, just imagine the potential damage if our employees owned a cable they shouldn't!
You know, after these two employers I actually needed therapy. Looking back now, hooooly shit... that's why I can't repeat often enough that we devs put up with way too much bullshit.3
Some time ago I quit my job at a big corporation. Getting treated like a resource, a production line robot, just isn't for me.
My current job is way better. Small company, lots of freedom, getting to work on multiple projects, the result counts. But, as a small company, we also collaborate with big corporations. So I joined a team at one.
Watching my coworkers there, I'm reminded of robots again. Lunch break? 15 minutes tops. Just shovel some edibles into your face hole and back to work. Five minutes break between meetings? Open laptop, work work work. The concept of "needing rest" seems entirely foreign to them.
Yesterday our product owner "relayed some criticism" from other team members to me. Apparently, me going to the toilet in breaks is "suddenly disappearing". Or me not replying within 15 minutes in the chat is outrageous. And then he tried to berate me how I'm "his developer" and his team's tasks have top priority. So, according to the PO the problem is me and I should "get used to their mode of operation".
How about "no". I quit a fucking job because that "mode" is simply inhuman. After that feedback, you bet I'm taking my legally protected 30 minutes lunch break and any other break I can. Because fuck yourself, you're not going to burn me out. The best part, that team has smokers who "suddenly disappear" twice as much as I do, but apparently that's somehow a-ok.
I had to remind him that his project is just one of several I'm working on, so no, not "his dev". While that wasn't exactly a powerful comeback, it did shut him up. Still going to talk to my boss on Monday, at least to ensure that the PO can't talk shit about me behind my back.4
"How useful was your CS degree and why?" - I studied CS at university, my education always was incredibly useful.
Firstly, the knowledge you gain in itself is useful. Furthermore, we explain and understand the unknown in terms of the known. Thus, the more you know, the easier you learn new things.
But secondly and more importantly, university teaches you *how* to think. In a structured way, like a scientist or engineer. To see the bigger picture.
I originally wanted to end here, but I've read a couple of entries doubting the usefulness of any CS degree.
Our profession isn't all that different from others. It is, however, relatively young. How's this for an analogy: We're still in the stage of building sand castles. That's fine, and can be self taught. But in years to come we'll want to build bridges and sky scrapers, which are not just "sand castles scaled up". Our sand castle knowledge won't help us here. Sky scrapers need entirely different materials and a good understanding of architectural statics.
Can you still teach that yourself? Maybe. Will a formal education with a degree be useful and generally more trusted? I bet.3