Back when I started my career, Joel Spolsky published his list of 12 Steps to Better code. It’s incredible how well its stood the test of time. Some of his things were from the point of view of Fogbugz; a bug database.
I’m not the first person to do this but, I’ve updated them with a more modern twist – they probably won’t last as long as Joel’s but I think my changes make them more representative of modern best practices. I’ve not changed number 5, 11, or 12. I’m pretty confident these still make sense, although I’ve never done hallway usability testing, but maybe I should give it a try!
Original test:
- 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?
Updated list:
- Do you use source control that supports lightweight branching?
- Can you checkout, build and run your software in one step?
- Do you build (and unit test) every pushed commit?
- Do you have a backlog and roadmap?
- Do you fix bugs before writing new code?
- Do you deliver progress every sprint?
- Is your spec validated automatically?
- Can developers work from anywhere?
- Can developers pick the best tool for the job?
- Is testing everyone’s responsibility?
- Do new candidates write code during their interview?
- Do you do usability testing?
What do you guys think, agree or disagree? How well do you score on this – old and new? What would your updates be?