Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "wk213"
One week, and it turned out to be worse than that.
I was put on a project for a COVID-19 program in America (The CARES Act). The financial team came to us on Monday morning and said they need to give away a couple thousand dollars.
No big deal. All they wanted was a single form that people could submit with some critical info. Didn't need a login/ registration flow or anything. You could have basically used Google Forms for this project.
The project landed in my lap just before lunch on Monday morning. I was a junior in a team with a senior and another junior on standby. It was going to go live the next Monday.
The scope of the project made it seem like the one week deadline wasn't too awful. We just had to send some high priority emails to get some prod servers and app keys and we were fine.
Now is the time where I pause the rant to express to you just how fine we were decidedly **not**: we were not fine.
Tuesday rolls around and what a bad Tuesday it was. It was the first of many requirement changes. There was going to need to be a review process. Instead of the team just reading submissions from the site, they needed accept and reject buttons. They needed a way to deny people for specific reasons. Meaning the employee dashboard just got a little more complicated.
Wednesday came around and yeah, we need a registration and login flow. Yikes.
Thursday came and the couple-thousand dollars turned into a tens of millions. The amount of users we expected just blew up.
Friday, and they needed a way for users to edit their submissions and re-submit if they were rejected. And we needed to send out emails for the status of their applications.
Every day, a new meeting. Every meeting, new requirements that were devastating given our timeframe.
We put in overtime. Came in on the weekend. And by Monday, we had a form that users could submit and a registration/ login flow. No reviewer dashboard. We figured we could take in user input on time and then finish the dashboard later.
Well, financial team has some qualms. They wanted a more complicated review process. They wanted roles; managers assign to assistants. Assistants review assigned items.
The deadline that we worked so hard on whizzed by without so much as a thought, much less the funeral it deserved.
Then, they wanted multiple people to review an application before it was final. Then, they needed different landing pages for a few more departments to be able to review different steps of the applications.
Ended up going live on Friday, close to a month after that faithful Monday which disrupted everything else I was working on, effective immediately.
I don't know why, but we always go live on a Friday for some reason. It must be some sort of conspiracy to force overtime out of our managers. I'm baffled.
But I worked support after the launch.
And there's a funny story about support too: we were asked to create a "submit an issue" form. Me and the other junior worked on it on a wednesday three weeks into the project. Finished it. And the next day it was scrapped and moved to another service we already had running. Poor management like that plagued the project and worked in tandem with the dynamic and ridiculous requirements to make this project hell.
Back to support.
Phone calls give me bad anxiety. But Friday, just before lunch, I was put on the support team. Sure, we have a department that makes calls and deal with users. But they can't be trained on this program: it didn't exist just a month ago, and three days ago it worked differently (the slippery requirements never stopped).
So all of Friday and then all of Saturday and all of Monday (...) I had extended panic attacks calling hundreds of people. And the team that was calling people was only two people. We had over 400 tickets in the first two days.
And fuck me, stupid me, for doing a good job. Because I was put on the call team for **another** COVID project afterwards. I knew nothing about this project. I have hated my job recently. But I'm a junior. What am I gonna say, no?8
You’ve all heard my story, and this has happened a few times so here’s the short version:
We have customers who are difficult. Like very difficult. And they don’t understand how much work the things they ask for take. So I’ve rewritten massive functional areas in roughly a month.
The three times this happened my total branch diff was between 900kb and 2mb. To put that in perspective, that’s 7 floppy disks (the real ones). I was in the office from 5:30a until 11pm every day for the entire duration including weekends for like 4-6 weeks each time and always managed to get the tests to run at the last minute. I was sleeping on my bosses office floor for several nights a week. Its like blowing up the Death Star. Pretty awesome feeling.
The restaurants around learned my routine and would have my lunch and dinner ready when I walked in every night so that was pretty awesome too. Yes I was promoted for this.9
Would you like to smile for 10 seconds? Read this short story:
During World War II, numerous fighter planes were getting hit by anti-aircraft guns. Air Force officers wanted to add some protective armour/shield to the planes.
The question was "where"?
The planes could only support few more kilos of weight. Mathematicians were called for a short consulting project.
Fighter planes returning from missions were analysed for bullet holes per square foot.
They found 1.93 bullet holes/sq. foot near the tail of planes whereas only 1.11 bullet holes/sq. foot close to the engine.
The officers thought that since the tail portion had the greatest density of bullets, it would be the logical location for putting an anti-bullet shield.
A mathematician said exactly the opposite; more protection is needed where the bullet holes aren't - that is -around the engines.
His judgement surprised everyone. He said "He said We are counting the planes that returned from a mission. Planes with lots of bullet holes in the engine did not return at all".
Moral: Not everything that counts can be counted, and not everything that can be counted, counts.
Source: From the book -
"How Not To Be Wrong", by Jordan Ellenberg.3
I had a short gig for a startup where I was meant to migrate the entire backend to serverless. It was my first time learning what serverless was and I had just been working on the app for around 2-3 weeks.
Boss rolls in with his leased Tesla and sort of hints at me being finished with a certain area by the next day, giving me a wink as if he's just trying to motivate me to keep on struggling.
Turns out he decided that he wanted a fully fledged demo and went off on me because I hadn't finished migrating the UI for that certain section (just the backend). I decided that there were better things to work on while I was at it migrating the backend. Had I known that he expected some form of fancy demo, maybe I would have done things differently.
He then proceeded by letting me know that he could have finished my work in half the time it took me and decided to remind me that I had a probationary employment. I left the company two weeks later and the app never got released.2
At a certain client, was asked to help them with an "intermediary" solution to stopgap a license renewal on their HR recruiting system.
This is something I was very familiar with, so no big. Did some requirements gathering, told them we could knock it out in 6 weeks.
We start the project, no problems, everything is fine until about 2.5 weeks in. At this point, someone demands that we engage with the testing team early. It grates a little as this client had the typical Indian outsourcing mega-corp pointey-clickey shit show "testing" (automation? Did you mean '10 additional testers?') you get at companies who put business people in charge of technology, but I couldn't really argue with it.
So we're progressing along and the project manager decides now is a great time to bugger the fuck off to India for 3 months, so she's totally gone. This is the point it goes off the rails. Without a PM to control the scope, the "lead tester," we'll call her Shrilldesi, proceeds to sit in a room and start trying to control the design of the system. Rather than testing anything in the specification, she just looked at the existing full HRIS recruiting system they were using and starts submitting bugs for missing features. The fuckwit serfs they'd assigned from HR to oversee this process just allowed it to happen totally losing focus on the fact this was an interim solution to hold them over for 6 months and avoid a contract renewal.
I get real passive aggressive at this point and refuse to deliver anything outside the original scope. We negotiate and end up with about 150% scope bloat and a now untenable timeline that we delivered about 2 weeks late, but in the end that absolute whore made my life a living hell for the duration of the project. She then got the recognition at the project release for her "excellent work," no mention of the people who actually did the work.
Tl;Dr people suck and if you value your sanity, you'll avoid companies that say things like, "we're not in the technology business" as an excuse to have shitty, ignorant staff.6
When Coronavirus become a household name, our Manager said:
"This is a good to time to build a real-time chat system like Zoom. If anyone is able to build something like it, it will help our company grow."
Manager: "There is a lot of demand."
Impossible deadlines are ubiquitous in our company. Our CTO has the opinion that development is a lightning-fast process that doesn’t require testing and deployment because every developer is a God.
It is normal to hear something like ”just develop it tomorrow morning, it is easy” from him, but in reality, it is never that easy.
"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
I had a delivery deadline on the same day when an urgent support request came in. My boss was a stupid sucker who was afraid of taking responsibility, and that's a vice I absolutely hate with bosses.
We had quite a heated argument where he just wanted me to give priority to both things, which I declined because I had no idea how much time the support research would take me.
Finally, he decided that I should work on the support item immediately, but only for up to one hour. He was totally surprised when I accepted that without further argument. I told him that all I had wanted from him had been a priority decision, and that was one.
Felt like explaining to my boss what his fucking job was.4
Great opportunities now as per Managers:
* Develop a chat system like Zoom
* Develop anti-virus for Coronavirus
* Develop time travel machine to stop Coronavirus at the point it started4
We had 1 Android app to be developed for charity org for data collection for ground water level increase competition among villages.
Initial scope was very small & feasible. Around 10 forms with 3-4 fields in each to be developed in 2 months (1 for dev, 1 for testing). There was a prod version which had similar forms with no validations etc.
We had received prod source, which was total junk. No KT was given.
In existing source, spelling mistakes were there in the era of spell/grammar checking tools.
There were rural names of classes, variables in regional language in English letters & that regional language is somewhat known to some developers but even they don't know those rural names' meanings. This costed us at great length in visualizing data flow between entities. Even Google translate wasn't reliable for this language due to low Internet penetration in that language region.
OOP wasn't followed, so at 10 places exact same code exists. If error or bug needed to be fixed it had to be fixed at all those 10 places.
No foreign key relationships was there in database while actually there were logical relations among different entites.
No created, updated timestamps in records at app side to have audit trail.
Small part of that existing source was quite good with Fragments, MVP etc. while other part was ancient Activities with business logic.
We have to support Android 4.0 to 9.0 of many screen sizes & resolutions without any target devices issued to us by the client.
Then Corona lockdown happened & during that suddenly client side professionals became over efficient.
Client started adding requirements like very complex validation which has inter-entity dependencies. Then they started filing bugs from prod version on us.
Let's come to the developers' expertise,
2 developers with 8+ years of experience & they're not knowing how to resolve conflicts in git merge which were created by them only due to not following git best practice for coding like only appending new implementation in existing classes for easy auto merge etc.
They are thinking like handling click events is called development.
They don't want to think about OOP, well structured code. They don't want to re-use code mostly & when they copy paste, they think it's called re-use.
They wanted to follow old school Java development in memory scarce Android app life cycle in end user phone. They don't understand memory leaks, even though it's pin pointed by memory leak detection tools (Leak canary etc.).
Now 3.5 months are over, that competition was called off for this year due to Corona & development is still ongoing.
We are nowhere close to completion even for initial internal QA round.
On top of this, nothing is billable so it's like financial suicide.
Remember whatever said here is only 10% of what is faced.
- An Engineering lead in a half billion dollar company.7
Impossible deadline experience?
A few, but this one is more recent (and not mine, yet)
Company has plans to build a x hundred thousand square feet facility (x = 300, 500, 800 depending on the day and the VP telling the story)
1. Land is purchased, but no infrastructure exists (its in a somewhat rural area, no water or sewage capable of supporting such a large facility)
2. No direct architectural plans (just a few random ideas about layout, floor plans, parking etc)
3. Already having software dev meetings in attempt to 'fix' all the current logistical software issues we have in the current warehouse and not knowing any of the details of the new facility.
One morning in our stand-up, the mgr says
Mgr: "Plans for the new warehouse are moving along. We hope to be in the new building by September."
Me: "September of 2022?"
<very puzzled look>
Mgr: "Um, no. Next year, 2021"
Me: "That's not going to happen."
Mgr: "I was just in a meeting with VP-Jack yesterday. He said everything is on schedule."
Me: "On schedule for what?"
<I lay out some of the known roadblocks from above, and new ones like the political mess we will very likely get into when the local zoning big shots get involved>
Mgr: "Oh, yea, those could be problems."
Mgr: "What's that?"
Me: "That's the sound of a September 2021 date flying by."
Mgr: "Funny. Guess what? We've been tasked with designing the security system. Overhead RFID readers, tracking, badge scans, etc. Normally Dan's team takes care of facility security, but they are going to be busy for a few weeks for an audit. Better start reaching out to RFID vendors for quotes. Have a proposal ready in a couple of weeks."
Me: "Sure, why not."1
One just doesn't give a task to be commpleted in 2 days, changes the task heavily and still be in the same deadline.2
When I got the current job I started to work on an Android app that a coworker which left the company was doing.
The app was ready at about 40% and was barely usable, it lacked a lot of features and multithreading so with a huge amount of data it used to crash (Android doesn't allow you to make the app freeze for more than 2-3 seconds, it considers that the app is not responding anymore).
After a week or two the work to do was still huge, but one day one of my coworkers came in and ask me if I was able to release a beta for a client the same day... Unexpected deadline.
I spent 8 hour fixing as many bugs as possible and adding multithreading in the most weak parts.
I did it but it was so stressful and the result wasn't even great. In fact I finished the stable version 7 months later.4
New normal. New app to build.
- Still have to maintain older systems in parallel
- That leaves 1 week for developing the new app
- Slept 2 hours a day, coding coding coding
- Tested the shit out of the app because.. hey, its to help the customers' safety and health... I don't mind staying up late
- Finished the app in 5 days, code is now on prod
- Could barely look myself at the mirror because I look like shit
- Btw the app requires an external device as an input, the existing device works flawlessly based on my testing
- We need more devices
- Clueless manager bought new model instead. He assumed everything is fine, no testing is required
- Tested the app with new device model, doesn't work
- Deadline closing in
- Thanks, there goes my sleep
- THANK YOU2
I mean, impossible for who? For someone working 9-5 without procrastination, sure there are.
I have been a student and a procrastinator most of my life, so yeah, a 40 hour week's work is possible in two days with minimum sleep.
Also done massive projects in a week's time. If you know what you're doing, it's not that impossible.
Although, I find working with others almost impossible in some occasions, specially where you don't see eye to eye despite however much you try. (time-wise, speaking)9
Took a task with 3 story points ( mappable to ~2-3days) and wondered why it was so much more than the estimation. I expected to finish in 2 to 2 1/2 days but needed 4. Afterwards I just realized that I accidentally did more then needed and finished two upcoming stories as well, each 2 SP so 7SP for everything.
Feeling jumped from "man I could be faster" to "man that was really fast".
It feels like a fuck up, however, it is victory1
Got all the GET apis in 6:30 pm . Asked me to integrate it within 8:30pm so that they can present the demo at 9. WTF4
I happened to come help with a project that deadline was in two weeks. It was hardware project for customers with UI.
They said to me - help us 2 weeks and it’s done. It only needs polishing. There was nothing working and we finished it after half a year.
Hardware was crap and drivers wasn’t working. Managers called me stupid when I tried to explain that this is hardware team fault. They used to say that it was tested in laboratory and there is no defect. Laboratory my ass fucking assholes never released anything from scratch.
I got depressed after this project for a year. It was fucking nightmare.
Everything, literally everything was rewritten 3 times cause of stupid decisions that I questioned all the time. At the end of project most of those assholes stopped commenting my decisions. I believe we released impossible product that was crap but based on usage rates I got later when I left it returned expenses.
I lost like 2 years of my life and about 20kg during those 6 months. Never again.
A peace of work to be done within 2 weeks for 3 devs
1 dev gets pulled off the team, the other decides now is a good time to take a 2 week holiday
So am the only one left and because the designs weren't even ready for the first week i only had a week to do it, i managed to finish it with some defect obviously, and testing oh yes the testing non, non whatsoever. Only test i had were snapshots. Other than that, nothing. So the demo seemed to please everyone and the whole team got praised for some gr8 work, work that was estimated for 3 but done by one and hah no testing...yet1
So this has happened before, but I think I’m gonna deliver late on this project. I really don’t want to look bad within the first six months of a new job. Someone lie to me and say it’ll all work out. 😭😭4
I (frontend) was given 2 weeks to develop a new feature of the app. Almost after the end of 1 week, backend guy was finished with his code , with still bugs pending. Since backend wasn't ready for most part of the development process, I was working on my part, basically creating functionality and created views using the UI guys wireframes.
Now, we were on a time crunch , I didn't got enough time to improve the wireframes or to work with the UI guy . I released on staging environment and no one liked the UI.
App feature was supposed to be released on Tuesday. Shit hit the fan and i had to create a new ui, code the new parts of the app, do shit ton of other work and extending the deadline to today.
As of now backend code is still not fully functional,
app is ready but edge cases still not tested and I have to pull an all nighter to finish this fucking piece of shit.3
I'm actually in the middle of an impossible deadline and I just needed a break. I'm in a third world country that basically doesn't have any decent internet infrastructure. But that isn't really the problem. The problem was that we couldn't really learn online for a long while and once we had that going, all the CS teachers decided that we should be doing our final, defensible projects within 2 weeks notice (even though we didn't really have the time or the appropriate knowledge to do it) and so it was all basically a struggle where you'd have 3 or less days to shit out some kind of program for one subject and then immediately get to work on another. At this point I might just need a gap year...