Thursday, October 26, 2006
OK, maybe the extraordinaire part isn't right, but "bug fixer" has been my job for the past month. This is one of the things contract programmers do: come in at the last minute and help address as many issues as possible before a product is released.
The problem with bringing in contractors at the last minute is that the they often have no experience with the product in question. The learning curve limits what they can do in a short period. As a manager, you want to assign them tasks that they can perform without needing too much hand-holding from your full-time employees. You also want to make sure they con't screw things up too badly. It is very easy for a short-term contractor to become a net-negative producer.
The tasks I've been assigned can be grouped into three categories:
- cosmetic issues
- crash analysis
- black holes
The cosmetic issues tend to be pretty easy to fix, often trivially, but that doesn't mean they aren't important. If a window background doesn't redraw properly when the window is resized, or something flickers a lot when the window is moved around, users get annoyed and say bad things about the product.
After my past few years of concentrating on embedded systems and distributed communications, it's actually been a lot of fun to work on some simple graphical drawing code. It's like getting in a time machine and watching myself work ten years ago.
The crash analysis tasks have given me some new skills. This product test team collects crash dump files every time the app dies during testing. They have the executables and debug symbol files for every daily build in their version control repository, so it's a simple matter to load everything up into Visual Studio 2005 and look at why it crashed. This is a practice I'll definitely be recommending to other teams.
Finally, there are the "black hole" bugs, so named because they suck you in and there is no way out. These are the bugs that everybody else on the team has already looked at and been stumped by, so they let the high-priced so-called "expert" consultant have a crack at them. These are frustrating.
Sure, I'm paid by the hour, so if they want me to spend a couple of days looking at something they know I won't be able to fix, I shouldn't complain. But I hate it when I'm assigned a task that I can't complete. I'm learning all sorts of things about the flakier parts of Windows and Office (MSHTML and MAPI, I'm looking at you). Maybe that knowledge will help a future client, but I'm not helping my current client as much as I wish I could.
If I'm lucky, they'll find a misspelled menu item tomorrow, so I can fix that and feel good about myself.