The Joel Test

Joel Spolsky has a quick test to rate how good your software development process is.

I thought it would be useful to see how the refactoring project scores.

1. Do you use source control?

Yes. The main part of the team has always used CVS for source control and do it properly (tags, branches, all kinds of stuff). This project’s lead developer didn’t believe in source control, but eventually the rest of the team dragged him into the light.

2. Can you make a build in one step?

No. It takes three, a cvs checkout, then kick off a build and finally build the cab file. This one is easy to fix, I’ll add it to today’s list.

3. Do you make daily builds?

No. Once we get 2 sorted this will be easier.

4. Do you have a bug database?

Next week… I spent last week explaining why we needed one. That’s a bad sign in itself… The team were generally keen, the lead developer wasn’t. Once the release is out the way I’ll be installing Bugzilla.

5. Do you fix bugs before writing new code?

Yes. I do. Lead developer doesn’t. Team does most of the time.

6. Do you have an up-to-date schedule?

Yes. We had one at the start of the week. It ends today with ‘ship this release’. After that it’s a little unclear.

7. Do you have a spec?

No. The spec is the lead developer and the user. The lead developer is leaving real soon, nothing is written down.

8. Do programmers have quiet working conditions?

Yes. Not offices. Open plan cubes, but we don’t have support people sitting behind us and we’re off the main drag.

9. Do you use the best tools money can buy?

Yes. The kit isn’t too bad. The long build times are due more to the appalling level of coupling in the code than the spec of the machines we use. We have access to most of the tools we need. Given the state of the code base a couple of analysis tools (BoundsChecker and Gimpel Lint) would be useful.

10. Do you have testers?

No. Do we do testing? Kinda… The code base has no test harnesses and was written in a way that’s pretty hard to test (hence the reason for me being here and the refactoring that’s underway). In the run up to this week’s release most of the development team became the test team, for a morning or so…

11. Do new candidates write code during their interview?

I’m not involved in the client’s interview process, so I don’t know.

12. Do you do hallway usability testing?

No. Well, we might, but if we do then there are maniacs in the halls.

So. How did we do.

1 - 1

2 - 0 (on the list for today)

3 - 0 (once 2 is sorted)

4 - 0 (next week)

5 - .5 (some of us do)

6 - 1

7 - 0 (going on minus lots)

8 - 1

9 - 1

10 - 0 (but much worse than mere binary can do justice)

11 - 1 (I’ve no idea, but we’ll give them the benefit of the doubt…)

12 - 0

So we score 5.5. That doesn’t seem too bad, except for the fact that Joel says that anything less than 10 is seriously bad. Given that by the end of next week I should have fixed items 2, 3 and 4 and be making lots of noise about 5. I think we’re at least heading in the right direction now.

How does your project score?