An Updated Joel Test for 2019

Meshify
Meshify
Jul 19 · 5 min read

It’s been almost 19 years since the Joel Test was published. Take some time to read it if you haven’t already, it’s worth it.

The software development landscape has changed a lot in that time, but time-honored principles remain strong foundations of the development process. What follows is my take on an updated Joel Test for 2019, based on my professional experience, and how we build software at Meshify.

1. Is your source control effective for the offline programmer?
2. Can you make a build in one step?
3. Do you build, test, and deploy (somewhere) on every commit?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Does your source have a stable branch from which releases can be cut at any time?
7. Can all of a product's functionality be verified in one step?
8. Do programmers have access to a door that can be closed for uninterrupted work?
9. Do programmers have the freedom to choose the best tools for the job?
10. Is testing the team's responsibility?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

For those who prefer it in an almost-unified diff form:

-1. Do you use source control?
+1. Is your source control effective for the offline programmer?
2. Can you make a build in one step?
-3. Do you make daily builds?
+3. Do you build, test, and deploy (somewhere) on every commit?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
-6. Do you have an up-to-date schedule?
-7. Do you have a spec?
-8. Do programmers have quiet working conditions?
-9. Do you use the best tools money can buy?
-10. Do you have testers?
+6. Does your source have a stable branch from which releases can be cut at any time?
+7. Can all of a product's functionality be verified in one step?
+8. Do programmers have access to a door that can be closed for uninterrupted work?
+9. Do programmers have the freedom to choose the best tools for the job?
+10. Is testing the team's responsibility?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

The unaltered items from the original Joel Test still stand, or could use such little modification that I don’t want to touch them. Discussion of the rest follows.

1. Is your source control effective for the offline programmer?

There’s a popular programming story, paraphrased, “If you ask 5 developers for input on a 5-line diff, you’ll get 5 opinions. If you ask 5 developers for input on a 500-line diff, you’ll get 5 OK’s.”

There is significant value in small, incremental commits, for both the developer and the people reviewing the developer’s code. The value of a developer tool that can’t commit locally on an airplane in 2019 is very limited.

3. Do you build, test, and deploy (somewhere) on every commit?

Continuous Integration is the goal here. Deploying to your pre-prod environment with every commit may be overkill or not fit a business’s requirements, but building and testing every commit can, and should, be done without team member intervention.

6. Does your source have a stable branch from which releases can be cut at any time?

Hot on the heels of #3, make your software always-deployable or always-shippable. Releases become a business decision, not a developer schedule to strive to follow and sacrifice quality on. We don’t need to throw all schedules out the window — feature planning is still useful, regardless of accuracy. Always-deployable software provides strong business value.

7. Can all of a product’s functionality be verified in one step?

Better than a spec is a product that can be verified and tested for regressions quickly and at any time. There’s huge value in a comprehensive test suite, regardless of whether it’s written before or after the code. This also meshes well with #3.

8. Do programmers have access to a door that can be closed for uninterrupted work?

In an ideal world, open offices would be banished with the likes of Six Sigma. In the real world, not every company can afford that, while others still believe the cacophony of tens or hundreds of people working in an open air space is a boon to productivity. Back in the real world, interruptions are a killer to a developer’s progress, and getting back into focus after an interruption can be time-consuming. If a company can’t offer offices to programmers, at the very least they should provide quiet areas with doors than can be closed for significant stretches of time without interruption.

9. Do programmers have the freedom to choose the best tools for the job?

Money doesn’t buy the best software development tools in 2019. Giving the team the ability to define its tooling requirements will improve development pace, ownership, and above all, quality.

10. Is testing the team’s responsibility?

At first glance, this item appears to suggest throwing out anyone with QA in their job title. That’s far from the truth. Quality should be the responsibility of the entire team, whether it’s a team of exclusively developers, or developers, QA engineers/testers, and DevOps engineers. Throwing software over the wall for testing is fraught with peril. Don’t do it!

Does Meshify score 12/12?

Nope! But, it’s important to have goals. I would venture to say right now we are a solid 10–11. Want to help us get there? We’re hiring.


Brian Conway is a Backend Engineer at Meshify.


Meshify is an Austin, TX-based IoT hardware & software company for the insurance industry providing innovative IoT solutions with a focus on simple installation, actionable insights, and cost-effectiveness.

Meshify

Meshify Technical Blog

Meshify

Written by

Meshify

We are an IoT hardware & software company providing innovative IoT solutions with a focus on simple installation, actionable insights, and cost-effectiveness.

Meshify

Meshify

Meshify Technical Blog

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade