My take on this writing prompt.
“See? Just like what I have said earlier this convention adds absolutely no benefit and breaks VSCode auto-import. What kind of moron will think this is a good idea?”
It’s not like I haven’t heard about the so-called “rubber duck debugging” method: with this method you’re required to explain to a rubber duck exactly what your code does, every single line, and thus helping you figure out what is wrong yourself. My college roommate does this all the time; that was before 2020, now he talks to anime girl figurines he called “vee-tubers” instead. But either way, you’re supposed to have a one-man conversation with your duck (or your figurines, in case you’re into figurines), which means you and your duck are supposed to face each other, which in terms means the duck probably shouldn’t be facing the screen, nor should it examine the code by itself and make direct comments out loud.
“Geez, what is this code… grow out of your Clean Code and design patterns phase already. You have first-class functions why the hell are you still doing command pattern in this part?”
“Because I need to…”
“It’s just a simple RESTful API, you want to bring pain to anyone who has to review this shit or what? I know you have worked overtime every day in the past few weeks but that doesn’t mean you can hurt other people by doing this, does it?”
I’ve heard stories that geese can be very fierce animals; a lot of people have been bitten by one. I have zero experience with real living ducks but I can’t help but assume ducks are at least very similar: both are birds, both are tasty when cooked properly, both are savages.
Back on the company’s anniversary celebration day our team leader, knowing almost everyone have done badly in terms of software quality, wrote a script to collect all the bug issues on our GitLab server and all the bug tickets from user. He then sorted everyone in our team by the amount of bugs that we were responsible for, and gave everyone in the top 10 a rubber duck. That’s how I got mine. Some people happily added their new ones to their ever-growing rubber duck collections. Some people put theirs right next to the monitor to remind them about this one big L so that they will be more careful and cautious. I squeezed on mine and it screamed “ow what the frick?” back at me.
That day, after work, I took it home. Can’t have something that’ll make everyone thinks I’m a maniac in the office. I tapped on its yellow head. “Are you there? Is that you?” I asked.
“I see you finally lost your mind after long time exposure to computer screen, eh?”
“Am I crazy or is that really you?”
And after a couple seconds I heard a very, very confirmative “yes”.
Turns out the duck the tech lead gave me somehow has 20+ years of software development experiences (self-proclaimed; don’t ask me why the rubber doesn’t deteriorate at all in such a long time because I don’t know either), and out of all the programming languages its favourite is the one called “Standard ML”. Never heard of that name before, but it describes the feeling as “sailing on a calm rubber sea”.
I’m tired of keep calling him “hey”, “bro”, “you” or “it”; he’s probably getting tired of this as well. “If you are sentient, can I at least have your name, please?” I asked.
So that’s why you are a d*ck – as much as I want to tell this joke, it’s a very rude joke to tell so I decided not to. Really can’t help but thinking about weird stuff when you have a sentient rubber duck, like, who – which duck gave him the name, its rubber duck dad or its rubber duck mom? Do rubber ducks have rubber duck parents?
“So what’s your name, kid?”
“Mark.” I cracked open a can of diet coke. “Mark Schmidt.”
“Oh, a generic name I see.”
Oh shut up you Dick.
Work is as boring and tiring as usual; Richard didn’t really help me that much even if he stayed silent when he’s in the office: people can always find a way to make mistakes no matter what. Must be painful to bear with all the rookie mistakes he hear from me and not being able to utter a thing all day. I paid extra attention to everything around me, but found no ducks doing anything besides squeaking when their owner squeezed them. Makes my interactions with Richard feels like a total fever dream.
During the lunch break I sit down next to our tech lead in the cafeteria. “Hey,” I asked, “do you still remember the rubber ducks a few weeks ago? Where are they from?”
“I dunno, Amazon? I bought them on Amazon a few days before the anniversary. Really don’t know exactly where they were made except the country name.”
“Isn’t it weird to have a conversation with a rubber duck? It definitely looks funny from other people’s perspective.”
“What? No, no need to be embarrassed about it. Everyone in this industry knows. You bring out your duck, and they’ll understand what you’re doing.”
“No, I mean having real conversations. “
He gave me a startled look. “What do you mean by real conversations? “
“Like, you know, the duck actually talks back to you? “
He put down his fork on the plate. “Are you telling jokes or what?”
“Why would a rubber duck talk?”
“Mine just did. Kinda did, I’m not sure. I don’t know why either.”
He was silent for a short while. “You need a rest. You must be really tired from whatever you’ve been pulling off recently. You’ll have your vacations, and I’ll make sure you will.”
“Bro, this isn’t looking good. You are in deep trouble.”
Richard complained as he bumped his beak on the arrow keys of my keyboard, checking the content on the screen occasionally. “This one is okay, this one is okay, this one a ‘meh’… and no, this one is bad. This one is even worse. Oh my dear Lord they expect you to do THIS? Sucks to be you then.”
“Did anything go wrong?”
The team I was in was assigned to work on a new project yesterday so I decided it would be wise to do some research before getting back to work from vacation; Richard was interested so I kept the computer screen unlocked while I take my shower.
“They don’t know what they’re asking for. This project is going to fail. There’s no way you can finish this thing this way with this tight of a schedule.”
“What can I do about this?” I asked.
“See if you can persuade them otherwise. These people shouldn’t be messing with tech-related decisions in the first place.”
“What will happen if I failed to do so?”
He looked at me and shrugged his non-existent shoulders. “Well, at least you still have your savings…”
Then things… went bad. Really bad, just like Richard speculated. It’s what people would call a “death march”. Working hard for months towards an unachievable goal, only to be complained for being incompetent with no reward whatsoever in the end. In the beginning Richard said he wants to help so I set up my spare laptop for him, but after a few days he came back to me, saying it’s no use to work on this any longer. “This is utter bullshit,” he said, “who decided that this is a good idea?”
“Allen McKenzie. A leader guy in our team. Don’t know exactly what he does though. Consultant maybe.”
“Consultant? So he’s the villain then.”
I was still getting paid so I moved on with my work. And then suddenly one day, no one talks about the project in the project chat group anymore. Daily meetings were cancelled, other things were cancelled as well, the tester in the team sent me a DM saying “it’s a fun ride to work with you guys so it truly is a shame that we couldn’t work together anymore”… things like that. Each one of the team was called into a meeting room, and after something like 10 or 20 minutes they would come out of the room with any facial expression but the ones that indicate good things. Then our tech lead came to my desk.
“Mark, it’s your turn. Our boss want to talk to you.”
“Wait, what am I expecting?”
“You will know, my friend.” he said, “Don’t let it get to you.”
“I’m interested in you. From what I know, you’re the only one in the team that predicted the terrible outcome *and* oppose the idea publicly,” he said, “so I decided to have a one-to-one meeting with you.”
“One-to-one? Was there other people before?”
“Allen McKenzie was here until just now; I told him I want him to be absent for this.”
He clears his throat. “What makes you think our project will fail? How do you come to that conclusion? I’m very interested.”
I remembered what Richard have said in the very beginning of the project. “The goal is too big.” I recited, “It’s unreasonable.”
“Well Allen did say you guys can complete it on time.”
“He has no idea how hard it actually is to adapt to other people’s code base. The way he talks almost feels like he has never written a single line of code in his life and all he ever did is just tricking people into believing whatever he says.”“
He frowned. In all regards Allen was supposed to be a “better” engineer than me with 9+ years of software development and 5+ years of management experience; who am I, a junior just graduated from college, to say anything about his judgements? Even if he is at all a con artist, There’s just no way people would ever believe me. “The important thing is, the project is now considered to be a failure. Officially considered to be a failure, as it should be for at least three months ago. You probably feel the same way, don’t you? Now you are finally free.”
I nodded slightly. He went on.
“Well, you see, we don’t really impose deadlines on experimental projects like the one you are working on, that will be nonsensical; we’re willing to acknowledge defeat, if need be. The thing is, when it drags on for too long without any sign of success, sometimes we will have to take forceful measures… Sorry, nothing personal, but you’re being laid-off.”
“This, of course, is not all of it. We now offer you two options. One is to leave with 5 months and a half worth of your monthly salary, which is the amount we should pay you for the layoff according to the law. The other option is to sign a new contract, after which you’ll become what kids these days called an independent contractor, and you’ll be paid the same amount of money monthly as if you’ve never been laid-off. You can choose either of them; it’s up to you.”
Bullshit. “You can choose” you say, as if I ever had any choices. No thank you I’ll take the money, you and your company can rot in financial hell.
I walked out of the meeting room, feeling light-headed. I went back to my desk, one of the employees from the company’s administration department was already there, holding a flatten cardboard box in her hand. “Mark, well, you know…”, she said, “I think I’ll have to let you package your stuff and leave. Here’s a cardboard box for packaging. Tell me if you need more.”
Well I guess this is it. I started cleaning up my desk, then I took my box, left the office building, went to the underground parking lot, and put it inside my car. I put Richard right next to the front window and started the engine. “A bit early for you to leave work than usual today.” Richard asked, “Did something happen?”
So alongside with the whirring of the car engine, I told him everything, just like how I did with my code. The layoff, the mid-level managers, the boss who instead of facts believed in superstition and weird-ass “consultant”s, all that stuff. After hearing all this, Richard gave out a long sigh.
“Told you this would happen.” he said, “What now?”
“I don’t know. Update my CV, grind Leetcode and find another job, I guess.”
“Yeah, I guessed so…”
I drove my car out of the parking lot and up to the highway. Everything looked fresh and surreal; I have never left the office this early, so I never really got to see what the scenery looks like at this time of the day. “Hey,” out of the blue he asked, “do you want to have your revenge?”
“…What do you mean by revenge?”
“Revenge is revenge.”
“That really didn’t explain anything.”
“I’ll explain later. Just tell me whether you want it or not.”
Was there really anything that can truly stop me from doing that? I wonder. “Uh…Yeah? I guess I want it?”, I said.
I can almost feel the grin on the duck’s rubbery beak.
“Good. Glad we’re on the same page here, because oh boy do I have a feast for you…”
The setting sun painted a good part of the sky bright red, merging with the crystal clear blue and fluffy white, make it looks like it’s on fire. Little did I know one day this place is going to be set on fire as well, just like the sky right now, either physically or metaphorically, all up to our rubber duck overlord. Those managers and consultant crooks can go and leech off company after company as much as they want, but there won’t be a lot of time for them to enjoy being treated as elites by the employment market from now…