*snip*
Oh, and another 'hardest part' is coming in to a project after a number of 'clever' folks have had their way with the design and chose not to document what that design was. Spending a few months feeling like an idiot while you try to wrap your brain around their 'clever' coding is a giant suckfest.
OMFG! This is the story of my life right now to a T. "Self documenting code" -- now there's a joke.