When writing a proof, I look at the assumptions and try to figure out what they imply. I then look at the conjecture and figure out what would imply it. I try to step inward from either end until I figure out what the linchpin of the proof will be (or the crux as ygolo said). Once I've done that, I pick a method, work from assumptions to linchpin, and then the rest sort of topples into place (hopefully). It's the first parts that are difficult. Sometimes I play a bit with the assumptions, but I try to keep it abstract and avoid playing with specific cases.