1. Never screw over your team.
  2. Always use source control.
  3. Always have good backups.
  4. Test your backups.
  5. Never believe you understand the problem, you don’t.
  6. Users have delusions of grandeur, make sure you don’t.
  7. Don’t worry so much about normalization (disk drives are cheep now).
  8. Don’t waste good code.
  9. Never schedule a cron job between 2:00AM and 3:00AM.
  10. Software can be Fast, Good or Cheap you can only pick two.
  11. Never interrupt a programmer “In the Zone”.
  12. Sometimes – you’re wrong.
  13. Refactor before you release to QA.
  14. Know how to use your debugger.
  15. Know your tools.
  16. Never let server management and server hosting be the same company. – Bill Bush
  17. Clean up the mess that you make. (Never leave behind loose ends)
  18. Never merge broken code into a team branch.
  19. Give back to Open Source.
  20. Resist releasing on a Friday.
  21. Some clicks cannot be undone, check your SQL syntax.
  22. With great power comes complexity, but complexity dose not equal great power.
  23. Never let your employer decide your career.
  24. “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
  25. Upgrades are part of the job, keep up. (Keep your skills and your tools up to date)
  26. Clever is the enemy of clear.
  27. Comments are mostly evil.
  28. Always know what your code is supposed to do before you start writing it.
  29. Best practices are context dependent.
  30. Always strive to simplify.
  31. Only write code if you absolutely have to.
  32. Packaging of you Applications, Modules and Libraries matter.
  33. Security code should execute as early as possible.

Unnumbered: Train the User, and we all are Users.
Unspoken: Family comes first.


Other Lists:

The Joel Test: 12 Steps to Better Code