- Don't prematurely optimize
- Use scripting languages when possible
- write unit tests
- I dont't think that you need to write the tests before the code, but write them.
- document
- no code for public consumption is finished until it is documented. this includes commenting the code, writing a short intro to explain to other programmers how the program is structured, and writing a tutorial and a manual for users.
- use a version control system
- i like svn and arch
- (suggested) have a development wiki (mainly for the developers)
"Scripting language": A language that does memory management for you. A language where you don't really need to know the concept of "pointer".