The Jonathan Test: 12 Steps to Better DevOps
20 years after the original, this is my take on an updated "Joel Test"Once upon a time, Joel Spolsky (co-founder of StackOverflow) wrote the Joel Test: 12 Steps to Better Code, which he describes as:
My own, highly irresponsible, sloppy test to rate the quality of a software team.
Here’s the test:
- Do you use source control?
- Can you make a build in one step?
- Do you make daily builds?
- Do you have a bug database?
- Do you fix bugs before writing new code?
- Do you have an up-to-date schedule?
- Do you have a spec?
- Do programmers have quiet working conditions?
- Do you use the best tools money can buy?
- Do you have testers?
- Do new candidates write code during their interview?
- Do you do hallway usability testing?
For a quite while, companies advertising jobs on StackOverflow Jobs could even include their self-scored “Joel Test score”. I don’t see it now, though, so I imagine that feature has been removed.
Many of the items on this list are timeless. Others not so much. In the 20+ years since this was written, the world has changed a lot, and some of these items are nearly laughable. Source control? In 2021, you may as well ask if a company has an Internet connection. Who doesn’t use source control? (Seriously, if you know someone who doesn’t use source control, let me know!)
So here’s my “highly irresponsible, sloppy test to rate the quality of a software team”, hereby dubbed The Jonathan Test:
- Do contributors merge their changes into mainline multiple times per day?
- Is all code tested thoroughly before merging to mainline?
- Is your project built and deployed automatically after every merge to mainline?
- Do you have a bug database?
- Do you fix bugs before writing new code?
- Do you have a prioritized backlog of features?
- Do you have a reasonably complete automated test suite?
- Does everyone have quiet working conditions?
- Do you use the best tools money can buy?
- Do you do hallway usability testing?
- Do developers control their work from start to finish, without a “hand-off” to operations, QA, or some other team?
- Can your developers work productively from an airplane?