Why is composing symphonies tough? I don't know. It's just very few people in the world can do it well. And I think that's the case with upfront design. It is very hard to do well.
I find that writing unit tests actually increases my programming speed
Comprehensiveness is the enemy of comprehensibility.
Now I'm a pretty lazy person and am prepared to work quite hard in order to avoid work.
If you're a technical lead, you need to be coding.
When you actually sit down to write some code, you learn things that you didn't get from thinking about them in modeling terms...there is a feedback process there that you can only really get at from executing some things and seeing what works