AboutI do dumb things with code and on occasion write some pretty neat stuff.
Skillsc, c++, c#, java
Joined devRant on 5/12/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
So I'm finally doing the job I was hired to do 2 years ago, with the promise of working 1.5 years ago, and scheduled to work 1 year ago as the project slips about a 1.25 years.
The project is on it's 3.5th year of a 3 year plan and based on the architecture of the project, the project architect started a degree in software architecture 4 years ago. In Latin. When his first language was Japanese and his second was Indian English while this was a US company. And his entire degree was in Lisp, PHP, and html, this project is in C#, and his professional background is in Fortran.
This is a man who is no longer on the project, not allowed to contribute or talk to us about the project, and what little documentation he left us is in Swahili translated from Korean via Google translate from the second year Korean language major exchange student from Russia who got really into meth and Telenovelas.
It is every version of MV* without the M and with every definition of * including some he made up and some that have only been proven to exist via machine learning algorithm written in SQL statements.
This project represents an implementation of the presentation tier of an n-tier application, yet attempts to reimplement the other n-1 tiers in html5 and the dreams of children.
The new lead is a former engineer that couldn't begin coding until he figured out how to map all of his variables to his former cars and girlfriends inclusively and learned his management skills from the big book of micro managers and that one time everyone else in the office was sick but the intern. Who now has a girlfriend whom he works 200 feet from so he isn't 100% thinking with his largest head. At least from observation.
Yet, I still can't bring myself to go be with the whales/become an accountant.
Whenever anyone asks me why I dislike C++ I'm just going to point to this current app I'm working. Had a unit test with an extern method declaration that had 7 or 8 different parameters. No big. Problem is that the ACTUAL definition of the method had 1 less parameter than the extern declaration. It worked perfectly fine in x86. Ported to x64, compiled fine, hard crash at runtime. Debugger not a super lot of help. Took me a couple days to figure that one out. Also I am broke so I can't even drink the pain away. Neat.
I hate when they give new people that don't know the software the job to update requirements. We used to have 2 use cases that touched a functionality. Now we have three. The requirement was added for the third case. He held us up bitching that that the newly added requirement for Case 3 didn't include Case 1 and 2. Dude. That shit has been in the software for 4 years. Those requirements were written by requirements guys that are better than you. Don't waste my time with semantics. Only I'm allowed to waste my time on semantics.
I have been gone a while. Sorry. Workplace no longer allows phones on the lab and I work exclusively in the lab. Anyway here is a thing that pissed me off:
Systems Engineer (SE) 1 : 😐 So we have this file from the customer.
Me: 😑 Neat.
SE1: 😐 It passes on our system.
Me: 😑 *see prior*
Inner Me (IM): 🙄 is it taught in systems engineer school to talk one sentence at a time? It sounds exhausting.
SE1: but when we test it on your system, it fails. And we share the same algorithms.
Me: 😮 neat.
IM: 😮neat, 😥 wait what the fuck?
Me: 😎 I will totally look into that . . .
IM: 😨 . . . Thing that is absolutely not supposed to happen.
*Le me tracking down the thing and fixing it. Total work time 30 hours*
Me: 😃 So I found the problem and fixed it. All that needs to happen is for review board to approve the issue ticket.
SE1: 😀 cool. What was the problem?
Me: 😌 simple. See, if the user kicked off a rerun of the algorithm, we took your inputs, processed them, and put them in the algorithm. However, we erroneously subtracted 1 twice, where you only subtract 1 once.
SE1: 🙂 makes sense to me, since an erroneous minus 1 only effects 0.0001% of cases.
*le into review board*
Me: 😐 . . . so in conclusion this only happens in 0.0001% of cases. It has never affected a field test and if this user had followed the user training this would never have been revealed.
SE2: 🤨 So you're saying this has been in the software for how long?
Me: 😐 6 years. Literally the lifespan of this product.
SE2: 🤨 How do you know it's not fielded?
Me: 😐 It is fielded.
SE2: 🤨 how do you know that this problem hasn't been seen in the field?
Me: 😐 it hasn't been seen in 6 years?
IM: 😡 see literally all of the goddamn words I have said this entire fucking meeting!!!
SE2: 😐 I would like to see an analysis of this to see if it is getting sent to the final files.
Me: 🙄 it is if they rerun the algorithm from our product. It's a total rerun, output included. It's just never been a problem til this one super edge case that should have been thrown out anyway.
SE2: 🤨 I would still like to have SE3 run an analysis.
Me: 🙄 k.
IM: 😡 FUUUUUUUUUCK YOOOOOU
*SE3 run analysis*
SE3: 😐 getting the same results that Me is seeing.
Me: 😒 see? I do my due diligence.
SE2: 😐 Can you run that analysis on this file again that is somehow different, plus these 5 unrelated files?
SE3: 😎 sure. What's your program's account so I can bill it?
IM: 😍 did you ever knooooow that your my heeeerooooooo.
*SE3 runs analysis*
SE3: 😐 only the case that was broken is breaking.
SE2: 😐 Good.
IM: 🤬🤬🤬🤐 . . . 🤯WHY!?!?
Me: 😠 Why?
SE2: 😑 Because it confirms my thoughts. Me, I am inviting you to this algorithm meeting we have.
Me/IM: 😑/😡 what . . . the fuck?
*in algorithm meeting*
Me: 😑 *recaps all of the above* we subtract 1 one too many times from a number that spans from 10000 to -10000.
Software people/my boss/SE1/SE3: 🤔 makes sense.
SE2:🤨 I have slides that have an analysis of what Me just said. They will only take an hour to get through.
Me: 😑 that's cool but you need to give me your program's account number, because this has been fixed in our baseline for a week and at this point you're the only program that still cares. Actually I need the account to charge for the last couple times you interrupted me for some bullshit.
*we are let go.*
And this is how I spent 40+ useless hours against a program that is currently overrunning for no reason 🤣🤣🤣
Moral: never involve math guys in arithmetic situations. And if you ever feel like you're wasting your time, at least waste someone else's money.10
Our systems lead is trying to tell our software person how much adding unit tests would cost. It also sounds like he wants TDD to be added in after the fact. And he's bitching because the software guy won't move forward with it until we get it with the customer. He also wants all of them automated, but doesn't want to accept that that is going to cost a lot. Like a lot, a lot. This is a guy who doesn't know algorithms (had to explain dykstra to him), doesn't understand the tech stack we are using (I had to explain .net versions, the JIT compiler, and garbage collection to him), and seems not to understand hardware (I had to explain floating point math to him), yet he feels qualified to tell us how long it is going to take us to implement automated unit tests for major, complex features.
My colleague and I have 12 years of college and 10 years of experience between us. Can't figure out how to connect a fucking phone headset.2
So opinions: should a software engineer get certifications? I mean, to me they seem like pointless wastes of money, but my coworkers don't seem to think so. I design and write code, why do I need MCSD or whatever? Follow up, if you feel they are useful: which ones and why?4
Impediment to the agile process at my job: systems not understanding what review and retrospective is for. I mean I don't know what it's for, but it probably isn't for yelling about how testing is conducted and why it's hard. I would assume that's for the planning meeting. Not to mention apparently they still don't know the fucking schedule. Since they seem to think I'm done with a task, even though I don't have, like, the data I need to integrate with and it's on the schedule that I won't get the data til, like, the end of the month.
I hate when people don't capitalize ID in all caps. It is confusing when the write it as Id or id, because I don't know if they're talking about an identifier or the aspect of human nature that exists from birth that subconsciously drives you to want to fuck your mother.8
FINALLY FINISHED THE THING I WAS WORKING ON SINCE LAST MARCH!!! THIS HAS PISSED ME OFF SO MUCH!!! TEARS WERE SHED!!!FEELINGS HURT!!! BUT IT'S DONE!!! I AM NEVER TRANSLATING SOMETHING FROM C++ TO C# AGAIN!!!
Revision to the Peter/Dilbert Principle, the ProjektAquarius principle: a company will systematically shift the least competent employee on to the assignments the competent employees can't be bothered to do until they become an integral part of the team and drag you down with them. (E.g. eventually they completely fuck up your delivery process, although it's probably still cheaper and quicker than having them do anything else.)
ProjektAquarius principle: A Case Study
We have an engineer who is getting paid quite a bit more than me. Over time his responsibilities have gradually been reduced to documentation and running our almost entirely automated build. Well today the build failed. He pulls me over to tell me, and says he's confused because there is a file there he has never seen before in there and a file he always has seen that isn't there (basically a file got renamed. It was not non-obvious). Answer: change the file name.
Then he comes over and tells us that it's failing again because the script is not finding a file. So a coworker of mine and I go over. He explains the whole build process to us when we ask if there is any point in the script that would help us identify where the script is looking for the file and failing (there wasn't but that's besides the point).
Turns out, he had decided to put the assembly list in order. Normally no problem, but the list is in source destination pairs. So the fucking file was being put in a different directory than the one the script was looking for it in and failing. And that's the story about how my company just paid 3 engineers a quarter of a man hour each for something that would have been resolved in 30 seconds via file search/copying and pasting a file path. Related note: our process for building an install is now about 4 hours long with no change on process besides the BCAK.
My freelance horror story is that I don't work freelance, but rather for a corporation where I am a faceless entity known as asset.1
Alright, so. If you had themes and things you would like to see in a cyberpunk novel what would they be? I already have corporate surveillance gone haywire, a neutered yet corrupt government, an active police state, and cyborgs. Protagonist is an on the grid citizen who is an off the grid hacker.4
1. Learn MEAN
2. Learn LAM*
3. Learn to play guitar
4. Learn to play bass better
5. Finish my novel
6. Get paid more.1
I might have posted this before. But I am going to post it again. Because emojis.
Me: 😁 Software lead I have finished coding the thing.
SL: 😀 Cool, good job. That is going to really help out the analysts.
Software Manager: 😐 hey I noticed you have coded a new thing and pushed it to integration.
Me: 😁 Yes.
SM: 😐 Well how do you know when it's done?
Me: 😑 . . . When you run it and it does the thing?
SM: 😐 Did you write test steps?
Me: 😕 Yeah . . . they're in the issue ticket.
SM: 😐 Yeah but how do you know those are right?
Me: 😕 Because I wrote the thing and the test steps?
SM: 😐 did you put any steps in our acceptance test procedure?
Me: 😕 No.
SM: 😐 why not?
Me: 😧 Because the acceptance test procedure tests requirements. There is no requirement for this functionality.
SM: 😑 Then why did you do it?
Me: 🤔 Because it was an internal request from the analysis team. There is no customer impact here.
SM: 😑 I really think we should write a requirement.
SL: 🤔 But what requirement is he going to attach this to?
SM: 😑 We don't have to attach it to a requirement. We can just test it once and remove it.
Me: 😒 SM, you know we never remove anything from the acceptance test procedure.
SM: 🙂 We do sometimes.
SL: 🤔 When was that I have worked here for twenty years and we have never removed a test from that document.
SM: 😧 I really think there should be an acceptance test written.
SL: 😧 Looks like you're writing an acceptance test.
Me: 😒 Alright as long as y'all're payin'. Shit I was just tryin' to save y'all money.
*acceptance test written and sent to peer review*
Peer: 😐 The requirement tested section doesn't have any requirements spelled out.
Me: 😅 No.
Peer: 🤔 Why?
Me: 😓 Because there is no requirement associated with this test.
Peer: 🤔 Then why are we adding an acceptance test?
Me: 😡 WELL AIN'T THAT A GOOD GOD DAMN QUESTION!?7
I have never made a friend due to code. I have plenty of friends who code and shared CS classes within uni, but we met in other ways due to other interests. I don't think I am capable of being friends with the kind if people you would "meet through coding".
Nothing like writing summary comments on methods to make you feel smart. It's like:
ObviousWellNamedMethod is a method that does obvious well named thing
<param name="WellNamedObviousParameter">Represents the well named obvious thing used in the obvious well named method</param>
I hate coding standards sometimes.4
Why is it necessary that software be in a schedule meeting when software has 2 items on the schedule? This meeting is effectively useless for software. It is an unnecessary expenditure of money on a contract that is overrunning. It is right before we go on holiday break and they are training a new planner. And the lead is leaving in January so why is he still asking me questions about what I'm doing. Especially when I have told him what I am doing 4 times already. Fucking hell. Why is it that no one seems to trust me to do my job and be on top of things? And why is it that the people with shit memories are the ones that want to be involved in everything? And most importantly, why does everyone pretty universally hate meetings and regard them as useless yet insist we hold them?2
I am as sure as I am of anything that the software I am working in is sentient and pulling the long con on me to kill me over the course of my career via stress. Joke's on it though. With the amount of drinking I do to cope with the stress I will die of alcoholism way before I die of stress. Take that. Victory is mine.1
Who did I piss off in my life to have to deal with this bullshit? First day off of vacation. I am vacation hungover and just regular hungover. Left my Xanax at home. I just sat through a 45 minute meeting that I didn't have to be in for longer than three minutes. I have what my work place calls scrum in 7 minutes, another fucking meeting I don't have to be in cuz vacation. I wasn't even planning on coming in today except for the fact that my fucking boss came in, in the middle of his vacation, to schedule a meeting this afternoon and then go ghost when I try to either reschedule or at least ask what my fucking responsibility in this meeting is this whole thing is making me sick to my stomach because anger triggers my anxiety which triggers my stomach issues which triggers my phobia which triggers more anxiety which then triggers my anxiety. Gods fucking dammit. Why did I come back from vacation just to arrive in meeting hell? Nothing is okay.4
When I realized that programming is the greatest way to make one's living, that I will never love anything more than programming, and that every feature and quirk in a new language is like a new friend.
Scrum is terrible. Is there another agile technique that isn't as bad? Like maybe one that will let us do our "scrum" once a week for like an hour? My current project really doesn't lend itself to once a day scrums. Literally my scrum input is "I worked on what I have been working on, and I'm gonna work on it more today. Impediments are literally the same as they always are because my life is no longer my own."5
Just my luck that I get the best wk76 story ever on wk77. Either way:
So some of you may know that the current project I am on has some shared code components with one of the other projects in the product line. And we have some differences in our processes. This leads to a lot of fun.
So, I was working on converting one of our shared components into a more modern language. It would save us time, money, and sanity by allowing us to more easily maintain our product. Sounds like a win-win right? That's what I thought. Until I had a meeting with the other team. THEN THE QUESTIONS ROLLED IN. Well who is going to integrate our product with yours? (You?) Are you changing the interface? (Not really.) Are you going to generate a design document? (Absolutely not especially since the interface isn't changing for the most part.) Well you are changing the type of one parameter in one method from an undocumented unmanaged type to a well documented managed type that we control. Shouldn't you generate a document to document that change? (Again absolutely not.)
So first they basically browbeat my lead into putting me in charge of their integration effort. Its fine though, as they gave me an account to charge. However, when I was finally able to get a machine with their build environment on it (at least two months later), they then told me that that account was closing and I had to wait until next quarter. So fuck me right. And because of their process I would break them if I were to check my changes in.
So fast forward to today. They are translating some shared components for the same reason that we are. However, they are changing code that while shared is technically "ours" and that will DEFINITELY break us if they do this work since this is the code that controls our algorithms. And while we have a fault tolerant process, or at least more fault tolerant than the other group's, we are currently doing a huge amount of development in the part they want to change. And when we ask them "who is going to do this work to integrate our product with your changes?" they stare at us slack jawed. Like "um, you right? it doesn't affect us." Like MOTHERFUCKERS!!! YOU LITERALLY JUST FOIST ALL THIS WORK ON US TO INTEGRATE WITH YOU BECAUSE YOU DIDN'T HAVE THE PEOPLE TO SUPPORT IT!!! BUT YOU CAN PAY THIS GUY FOR SIX MONTHS TO DO ALL THIS WORK THAT WILL BREAK US BUT CAN'T SPARE HIM TO INTEGRATE WITH US!?!?!? EVEN IF WE'RE PAYING HIM AND NOT YOU!?!?!
I will let you know how this goes when we have the discussion. I am drinking right now because it it easier and better for my emotional and physical health than bum fights.
I am a single straight cisgender developer that is trying to change that first thing about myself. I was also looking for an app idea. So I thought "Holy shit! I'll make an app like Grinder but for straight people."
I feel like the fact that I didn't immediately realize I was talking about Tinder says all I need to say about my friend group and why I am still single.14
I choose to believe performance self assessments are useful. Not for, like, my actual job, but they keep me grounded. Nothing like seeing your entire body of work for a year summed up in 30 to 40 bullet points to deflate your ego. Also it gives me a chance to work on my skills in what some of you might consider "lying" though I consider it more along the lines of "creative truth telling" and "having a loose grasp on reality".
In a sprint planning meeting. Getting frustrated. I guess it's my fault. I guess I assumed that attending the same schedule meeting each week meant that we all knew when everything was due. My bad.
Seriously, I fucking hate systems people sometimes. We have 4 major tasks coming down the pipe, but they are scheduled in such a way in which they are staggered. But they want to punt the 1 of the 4 that is fucking done because it is going to cause a lot of testing, but the other three aren't coming til end of next month AT LEAST. So they want to stick their thumbs up their ass holes and wait to test the other three before testing the one that, again, IS FUCKING DONE!!! Are they worried that a super massive black hole will spontaneously form in earth's orbit and cause time to run backwards and somehow cause December to happen in October!?!?
No wonder systems is so fucking far behind. They can't see the forest for the trees. They're so big picture that months and years are at the same level of granularity. Fucking hell how is scrum better than our current agile process again? Besides the fact that it makes me attend more useless meetings and get more angry.
They are punishing the left hand for the actions of the right. Systems wasn't doing their job so now software has to slow down and miss schedule.2
So my team (read: not the team at all) has decided that we are going to scrum. Someone ease tell me it's not as fucking tedious as it sounds. Sounds like it's just more meetings. Especially on this team which is actually already pretty agile. And the way our "certified scrum master" describes the retrospective sounds like it was designed by the type of shitlord PM that forces everyone to wear ugly t-shirts to the mandatory company barbecue for "team building". Please tell me he's just a terrible salesman.7
Poll time/input requested. Multiple assignments in one statement: yay or nay? For a (painfully) simple example:
a = b = true;
a = true;
b = true;7