Have you ever had five or six things that you needed to do in your life? Like perhaps you are in need of (1) Getting a Job, (2) Cleaning Your Garage, (3) Alphabetizing your CD collection, (4) Doing the Laundry, and (5) Calling your parents. Arguably, of that list, getting a job is probably the most important (although, calling your parents might be at the top of that list depending on how long it has been… so, have you called your parents lately? No? I’ll wait… okay, let’s continue), however, getting a job can be a big process which can be broken down into smaller tasks, and is least likely to be over with quickly. You might, if this were your list, spend an hour circling ads in the paper, making a few calls and maybe emailing off a couple of resumes, and while the task of getting a job is not complete, you’d likely move on to something else. Especially if this is not the first day you’ve spent looking for a job. You might, given these tasks, go sort the CDs for a while, then throw a load of clothes in the wash, piddle around in the garage and come back to the job search later. Sound about right?
As long as all the tasks were getting worked on at some level, you wouldn’t fault yourself for not spending all your time on the number one top task, nor would you fault anyone else for doing it either… unless it was their job.
It is very common in my daily work that I have a half dozen tasks on my plate. The most important one might be to build an entire new application, followed by some bug fixes, maybe a new report over there, another field added to this screen, etc. Just like any other person in their normal lives, when I work, sometimes, if the task is very large, banging my head against it, even if I am making good progress, gets depressing because it is not getting finished. So, throughout any given work day, I am liable to stop working on the big task and go polish off a smaller one. It makes me feel good, and makes working on the large lumbering task more bearable. However, none of the people I’m doing this work for like it. The people who want the entire new application are upset that I’ve released code with bug fixes, a new report and some screen changes, but no new application.
Being as this is in the Gaming category, how does it relate? Ever read a patch message to your favorite MMO and found yourself thinking (or saying, because every now and then we all talk to ourselves out loud, and its okay), “Why did they fix all this piddly crap when X feature/class/mechanic is so utterly broken?!?” The answer is in the preceding paragraph. No matter how broken something is and how important that feature may be, sometimes a programmer just needs to take a few minutes to fix something easy just to get a victory under his belt for the day.
And believe me, you WANT him to have that victory, because a programmer who gets buried under huge high priority tasks with no end in sight is an unhappy programmer who is looking for another job… and when he finds one, he’ll be replaced with a temporarily happy programmer who doesn’t know the code as well as his predecessor (and he’ll be unhappy and looking for a job soon enough). Those little victories are what keep the programmers believing that they can and will tackle the larger problems that exist.