Joined devRant on 4/21/2016
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
I’m working at an architecture firm these days, so I don’t have many “dev” stories to tell. However, I’d like to share this anecdote to reassure (or demoralize) you all that the kind of nonsense we’ve all dealt with as software developers isn’t limited to the software industry.
I’ve been working on a project to build townhomes and apartments on vacant lots in an urban environment.
Space is limited, so the client assured us early on that they would be centralizing all the mechanical equipment (water heaters, air conditioners, etc.) in the basement of each building. We finally got all the apartments laid out and presented them to the client last week. During that meeting, we get a casual “oh, by the way, we need a 3-foot by 3-foot mechanical closet in each apartment.” Did the project manager push back? Of course not. Have our deadlines been adjusted as a result of changing requirements? Don’t be silly! Starting tomorrow morning, the team gets to feverishly search for an extra 9 square feet in each of a couple dozen different apartment layouts that are already “cozy” in time to meet our next deliverable.
Changing requirements suck.
Pushover PMs suck.
In every industry.2
My boss back in 2013 asked me to figure out why he was getting birthday notifications from his pet social media project almost a week early. It turns out the previous developers had written their own date library in which every month had exactly 30 days, leading to a year that was 5–6 days short of what it should have been. Apparently those morons didn’t know that some months have a different number of days than others. Or that leap years are a thing. Or that there’s a standard library full of tried-and-true functions that handle these kinds of things for you.5
How’s this for a horror story? Adding a new feature to a 6,000 line and 100% undocumented stored procedure in a 20+ year old Oracle database.2
Don’t write documentation for other people, write it for yourself! It may all seem obvious today, but six weeks from now you’re not going to remember what you were thinking or why you wrote the code the way you did.1
I don’t remember exactly how old I was when my dad gave me the BASIC manual that came with his IBM XT. What I do remember is that he took it away shortly after I figured out how to put the beep command inside a for loop.
Straight from a marketing analyst (we didn't have a PM) I once had the displeasure of working with:
The guy didn't believe me when I told him it was impossible (barring exploits that would break the browser's sandbox), unethical, and probably illegal. I had to escalate all the way to the CEO to get him to drop it.6
Applying a coordinate transformation to a point in Revit:
…to a curve:
…to a solid:
Is Autodesk trying to torture me?2
Time tracking. 😡🤮 If I’m salaried and only working on one project for one client, why the hell should I waste my time making weekly reports of how many hours I spent coding, reviewing pull requests, and sitting in (mostly pointless) meetings?6
I’m working with a “senior” developer with a full decade more experience than me who didn’t know that short-circuit evaluation works differently for OR than it does for AND. He argued with me for a good hour and a half that in the expression (a || b), b would never be evaluated if a is false — and that this couldn’t possibly be the source of the bug he was trying to fix.
Recruiter: What is Go?
Me: It's a newish programming language developed by some really cool guys at Google with C-like syntax and great concurrency support.
Recruiter: So it's like Google's version of RESTful?