Continuing the “fear” theme with another personal anecdote: I have a water phobia, caused (I think) by almost drowning as a child. I can trigger a panic attack in waist-deep water, simply by putting my head under. For that matter, I have issues putting my face directly into a shower's flow. Not good for someone who grew up less than a mile from the ocean.
So why is there a sea kayak hanging in my garage?
The answer, as you might have guessed from the title, is that I said “no” to my phobia. I took a guided kayak tour once on vacation, and decided that I liked it. I then took a paddling class before buying my own boat. And part of this class involved a “wet exit”: intentionally flipping the boat upside down, undoing the spray skirt, getting out, and surfacing — while still holding onto both boat and paddle. I dreaded the very idea.
As it turned out, I unintentionally flipped a few days before the class (tip: don't grab onto branches overhanging a moving river). And realized that panic takes a backseat to training: before I had a chance to think about what happened, I had pulled the “oh shit strap” on the skirt and pushed out of the boat. However, that didn't make the intentional flip any easier. Or the rolling class that I took a few months later. Phobias don't go away just because you tell them to.
To an outside observer, phobias often appear trivial. OK, perhaps not a fear of drowning, but heights? Open spaces? Small bubbles in pancakes? To the person in the grip of a phobia, however, they're very real and very immediate.
Which brings me back to fear and programming. To an outside observer, the fears that motivate programmers seem very trivial. Will you die if you miss a deadline? No. Will the company go out of business? Probably not. Will you get fired? Probably not, unless you have a history of missing deadlines. Will you get yelled at? Maybe.
Against that, what is the penalty for shipping software with a bug? Depending on the place that software is used, someone might actually die. Or a financial transaction could go wrong, meaning the company loses money. And if you ship sloppy software, even if it doesn't have bugs, you guarantee that the company will lose money when maintaining that software.
The trick to saying “no” is to mentally rehearse the alternatives, so that they take precedence over the fear. Whether you're in an upside-down kayak, an airplane that has just lost its engine, or in your boss' office after missing a deadline, there are always alternatives.