I’ve been working on a few projects lately that have a very time-sensitive aspect to them. That time-sensitivity is accompanied by an overly-short planning cycle, so things are being handled in a more “reactive” manner than I like. I’m a “proactive” person, I like a good plan (though it doesn’t have to be a 500 page doorstop, a plan is a good thing).
Every time one of these “reactive” projects gets going, these included, I always re-discover the importance of keeping a cool head. Rather than lighting your hair on fire to run around with the rest of the folks, stop for a second. Step back, assess the situation, and take your time in solving the problem. Don’t waste time, but take enough time to consider all of the angles of the problem in the context of your proposed solution.
When executing on a solution, work fast, but don’t work quick. The difference is important - fast work will get you done while respecting the time-sensitivity; quick work will find you cutting corners and making errors that you wouldn’t normally make.
That’s the crux of this one - take enough time so you’re not making those stupid mistakes that you wouldn’t otherwise make in a less time-critical project. We all know what happens when you do make those mistakes, right? In software, the solution will get sent back from QA (or doc, or - worse - the customer) as insufficient, incomplete, or incorrect. That’s bad news that will actually put you further behind schedule than had you not cut those corners, not made those mistakes.
One of the positive side effects of keeping a cool head in solving the problem is that it’ll reduce some of the stress you might be prone to due to things being “out of control,” which, in turn, will ease some of the interpersonal communication issues that inevitably arise in these situations.
I think it’s time for me to put the fire in my hair out, step back, take a breath, and solve some problems.