Running with Scissors
I know your mother told you never to run with scissors - everyone's mother did - but you've done it anyway, haven't you? You've ignored that sage wisdom and taken leave of your senses due to what you probably thought at the time was a dire need to get something done with extreme brevity. Did you at least grab the pointy end to prevent you from stabbing someone as you ran around that corner?
Of course, this post isn't a rant on safety in the kindergarten class room, it's about those metaphorical scissors (and possibly metaphorical running) that many of us handle from time to time. Let me illustrate my point with an example:
I'm a web developer, it's what I do best professionally (although I think I'd make a damn good firefighter). There have been many times that something has broken on my watch, and just about every time that happens I have to act quickly to put out the proverbial fire. In my case the pair of scissors is the code that I'm fixing, and the running is 2am, sleep-deprived hacking away at a keyboard.
In one case I had a high-level director at the University of Texas call me right before bed because an application that my name was on (although I didn't write this particular one) had started running wild and was threatening to crash one of the production servers in their data center. They didn't want to shut down the server to stop my task from running, but they didn't have a lot of options. I was able to fix the problem, but in so doing I introduced another bug - a less globally detrimental one, but an even harder to pinpoint issue (once I encountered it later).
So what did I do wrong? And how can I avoid it in the future? My response to the call from the director was "I'll get right on that” - which is exactly what he needed to hear and what I should have said, but my next call should have been to my boss (who is also a programmer). He could have helped me determine the best approach to correcting the bug. Maybe there was another developer that was knowledgeable about that specific application and could address the issue with more clarity. In any case, I didn't call him. I grabbed those scissors (by the handle no less) and ran right into a wall.
In the end my issue was not life-threatening - nor did it result in a terrible financial or time loss to the University, but it did highlight an issue that I've had before: just doing things. While you may think that "just getting things done” is a great idea, the reality is that it can lead to a lot more work later on, and potentially big issues. I'm not a fan of horrendous amounts of planning, and finding that balance can be very difficult. That said, the difficulty in finding balance is no excuse for a complete lack of planning.
So the next time you think to yourself "this has to be done now", put down those scissors and think about what else you might need to complete this task. Gather those things, come up with a plan, and then work through the problem so that you do it right the first time.