General Development Guidelines
Peter Bromberg posted a good read about the basic rules of development. I happen to agree with all of his points, but there are a couple of them I consider to be particularly significant.
1) A Development Team Should have a Single Design Authority.
I don't think it is by coincidence that Peter posted this one as first on his list. There has been more than one occasion where I have seen the lack of a single design authority lead to a complete mess. It doesn't take long for a system to become difficult to comprehend with 5 or 6 people attempting to mesh together their own designs. For example, try to imagine if everyone on your team used a different approach to data access. Most likely, you wouldn't want to inherit the maintenance of such a system...unless you are a masochist.
It is absolutely critical to choose a single, qualified person to lead the design of a system.
3) Good people build good systems, bad people build bad systems.
I completely agree. When it comes to developers, management often places an emphasis on quantity over quality. You can push all of the best practices in the world at a bad development team and it won't change a thing. Developers that are passionate about their job with a drive to excel are far more likely to build a great system. A team full of apathetic developers is not a group you would want to entrust with the development of a quality system.
Personally, I would put my money on a team of motivated, passionate developers with less experience over a team of arrogant, indifferent developers with significantly more experience.