A software developer is doing a good job when his bottom-up programming skills are good. The most common mistake a beginner do is that he works top-down. The way you know someone works top-down is that he does not or don't want to rewrite existing code whereas he should be doing that a big amount of his time.
I used to say I work one month a year writing code. The other 11 are spent debugging, supporting, documenting, packaging, controlling. Not as extreme these days with throw-away web projects but still a small fraction of time is spent on the original draft I believe.