The SoftwareDev/QA Prize fight

by jesse in ,

Ah, the grind. I took a few weeks off - Xmas and New Years break for me. Probably the longest amount of time off I've taken off from work/coding/tech in awhile. Part of it was holidays, but I think a part of it is the Burn.

We've all felt the burn. It's that feeling you get when you open the same code base/test code/bug list for the millionth time in six months, and you're staring at the same chunk of code, or running the same test and you have to mentally gag on it.

I'm young, so I tend to get it in my head that I'm immune to the burn. Lately, I've started thinking of releases as a Prize Fight - a boxing match.

You start off round one - you begin feeling out your opponent, after all - things just started and you have to gauge what's going to be coming down the pipe in the next few rounds. You throw a few punches, you do your research. Things don't really start until the end of the round.

Rounds 2-4 tend to get a bit more dirty. By now you've figured out the easy parts of your opponent, and you start throwing your known punches. Things start hurting, you hit, he hits, you hit, he hits. You're both having the crap beaten out of you, but you know there's a light at the end of the tunnel. It's dance. Punch, jab, jab, body shot, uppercut.

Then things start to wear on. You're tired, and you make mistakes, you get bloodied, but you keep going. By now, you're not innovating - you're maintaining. It's important to maintain the status quo as you progress - you have to throw the same punches over and over and over in hopes your opponent falls.

Later, you fall back on instinct. By now, you're ribs are aching, possibly broken and your face looks like you got hit by a truck. But you're running on empty. You're running on pure instinct, closing down the same punches you know are coming, and trying to find any gap that will win you the fight.

Then, it goes into overtime.

In the software world, this is a slip. A schedule slip due to new features, or late ones. It's the fact the product doesn't withstand your continued punches - the same ones you have thrown for the past months, but the product simply breaks, or worse yet - breaks in new ways under the old ways.

The slip takes the most out of you. By now you just want to lay down - you want to work on something else, or you want to just kick it out the door no matter what. In a fight, you see desperation - why won't he just let his guard down for one minute so I can slip in there and knock him out?!

The slip, I think, causes the most burn. It's the repetition and continued perceived failure in the eyes of others that gets under your skin. Eventually, one of you will fall - generally, it's your opponent. Whether you chop features or back off of an aggressive release, one of you goes down.

Fighters recuperate. They take a break, they see a doctor, they mend themselves for the next fight. Sometimes they fight with fractured skulls, broken hands or broken ribs - but they're a lull before the next fight. They keep themselves fit and moving.

In software, especially in QA, sometimes - nay, most of the time - you don't get the lull after the fight. You have to go, broken and bloodied to the next fight. Even if it's maintaining and supporting a previous release - development has moved on. QA always lags behind in a structured environment, the job is often more intensive and trying then that of development, and generally slower.

You have to move to the next fight, still tired and still hurt. You win that fight. You move onto the next, you win that one - but by now, you're arms feel like lead and you aren't seeing so well.

And so on.

Don't think I am saying this about my current job per-se - I'm not. Just because I'm feeling the burn doesn't mean my employer burned me, or they don't give me rest. In my personal case, I'm the one driving myself from fight to fight to fight.

I just think that in the case of larger, structured development teams, this is the proper analogy. Some companies do better, some do much, much worse. But I still think it boils down to the fight.

QA people are generally not as advanced as developers - and frequently companies treat QA as a novel idea, but not core to the business - this makes the analogy above much more true, and much worse in many respects.

Luckily, although I am the one driving myself from fight to fight, my employer cares about QA quite a bit. They dedicate resources and time, but that doesn't stop the fact we have to keep software going out the door as fast as we can make it, it's a startup - you have to keep running.

I'm tired, and it's late in the fight. This is the 6th of the night and I want to go home but I am not going to give up, and I am not going to stop fighting, fighting is fun. Software, tech and development, is fun.

Fun, interest and learning can let us drive ourselves past our breaking point - but there's always a cliff sitting there - waiting for you to realize that you just went past the point of safety. You have to watch out for that cliff, you have to know your boundaries and most of all, you have to know your opponent.

Edit: Let me add - one thing Boxers, runners, developers, etc all do, which I have not done to date, is to find a pace. When you ramp up, you can't blast yourself, running at full speed right out of the gate, you'll hit the wall, hard and fast. Everyone needs to find a pace, including me.