Quality First and Easy
Quality must be the first and primary virtue of any software development effort. You can deliver 100% of the features 3 months ahead of schedule, but if the quality isn’t there people will only notice how poorly it works. It’s relatively easy to apologize for lateness or missing features while maintaining user trust, but the features that are there better work or people will lose faith and trust and that is extremely difficult to regain. Quality isn’t something that can be added later, it has to be something you provide for up front and make an inherent part of any process or discipline.
In order to encourage this culture of quality, quality has to be easy. In fact, it’s best if implementing with quality is easier than implementing without quality.
Frequent, short feedback loops/cycles
Decoupled object design
Separation of concerns
Isolation of dependencies, especially slow ones like networking, database, etc