Tuesday, October 1, 2013

Dreaming of Glass Cannons, Part 2

Yeah, so previously, on Dreaming of Glass Cannons, our sexy and dashing protagonist rehashed the tale about this android project at work, and how this company full of shitty programmers (SP) wrote the original code, and how due to a lack of resources, the code was forked so that a very importat, indecisive and annoying partner (AP) could just kind of shit all over it without any regard to maintaining a cohesive design.

And, how, it is my job to rectify the difference between what I've been doing on and off and on and off and on and off and on and off for months, and what AP did to the software.

Now the story continues.  Please read the rest of this post in the voice of Dr. Cox (especially when you see ellipsis) and also, for the record, everything you are about to read is completely fictional and any similarity to existing people or corporations is totally just your imagination:


Something was bothering me in the back of my mind.  The changes I was looking at...well they were stupid.  No comments, as usual.  But, with the exception of renaming a few variables to understandable english words (yay!), whoever was making those changes didn't take any steps to fix the horrible pile of copy & paste spaghetti code.  Instead, it seems is if they just went in there without any concept of design and just tacked their shit on there, or made changes to key components without worrying about memory leaks (since we're talking about java, I'm using 'memory leak' to refer to dumbass code holding onto objects that should have been garbage collected).

Now, I know that I probably sound like a guy who thinks that everyone, everywhere, can't code.  And...with a few exceptions, that's probably true.  I have seen so much bad code during my employment that, honestly, the longest time I went for more than six months without seeing turing-complete vomit was a high school stint involving Visual Basic 6.  And keep in mind you people, Visual Basic 6 was not a pretty language.  So put that in your pipe and smoke it.

Anyway, because of the fear that maybe due to the dunning-kruger effect I'm not as good a programmer as I thought, I elected to, for just this one time, not bitch about some awful code.  So even though AP's changes to their branch of SP's code looked kinda dumb, I held my tongue.

Until today.

You see, today, it has come to my attention that AP paid SP to implement some of those changes.  Some of those stupid fucking awful changes I have to merge manually were written by the same java-illiterate dumbasses that shat out the original codebase.  THIS EXPLAINS.......SO MUCH.

In other words, the people paid to work on a superfund site were the people who made it a superfund site in the first place.  I don't know how much this fucking company has gotten paid so far, but I do know that I could have written this by myself by now, and that if I was paid what they were, I could retire and spend the rest of my days building legos.

Anyway, so, the day has finally come where I have risen high enough in the ranks that I actually don't write code.  I don't.  I just manage bullshit.  I have one coder who is awesome and not just because like me, he wants to rewrite literally the whole project.  I'm now the guy who has to tell someone to slow down because we have to pick our battles when it comes to refactoring.  I also got a guy who is not so good, and does not have so much initiative, and who has unfortunately been tasked with ramming a square open source build system into a circular hole called "TFS."  This guy out ranks me by like...corporate RPG level, yet he knows less than I do about Android and when it comes to duct taping these build systems together...we actually have equivalent knowledge, yet he needs to do a phone conference with me every few hours so I can tell him what to do.

And since I am not an expert in the thing its his job to figure out, all of my answers, literally, are purely based on the scientific method.  So he calls me up to talk about his latest problem and I, literally just take him on a mental tour of the next experiment to try.  "Well, if this [control idea] works, and this [experimental idea] doesnt work, then clearly we know [thing we changed] is the reason its not working."

And then, on top of that, I have to deal with all of these project managers (PMs).  I gave the PMs a list of questions about AP's changes to the code, because thanks to the lack of comments, we don't know why they need that shit.  And their answers, to my question, directly contradict the lines of code I am asking about.  For example, I asked them why they have a collection of instances of something and they told me the reason is because its a singleton.  What.

For those of you that aren't programmers, I'll give you an analogy.  You're standing in iraq, in some junkyard owned by one of those military contractors that was given a "cost plus" deal with the government, and you're looking at about 400 rusty ice cream trucks that were used once and then deliberately broken so another one had to be purchased, thus inflating the total cost and therefore the company's profit.  And so you call up this guy at the cost plus contractor and ask him why there are so many ice cream trucks in the junkyard and he tells you "What are you talking about?  There is only one, and has only ever been one, ice cream truck in the universe."  And then since he's a highlander fan he grunts "there can be only one" in a faux Scottish accent before hanging up on you.

I want to quit so bad, but the timing isn't quite right.

No comments:

Post a Comment