Agreed... I don't have experience with large projects like
you do (or with coding in general), but I've had quite a few personal projects with grand
plans that I gave up on because I ran into dead end and realized
my design really sucked, or encountered a problem I simply
couldn't design a solution to. Lately it's gotten a bit
better, possibly because of increased age, but maybe because
I realized something:
- If you run into problem that you can't solve right off
because you have no clue where to start and how to build it,
redesign, it might be because you don't really know what you're
doing. Stop, have a break, come back, write down (in comments
is cool) what you're exactly doing, what is the problem, and
everything like you were describing it to someone else. Then
read it.
- Even better, explain the problem to another proficient
coder.
I realize that sounds obvious but I didn't actually think of
that in the first 5 years of my coding, so it's possible
someone else didn't either... especially if this someone
else is as unsocial as myself. Like it or not, coding is
sometimes social practise.