Real-Time Design Patterns
Many of us have had the experience of working with a truly great software designer. They have the ability to look at a really hard problem and seemingly with no effort construct an elegant and practical solution. Afterward, we all slap our foreheads and say "Of course! It's so obvious!" How do those Great Designers actually come up with these great designs in the first place?