January 19, 2011
Lame title I know.
Its so named, not just because this is my first post, but as a starting point for reflection at some later point.
I’m a software engineer, managing a small team which builds middleware for low latency trading systems, primarily using C++ and C#.
I recently stumbled across a position vacant advertisement, which boasted the opportunity to work for a software team, scoring 12/12 on The Joel Test. I’d read and enjoyed the test previously, however seeing the job vacancy made me think “could I say that about my team?”
The current answer is no. In fact, at times, our score is a low as 7.
1. Do you use source control? Yes.
2. Can you make a build in one step? No.
3. Do you make daily builds? Yes.
4. Do you have a bug database? Yes.
5. Do you fix bugs before writing new code? No.
6. Do you have an up-to-date schedule? No.
7. Do you have a spec? No.
8. Do programmers have quiet working conditions? Yes.
9. Do you use the best tools money can buy? Yes.
10. Do you have testers? Yes.
11. Do new candidates write code during their interview? Yes.
12. Do you do hallway usability testing? No.
I’m intentionally being overly critical – there are times and projects where I could give different answers. But I’m likely to do more about it if I’m pessimistic, than if I’m completely deluded.
So here is where I’m starting…
2. Builds in One Step
6. Up-to-data Schedule
7. Spec Writing
I’ve been beavering away at 2 on and off for the last month – its irritated me for a while that at some point during company growth, we lost the ability to do builds in one step. I look forward to a smug post to myself about ticking this box in the near future.
Achieving 6 and 7 seem so simple with a little discipline. Perhaps I’ll blog about approaches to finding the required discipline. I’m considering hiring my old science teacher to stand over my shoulder and threaten feeding me to her pet axolotl.
And that leaves 5 and 12…
I take a pragmatic approach to 5 – working with a large, older code base means there are some bugs reported which have to be left behind in favour of hitting more significant issues within the client base.
And 12 I’ll tackle when we have a hallway.