Software Development with Linux

Better Code with Linux

SAT, 01 AUG 2009

It's been 9 years now that Joel Spolsky wrote "The Joel Test: 12 Steps to Better Code". Yet, it's still in JoelOnSoftware's Top 10 posts. This isn't surprising since the 12 questions still apply today.

So you've read that post, realized that you need to fix some part of your software development process, and you are now asking yourself : "How do I do that with Linux?" Well, that's easier than it looks. Let see what possibilities exists.

1- Do you use source control?
This one is pretty trivial. There are plenty of source control available for Linux : git, svn, cvs, (see my CVS clients review series), mercurial, perforce, Vault, Bazaar, Darcs, monotone, BitKeeper, etc. As you can see, the possibilities are endless, so go get one now!

2- Can you make a build in one step?
Again, there are many build system offered for Linux : Rake, Ant, Perforce Jam, make, SCons, etc. Pick one.

3- Do you make daily builds?
Do you think that you have plenty of choices here too? You're right! Among the possible candidates are : Buildbot, CruiseControl, Hudson, Tinderbox, TeamCity, cabie, Anthill Pro, etc.

4- Do you have a bug database?
If you don't already have one, some good choices are : bugzilla, Eventum, JIRA, Roundup, SimpleTicket, fixx, MantisBT, TestTrack Pro, Trac, Fossil, etc.

5- Do you fix bugs before writing new code?
I hope you're doing it. Otherwise, the bug database software above may help you.

6- Do you have an up-to-date schedule?
Most people think only of Microsoft Project. But a lot of Linux alternative exists : TaskJuggler, Planner, dotproject, Redmine, OpenProj, etc.

7- Do you have a spec?
Well, a spec can be written with any document writer software. An in today's "agile" environment, a specification management tool is probably seen as overkill. But many bug tracking software also offer requirements tracking, so you can look into that if you want.

8- Do programmers have quiet working conditions?
There aren't much tool that help to provide a quiet work place, but if you like to listen to music while working (to help you stay in "the zone"), great choices are : Amarok, audacious, Listen, Quod Libet, Songbird, Decibel, Rhythmbox, Exaile, Banshee, gmusicbrowser (my personal favorite), etc.

9- Do you use the best tools money can buy?
Well, you're using Linux, so yes is the answer.

10- Do you have testers?
I hope you do.

11- Do new candidates write code during their interview?
I hope you do.

12- Do you do hallway usability testing?
Well, I guess this depends on what kind of software you're developing, but there aren't any tools to help you there.

That's it. I hope that my suggestions will help you improve your Joel Test score and improve your Linux usage.