Software Development Rules

From Software Carpentry by Dr. Greg Wilson.

  1. A week of hard work can sometimes save you an hour of thought.
  2. Anything worth repeating is worth automating.
  3. Anything repeated in two or more places will eventually be wrong in at least one.
  4. The three chief virtues of a programmer are laziness, impatience, and hubris.
  5. It's not what you know, it's what you can.
  6. The deadline isn't when you're supposed to finish; the deadline is when it starts to be late.
  7. Never debug standing up.
  8. Tools are signposts, not destinations.
  9. Not everything worth doing is worth doing well.
  10. Code unto others as you would have others code unto you.
  11. Every complex file format eventually turns into a badly-designed programming language.
  12. Tools are amplifiers: they allow good programmers to be better, and bad ones to be worse.
  13. They call it computer science because it's experimental.
  14. Programs come and go; data is forever.
  15. There's no such thing as one program.
  16. Discipline matters more than genius; reality matters more than rulebooks.