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.
- Could a new developer run the code on their machine within five minutes?
- Could you look at any section of code and understand its purpose?
- Could you locate the code for any feature within ten minutes?
- Could you explain all of the code in a way that a junior developer could understand?
- Could you re-factor the code without fear of breaking it?
- Could you test a component without testing its dependencies?
- If any library or technology becomes obsolete, could you replace it easily?
- Could you take modules and re-use them in other projects with no modification?
- Can you be certain that each line of code is actually being used?
- 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?