Thursday, January 19, 2012

What's in Your Backpack?

The movie "Up in the Air" stars George Clooney, who plays the part of a professional "Displacement Manager", i.e. he is hired to fire people - and he's very good at it. Clooney's character also has a side-job - as the world's worst motivational speaker. How he ever lands an engagement is one of those Hollywood riddles that you just have to accept. Kind of like the last Star Trek movie when young Kirk is marooned on an alien world which is close enough to witness the total destruction of a neighboring planet, but somehow is unaffected by the obvious gravitational distortion. Yeah, like that.

In "Up in the Air", Clooney's alter-ego uses a backpack as a metaphor for all of the things in your life that are holding you back. He suggests friends, relatives, spouses, co-workers, and such are the things you throw in your backpack that just weigh you down, hold you back, make you unsuccessful. (This is his "motivational" message!).

George, if I’m ever depressed, please just leave me alone.

Clooney's motivational lack of elegance notwithstanding, the backpack metaphor can be applied to our work in I.T. Every project comes with certain challenges such as costs or time lines that causes us to forgo perfection. We learn to accept (create?) poor quality documentation, obfuscated APIs, fragile connections, magic numbers, and stupid coding tricks just to make our time / cost estimates.

These get thrown into our support backpack. They weigh us down, reduce our satisfaction and infuse errors and performance problems into our systems. This baggage holds us back, keeping us tied to systems from which we'd like to progress away. This year, find something in your backpack to get rid of. This might mean revisiting an existing solution on the down low and replacing a “hack” with a “hooray!”

Maybe you can lighten your backpack by committing to never using a magic number in your code. For instance:

for( int x = 0; x<=9; x++ ) {
// some code
}

In this instance, '9' is a magic number. Why 9? Why not 8 or 10? Yes, yes, I get it, you want to loop 10 times, but why? How about:

static int MAX_ALLOWABLE_ACCOUNTS = 10;

for( int x = 0; x < MAX_ALLOWABLE_ACCOUNTS; x++ ) {
// Some code
}

The next developer to touch this code (assuming an IQ over 12) is at the very least going to ask, "Why do we only allow 10 accounts?" This becomes a business question that will yield a better understanding of both the business model, the program code, as well as a lighter backpack for both you and the next coder.

This change takes no additional time, costs zero additional dollars, improves the understanding of the business, reduces future maintenance time, and lightens the backpack for everybody. If that isn't motivation enough, maybe we could arrange a one-on-one with George Clooney.

1 comment:

  1. Eric, I really liked this post. The notion of discarding "kluge-y" baggage can apply not just to code, but to poorly-documented and poorly-thought-out business processes as well. So I will take on your challenge and improve some of our Records business processes in the coming months. Thanks for an aumusing & though-provoking post.

    ReplyDelete

Follow by Email