The SoftwareDev/QA Prize fight

January 6th, 2006 § 0 comments

Ah, the grind.

I took a few weeks off — Xmas and New Years break for me. Prob­a­bly the longest amount of time off I’ve taken off from work/coding/tech in awhile. Part of it was hol­i­days, but I think a part of it is the Burn.

We’ve all felt the burn. It’s that feel­ing you get when you open the same code base/test code/bug list for the mil­lionth time in six months, and you’re star­ing at the same chunk of code, or run­ning the same test and you have to men­tally 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 think­ing of releases as a Prize Fight — a box­ing match.

You start off round one — you begin feel­ing out your oppo­nent, after all — things just started and you have to gauge what’s going to be com­ing 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 fig­ured out the easy parts of your oppo­nent, and you start throw­ing your known punches. Things start hurt­ing, you hit, he hits, you hit, he hits. You’re both hav­ing the crap beaten out of you, but you know there’s a light at the end of the tun­nel. It’s dance. Punch, jab, jab, body shot, uppercut.

Then things start to wear on. You’re tired, and you make mis­takes, you get blood­ied, but you keep going. By now, you’re not inno­vat­ing — you’re main­tain­ing. It’s impor­tant to main­tain the sta­tus quo as you progress — you have to throw the same punches over and over and over in hopes your oppo­nent falls.

Later, you fall back on instinct. By now, you’re ribs are aching, pos­si­bly bro­ken and your face looks like you got hit by a truck. But you’re run­ning on empty. You’re run­ning on pure instinct, clos­ing down the same punches you know are com­ing, and try­ing to find any gap that will win you the fight.

Then, it goes into overtime.

In the soft­ware world, this is a slip. A sched­ule slip due to new fea­tures, or late ones. It’s the fact the prod­uct doesn’t with­stand your con­tin­ued punches — the same ones you have thrown for the past months, but the prod­uct sim­ply 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 some­thing else, or you want to just kick it out the door no mat­ter what. In a fight, you see des­per­a­tion — 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 rep­e­ti­tion and con­tin­ued per­ceived fail­ure in the eyes of oth­ers that gets under your skin. Even­tu­ally, one of you will fall — gen­er­ally, it’s your oppo­nent. Whether you chop fea­tures or back off of an aggres­sive release, one of you goes down.

Fight­ers recu­per­ate. They take a break, they see a doc­tor, they mend them­selves for the next fight. Some­times they fight with frac­tured skulls, bro­ken hands or bro­ken ribs — but they’re a lull before the next fight. They keep them­selves fit and moving.

In soft­ware, espe­cially in QA, some­times — nay, most of the time — you don’t get the lull after the fight. You have to go, bro­ken and blood­ied to the next fight. Even if it’s main­tain­ing and sup­port­ing a pre­vi­ous release — devel­op­ment has moved on. QA always lags behind in a struc­tured envi­ron­ment, the job is often more inten­sive and try­ing then that of devel­op­ment, and gen­er­ally 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 see­ing so well.

And so on.

Don’t think I am say­ing this about my cur­rent job per-se — I’m not. Just because I’m feel­ing the burn doesn’t mean my employer burned me, or they don’t give me rest. In my per­sonal case, I’m the one dri­ving myself from fight to fight to fight.

I just think that in the case of larger, struc­tured devel­op­ment teams, this is the proper anal­ogy. Some com­pa­nies do bet­ter, some do much, much worse. But I still think it boils down to the fight.

QA peo­ple are gen­er­ally not as advanced as devel­op­ers — and fre­quently com­pa­nies treat QA as a novel idea, but not core to the busi­ness — this makes the anal­ogy above much more true, and much worse in many respects.

Luck­ily, although I am the one dri­ving myself from fight to fight, my employer cares about QA quite a bit. They ded­i­cate resources and time, but that doesn’t stop the fact we have to keep soft­ware 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 fight­ing, fight­ing is fun. Soft­ware, tech and devel­op­ment, is fun.

Fun, inter­est and learn­ing can let us drive our­selves past our break­ing point — but there’s always a cliff sit­ting there — wait­ing for you to real­ize that you just went past the point of safety. You have to watch out for that cliff, you have to know your bound­aries and most of all, you have to know your opponent.

Edit: Let me add — one thing Box­ers, run­ners, devel­op­ers, etc all do, which I have not done to date, is to find a pace. When you ramp up, you can’t blast your­self, run­ning at full speed right out of the gate, you’ll hit the wall, hard and fast. Every­one needs to find a pace, includ­ing me.

What's this?

You are currently reading The SoftwareDev/QA Prize fight at jessenoller.com.

meta