- Design the Module's Interface First
- Write the Test Cases Before the Code
- Create Standard Code Documentation Templates for Modules and Applications
- Use a Revision Control System
- Create Consistent User Interfaces
- Agree Upon a Coherent Layout Style and Automate it
- Code in Commented Paragraphs
- Throw Exceptions Instead of Returning Special Values or Setting Flags
- Add New Test Cases Before you Start Debugging
- Don't Optimize Code--Benchmark It
I guess most of these are obvious to many of us - developers but still only a few of us can honestly admit to following all of them stringently everytime. So I believe the real challenge lies in how religiously can you follow them even in the face of deadline pressures, unclear specs, and the other pain producing things that indirectly affect what you do when you write code using your favorite editor.
Read the original article by Damian Conway.