Having a ritualistic daily challenge run in Spelunky somehow grants me an attitude towards failure and slow progress that I unfortunately have towards very few things, especially my work. When I have a short Spelunky run I just laugh it off. Every time I die I know exactly what I was supposed to do. I just slipped up. The infinite ways the levels of Spelunky conspire against you is so outrageous that you just can't get mad.
This is very different from failing in my work. Whether it's not getting as much done as I'd like, not accomplishing what I set out to do, or being sidetracked by things that crop up throughout the day. I know what has to get done, but it just doesn't happen. Anxiety about the work begins, I don't sleep enough, and then I get even less work done the next day – a vicious cycle of self-inflicted discontent. All my failures feel like they are a direct result of my inadequacy.
In Spelunky, however, the world is so overtly against you that it becomes easy to forgive yourself for mistakes. You never have a death that isn't unexpected. When thinking of my work in real life it's too easy to fall into a trap of visualizing a simple path to success. In Spelunky, randomness and failure are so integral to the experience of progressing and improving that it's impossible to visualize a straightforward path. All you can do is take it slow, remember your past mistakes, and be aware.
Another problem I struggle with when working is rushing myself. I see a developer who is better than me cranking out great code, and I think that to be like them I just have to work faster. But all that rushing does is make my code worse and make the project take longer. When watching the best Spelunky players, however, it quickly becomes apparent that they take the exact same precautions you do. That long stare-at-the-floor-until-the-camera-looks-down that takes forever? They do that too. The only difference is they know when to slow down and when they can speed up. Trying to imitate them by speeding through a level won't get you anywhere, because that's not what they're doing. The same thing applies to coding. The best coders are taking it slow – making test programs, and rewriting sections of code as their understanding grows. They only go fast when they are essentially re-implementing something they have already written – something that only comes with time and experience.
So whenever I die during my Spelunky daily run I try to internalize the failure. It's a daily reminder that persistence is all you can ask of yourself, and you just have to try to laugh off the rest.
p.s. I'd love to meet you on twitter