I agree, most especially with taking the time to define what you're doing, and designing the foundation first. I think a better way to say "start with a town" is to focus on the details of the components when the time is right.
Good design, whether it's for a program or a building, needs to begin with a conceptualization phase, which in turn leads designers to figure out the best way to implement their designs. All too often people want to jump right in and get their hands dirty with some code, but this has a tendency to make more work.
I've found that too much planning can be as bad as not enough, though. Too many people sitting around not actually doing anything for too long saps energy and time. It's always best to begin the design process with a simple overview of what you're trying to achieve, and this is where a good manager is critical, keep everyone focused on that.