Sunday, March 09, 2014

How good is your software team? Use the Joel test

Many companies struggle with concepts that are essential in the life of software development. Source control, build system, deployment pipeline, automated tests, ..., are necessary things, that are not as extended (or properly used) as you may think.

I know from my own experience as an engineer at Amazon, that big companies have invested a lot in engineering tools (Facebook actually talks a log about it), so that those teams building functionality for customers can focus on just that, and the rest happens in a simple, repeatable manner.

Other companies in which I have first hand experience, are trying to get there. One of the main problems they face is lack of experience is some areas. It is hard to find professionals with experience in all areas of software engineering, and small/mid organizations sometimes don't have the resources. In this kind of organizations there are lots of good intentions, and a lot of wheel reinventing.

Here is where the Joel test can help. Answer 12 simple questions, and evaluate your situation.


  • 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?
I think the test misses some aspects, most notably a deployment pipeline, and I don't agree with the utter importance of some of the 12 questions, but it is a good starting point. Once you identify where your team/organization is, you can start taking incremental steps towards a 12/12 score.

There is a very interesting article by Kristiono Setyadi in which he comments his experiences as a CTO trying to get to the 12/12. It is a very recommendable read.

Enjoy, and don't forget that the state of perfection does't exist, but he have to constantly try to get there (a.k.a. continuous improvement)!!!