Simplification
I was working with one of my teammates today on a problem.
When trying to get something working the key is to understand the problem. You shouldn't just try adding code until you get something working -- just because something works doesn't mean that it's reliable in any way. And simply adding code until it works just gets you nothing but a highly coupled mess of spaghetti.
Dropping what I was working on I fixed a problem that was thought to take a day or two in 15 minutes just by analyzing the problem and figuring out what needed to get done as opposed to coding randomly until things work.