I’m just your average software developer working at an office, outsourcing to a number of clients.
Client: Since there are problems with the network driver, we need to develop a fail-safe strategy for our system. If the network stops working, the device goes into reboot. Can we do this? Communication with the driver developer isn’t going very well, so we need you on this one. We need this today.
Me: Yeah, sure. What conditions are used to decide if the driver is working or not?
Client: If WiFi can’t find any access points, it goes into reboot.
Me: Are you sure that is okay? There might be environments without access points. A never-ending reboot loop would be a disaster.
Client: We will set a limit for one reboot per 12 hours.
Me: So, if the driver stops working after the first hour, for the next 11 hours the device will be cut off from the network. Is that what you mean?
Client: Yeah, forget it. Let’s try this one: once the device is connected to the access point, only then will we check if there are access points around. If not, perform a reboot.
Me: And what if after a connection is done, the only access point around gets broken, or turned off? As far as I understand, this will lead to unnecessary reboots as well. Are you sure that’s what you want?
He didn’t reply to me. Instead, he called my team lead, who I heard apologizing over the phone.
Lead: Man, I got a complaint about you from our client. Just do whatever he asks, do not question it. As long as we are doing what we are told there will be no problems.
Fast forward to two months of extensive 2-5 hours overwork per day, doing the worst possible hacks we are being asked to do. Which led to bringing more bug reports from QA, hacking hacks to cover hacky bugs.
Two months of crunch later came the release date… which our clients’ superiors pushed back because they noticed something wrong. They looked into it and realized it was all our clients’ fault, and the past two months of hack fixes were purged.
Happy ending, I guess? Except I’m looking back at months of useless work, free overtime, stress for everyone, a missed release window, and absolutely NOTHING achieved.