05.31.07
Posted in Programming, Sad, Depressing, Visual Basic, VB6, Funny, Work, General at 9:31 pm by gatormha
I learned everything I need to know about my job in the first week I was there.
When I graduated college, I thought that my days of carefree and reckless abandon were over. I had started a career with a respectable, billion-dollar publicly traded software company in the midwest. I was no longer a poor college student, I was a “Software Developer”! I had a job description, roles, and responsibilities; I had to go to meetings, meet deadlines, and make money; but most importantly, I had to develop software.
Some of my key responsibilities included:
- Working with Solution Designers (Business Analysts) to define and clarify software requirements,
- Creating (and having reviewed) technical design documents consisting of well defined database diagrams, solid class definitions using object-oriented design principles, and well defined and structured database designs,
- Writing elegant, maintainable, well documented code,
- Reviewing the code of my peers in order to improve said elegance and maintainability as well as to learn and share new coding tips and best-practices.
I used to read The Daily WTF and laugh thinking, “Nobody could ever program so poorly!” As far as I knew, all IT departments ran as smoothly as the one I was at. Like a well-oiled software writing machine.
After almost two years of this near utopia for software developers I felt my needs were no longer being met by my employer, and I decided to move on to greener pastures. I decided to find a new job.
The search was quick! I found a seemingly solid job in South Florida with a respectable, billion-dollar publicly traded construction company. I was no longer going to be a complacent software engineer from the midwest! I was going to be a VB (not yet known to me 6) programmer! I didn’t blink an eye at the difference in title. I assumed my responsibilities would be similar and my new work environment would at least be comparable to my previous one. I expected to continue being a naive software developer. But as I soon found out, my days of reckless abandon were just beginning!
One of my first jobs was to begin fixing defects for an application that nobody on my team of 3 programmers understood or had even looked at for more than 10 or 15 minutes before blowing off. The customers needed bug fixes and bug fixes I was going to give them! The programmer who originally wrote the application still worked for the company, but in another capacity at another location. I tried to call, but got no answer. I sent an email and got a nearly immediate, single syllable response that didn’t even come remotely close to answering the myriad of questions I asked. Maybe he just got back to his desk.
Another phone call — answering machine. Was he ignoring my calls?
Out of pure desperation, I sent another email thinking he was very busy and just didn’t have time to respond. I made sure to make it perfectly clear he could get back to me whenever it was convenient for him. Another immediate, monosyllabic response.
Definitely ignoring my calls.
After nearly a dozen back and forth emails like the first two, I felt I had dragged enough information out of him to begin looking into the defects I had set my sights on. I opened the code.
It was at this point, I learned the difference between being a developer and being a programmer. No longer did I have the key responsibilities I mentioned above, the responsibilities of a programmer are much different:
- Don’t even think about trying to get requirements! Even if someone tells you what an application needs to do, it’s almost guaranteed to be different tomorrow. And again the day after.
- Technical design documents are for cowards. So is testing. The only way to find out if something will work is to do it and get it into production! Most designs I have anymore consist of poorly scribbled, incoherent circles and boxes on the back of a notebook that even I don’t understand anymore. Any text is probably the phone number to a restaurant or what my coworkers want for lunch.
- Writing maintainable code is the quickest way to get yourself fired! If you write code that only you can understand, you’re guaranteed to have a job — at least until they rewrite your application (which is probably never). And documenting is just going to set up your replacement to succeed! He took your job, why the hell should he succeed?! You know what the code does, why would you need to waste your time writing useless filth like comments or user manuals? They pay you to code!
- Code reviews at my work are kind of like the unwritten rule in a men’s locker room. You just don’t look. I don’t want to see yours, you don’t want to see mine, let’s just keep our eyes above the neck.

Now don’t get me wrong, I like my job. Nowhere have I had the freedom to do what I want, when I want, how I want, where I want like this place. The only thing is that everyone I work with has the same freedoms. Everything I do, the guy next to me does 10 times worse. And chances are, I’ll be the one maintaining his code in a year.
Permalink
05.30.07
Posted in PVP, addiction, Random, Funny, Video Games, World of Warcraft, General at 8:24 pm by gatormha
For those of you who didn’t understand that last post, this might help explain it. Maybe not. It’s basically the audio of a group of 40 players failing miserably during an attempt to kill a dragon in the World of Warcraft video game put to a ridiculous animation.
Speaking of WoW, I’d like to rant a little bit. I encountered a REALLY dumb druid last night in Ashenvale on the Shattered Hand realm. I was trying to kill some demons to complete a quest, but this Tauren druid was just standing behind me like some sort of moron.
So I killed him. I mean, it wasn’t even close. I immediately tried to imagine the guy struggling to fight me off while still finishing up a plate of spaghetti. So I figured it was just a lucky happening of me getting a basically free HK. So I went about my business killing demons and such, but the druid wasn’t finished getting owned. Ohhh no. He decided to come back and die at my hands 5 more times before finally killing me as I was fighting him and another NPC. I of course came back and killed him…AGAIN.
I guess my whole point of this post is that WoW is WAY too addictive. I could have been bettering my life somehow rather than repeatedly killing some noob in Ashenvale. But as a full-blown addict, I find myself coming back to the game every night for another dose of bitter reality (or non-reality). But I’m sure that one of these days I’m going to get my Boots of Escaping!
If you’re just reading this to pass time before your guild raids Orgrimmar, feel free to watch the next randomly ridiculous cartoon I have to offer you.
Sweet As Candy (like usual),
Matt
Permalink
Posted in Random, Funny, World of Warcraft, Video Games, General at 3:59 pm by gatormha
A little comedy to lighten up your day while I am busy at work…
MORE DOTS!
Permalink
05.29.07
Posted in Visual Basic, VB6, Work, Funny at 6:54 pm by gatormha
As a software developer, I’m often faced with the daunting task of “dealing with customers.” At my job, “customers” are usually those who work in my office for my company in another department. Because we work for the same company, these “customers” believe they can treat me either as
- a moron, or
- the guy who caused all their problems.
A typical conversation with a “customer” starts as follows:
<phone rings — I pick up>
Me: This is Matt…
Customer: <fuming with anger> The app is broken AGAIN! Why can’t we get all these bugs fixed?!
Me: OK, slow down, what app are we talking about?
Customer: It’s the app that <insert name of developer who was fired before I started (and probably for good reasons)> wrote.
From there, things go downhill. It turns out that said previously-employed-by-my-company developer wrote a critical financial application that isn’t working anymore. After a little more interrogation, it also turns out that this application hasn’t been working for nearly 4 months, but everyone in the customer’s department neglected to tell IT about it, all the while becoming daily more incensed at the manual workarounds required to do the work the broken application used to do. I also learn that because this is a critical piece of financial software, it needs to be fixed right now.
Now I try to calm the customer — who I can tell is wringing his hands nervously, worrying about what his boss will say when whatever it is you business people do isn’t done on time — by telling him that I will investigate the issue, but because said unemployed developer isn’t working with our company any longer, it may take some time for me to pinpoint the issue, but I’ll keep him posted of any major developments. This is hardly ever enough to please a customer. For some reason, customers feel that IT should have a magic wand that will instantly diagnose and solve any number of issues relating to hardware, software, network problems, or general user error.
Now, I get to the fun part — DEBUGGING SOMEONE ELSE’S CODE! I don’t know if you’ve ever tried to read a bad programmer’s code before, but it’s like trying to decipher the Da Vinci code while someone is pouring bleach into your eyeballs. The fact that the application is written in VB6 only exacerbates the problem.
After about 3 hours of stepping through countless GoTo statements and decompiling DLLs only to find out they return CONSTANTS (yes, I actually had to decompile since our no-longer-employed programmer friend believed in not checking code into any sort of source control system), I track the issue down to a hard coded server IP address that is no longer pointing to the correct database. I’m tempted to start rewriting the entire program so the next unlucky soul won’t have to live through what I did, but I put it off for another day to save time and get the application fixed for our endlessly patient customer who only called me 17 times during my ordeal.
I get the new EXE built and deployed on the 12 different terminal servers my customer’s subordinates use, and I call my customer to proclaim proudly that his super urgent need has been met and the critical financial application is ready to be used! Just as my excitement is peaking at the thought of fixing a problem and getting a “win” under my belt, my customer lets me know that he had his people go ahead and do the manual work around this time, but he’ll be sure to let me know if they have any problems the next time they run it — at the end of the NEXT fiscal year. Massive disappointment abounds.
They should let programmers drink at work.
Permalink
« Previous entries