The best way is to just dive in.

Sure, get a rough draft of architecture and how you want to design it. But, don't get bogged down in it. Next thing you know you'll get down on yourself because there's so much design work to do.

Design a little, code it, design some more, code it, etc... keeps you busy on the project, and keeps you from getting bogged down in the mire of design.

Don't get me wrong, if it's a huge project with many team members, design is good. But, in the case of solo programming and smaller projects, you have to KISS.


Just my .02,
-Jason