- elegant and efficient
- does one thing well
- can easily be read, and enhanced by a developer other than its original author
- meaningful names
- minimal dependencies
- has unit and acceptance tests
- clean code always looks like it was written by someone who cares
- nothing obvious that you can do to make it better
- no duplication