Tunnel vision
I was working on a bug today and I’d gone over it and over it without any resolution. Everything was working as expected for me and I just couldn’t reproduce it. And then I realized what my colleague was doing. I’m not sure he could hear the sound of my hand smacking my forehead or not. It was by no means wrong, just completely unexpected and not something that occurred to me as a possibility. So there was no cookie, session, browser, or permissions bug, like I’d thought. And If I had set up an online meeting and *watched* what he was doing, I’d have saved myself a very nice chunk of time.
I think the lesson here is that you should be 100% certain about the assumptions you make before solving a problem. Anything you can rule out with absolute certainty is helpful. Another perspective, or pair of eyes, is a great way to facilitate that process. I think it’s why pair programming is so highly regarded by some. I’ll admit, there’s something a bit geeky about it, but I can attest to it’s effectiveness. People can get so locked into one way of thinking that the better approach or solution eludes them; something that another pair of eyes might spot right away. Two eyes are better than one, the expression goes. Those two eyes are just not as prevalent, I think, in software development. For most it’s a fairly introspective process. Sure, you discuss designs, tasks, etc., but when it comes to implementation, that’s more of an individualized process… but not always a good thing!
Post a Comment