In August 2000, Joel Spolsky wrote The Joel Test, a checklist to judge the quality of a software team. This is just as valid today.

The team is vitally important, but so is the code you spend 8+ hours a day working on. Here’s my equivalent of the Joel Test to measure how easy your code-base is to work on.

Answer yes or no to each.

  1. Could a new developer run the code on their machine within five minutes?
  2. Could you look at any section of code and understand its purpose?
  3. Could you locate the code for any feature within ten minutes?
  4. Could you explain all of the code in a way that a junior developer could understand?
  5. Could you re-factor the code without fear of breaking it?
  6. Could you test a component without testing its dependencies?
  7. If any library or technology becomes obsolete, could you replace it easily?
  8. Could you take modules and re-use them in other projects with no modification?
  9. Can you be certain that each line of code is actually being used?
  10. If the code became open-source, would you be happy to be associated with it?

I’ve worked on projects that score a 2 or 3, and some that score all 10.

It’s not difficult to achieve a full 10/10 on a new software project, but it’s a lot harder to bring legacy code-bases up to that standard. I think you will find a direct relationship between the score on the test and how much you enjoy working on a project.

Where does your code rank?