I wrestled in high school. Our team was good, even winning a state championship one year, and our team was filled with several highly-ranked wrestlers.
By my second year of high school, I was a good wrestler. I'd go up against these ranked wrestlers every day in practice and at first I held my own, then I occasionally beat them, and by the end of the season, I'd win almost every time. My coach made me wrestle heavier guys in practice to challenge me, and I got to a point where I wasn't getting scored on.
Once, I had an Olympic medalist at a camp use me as an example of how to do several moves. Of the hundreds of matches wrestled at another camp, I recorded the fastest pin. My coach told my dad that he would be surprised if I didn't win at least two state championships before I graduated.
In practice, I was dominant.
That year, in official matches, my record was 7 wins to 27 losses. I lost and lost often and it usually wasn't close.
At the same time, my teammates that I beat consistently in practice were all on big win streaks, winning medals, and qualifying for the state tournament, while I was lucky to win at all.
Through the rest of high school, I won more than I lost in official matches, though not by much, but in practice I became even more dominant, routinely beating everyone.
The difference was, before real matches, my analytical brain would think of every single tangential thing that had nothing do with the physical act of wrestling. I would think about my opponent's record, how many points my team needed from me, and my past failures. During practice, when there was nothing to lose, the only thing that mattered was the wrestling.
When it counted, it was no wonder that I lost. I would psych myself out with pessimism and by the time I actually stepped out on to the mat, I was in a full-on nervous breakdown.
Looking back, I realize that I would have been fertile ground for even the most basic of sports psychology. When it didn't count, I was a world-beater. Turn on a clock and throw in a referee and I became a completely different athlete.
Going ahead about a dozen years, I'm working at Flickr and a big piece of our developer culture is something called the Fear. This Fear is that fluttery feeling you get in your gut when you're about to deploy one of the world's most-loved websites and your changes could Mess Things Up.
The Fear comes from not having much of a cover-your-ass process. Developers get hired with the ideal that they are their own steward of quality. They can deploy code whenever they like, as often as they like, with little fanfare and with this privilege comes the trust that you're not going to mess up (or at least not too bad, or too often).
I've worked with developers that don't seem to have much in the way of the Fear, or at least didn't show it. When I first started at Flickr, I was in the opposite camp. I had to force myself to deploy “big” things. I would get that familiar feeling that I used to get on the wrestling mat, paralyzed by analyzing every possible way things could go wrong.
On my desk, I have a print-out of the quote, “What would you do if you weren't afraid of failure?” Turns out, quite a bit.
Having the hindsight of a failed high-school sports career with a healthy respect of my own limits, I've (mostly) worked through this by embracing a few core tenets.
The first is knowing that people mess up. I mess up. Constantly comparing myself against some invisible measuring stick of perfection is a surefire way to cause disappointment because, surprise, perfection doesn't exist in the real world. Good enough does and going after that is, well, good enough.
Another thing is knowing that I can only do my best. When I write code, past history shows that it usually turns out working fine. I take this as my best has been good enough in the past and it will probably be okay this time too. I have to remind myself of that.
The biggest mental adjustment I've made is just trying to remove the emotion of fear from the deploy itself by approaching it analytically. I ask myself, basically, “Is this code good for deploy? Has it been tested? Does it work for you and the test cases you thought of?” If I can answer in the affirmative, I override my animal instinct that is beholden to the Fear, the one that is throwing out nothing but pessimistic what-ifs, and hit the button.
In the end, the only thing that matters is the code, and not any squishy human emotions that my own neurosis attaches to it. If the code works, I ship it.
If I had this same mantra when I was a wrestler, by just getting out there and doing nothing but focus on the physical act, I could have been a contender. But now, every day, I get to redeem myself bit by bit.