the power of 0ne

# February 16, 2005

Yesterday I read through a bunch of Joel Spolsky's old articles. One of them was the Joel Test. As I read through the list I realized that a couple of the items are simply not achieveable in Usertalk.

Here's an overview of the list:

1. Do you use source control?

No. As far as I know there is no source control system for Usertalk. There's Webedit, but it only allows remote access to your data. Perhaps I should write it?

Score so far: 0/1.

2. Can you make a build in one step?

Since the normal distribution for Usertalk code is .root file I could easily have a new Root release generated in one step, but I don't. There is no good reason I don't so I intend to rectify this situation on my next release of Master Ping.

Score so far: 0/2 (damn two in a row).

3. Do you make daily builds?

No. I could list several excuses, such as: My projects are too small, I'm the only active developer etc... But these are all just excuses. This is such an easy thing to do in Radio or Frontier that there is no good reason not to.

Score so far: 0/3 (this is starting to look really bad).

4. Do you have a bug database?

Yes and no, all my major client projects have bug databases, most created by me. But most of my personal projects don't, I need to fix this.

Score so far: 0.5/4 (well at least I got 1/2 a point).

5. Do you fix bugs before writing new code?

For the projects that have bug databases: yes. But for the others, I tend to forget about the bugs (as I don't always track them). Another 1/2 point here.

Score so far: 1/5 (at least my avg is going up).

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

Finally a full 'yes'. It's usually in the form of a list somewhere, with time estimates for my clients.

Score so far: 2/6 (woohoo first full point).

7. Do you have a spec?

Always, even if it's just a Blog post describing how the software works, I always have a spec.

Score so far: 3/7.

8. Do programmers have quiet working conditions?

I work from home when I want to do serious coding work I close the blinds, unplug the phone, disable my IM clients and work with about zero possibility of being bothered.

Score so far: 4/8.

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

Definitely, I buy the best hardware & software I can afford. My desktop probably does need an upgrade right now, but that's more a question of cashflow, as soon as the funds are available, that's where they're going.

Score so far: 5/9 (hey, that's not so bad!)

10. Do you have testers?

This one is tricky. For my personal projects there are a few people I trust to test, but since most of these projects are free tools I don't actually pay anybody to test them. All my big client projects have part-time or full-time testers.

Score so far: 6/10

11. Do new candidates write code during their interview?

I've never been involved in the hiring process for other members of my software team, so I can't really score myself on this one. By definition, people who contribute fixes / changes to my personal projects write code, so I'll say yes here ;)

Score so far: 7/11

12. Do you do hallway usability testing?

I've never called it that, but yes. I always bounce my UI designs off someone.

Final score: 8/12

According to Joel, I've got some serious problems, but at least I'm heading in the right direction.

As a result of this test, I hereby officially set myself the goal of achieving a 12/12 before June 1st of this year. From what I just wrote there is absolutely nothing stopping me from achieving a score of 11/12 very quickly.

Getting that last point (source control for my Usertalk projects) might be a more work, but hey, they say nothing worth doing is ever easy :)

As proof that I'm serious about this goal I've posted my Joel test score to my template, you can see it in the right nav bar of this site just under my profile. By watching that score you can follow my progress.

Wish me luck!

The Kyoto protocol goes into effect today, so if you feel like saving some money and helping reduce greenhouse gas emissions go check out the one-tonne challenge.