There's a software engineering blog I have read on and off for a while, found here:
http://joelonsoftware.com/
A fellow at my work recently retired, and left some books behind. Among them was a book by this same guy (Joel Spolsky) called "Joel on Software". I was particularly interested in an article both present in the book and at the following link, called "The Joel Test: 12 steps to Better Code" :
http://www.joelonsoftware.com/articles/fog0000000043.html
It outlines 12 litmus-type tests that, according to him, indicate the health and productivity of a software development team. I'm planning on following most of this advice with my own team, and have already implemented some of it (though some parts remain). I'll discuss the first 6 tests here, and the latter 6 in a later post.
#1: Do you use source control?
This kind of seems like a no-brainer for a team project to me. I've never done a team project without some kind of source control tool. Sounds like a friggin' nightmare. For this project, my team is using Git in conjunction with BitBucket.
#2: Can you make a build in one step?
I feel as though this test will be a challenge to implement for us. We are using several different technologies, including a remote MongoDB instance, Java code in conjunction with the Play web framework, and web stuff like HTML, CSS, and Javascript for the front end. I intend to insist we can pass this particular 'Joel test'. If we need some list of 15 things to re-bundle and create the software project, that's gonna stress everyone out and bog us down near the finish line.
#3: Do you make daily builds?
I actually don't think this one applies to us as much. For one, this project is not a full-time job for us, so daily builds are not really necessary. However, I do think that once we are settled into our basic code base and our making improvements and adding features to it, weekly or bi-weekly builds would be nice. Note that this test can really only be feasible if you can pass test #2.
#4: Do you have a bug database?
This is a tool that we had not discussed before I brought up this article to the team. I have seen bug-tracking programs in action, and have become a believer in them. I was originally going to use a separate one (e.g. 'Buggle'), but it was pointed out to me that our BitBucket has a built-in system. We'll see if that does the job when we get deeper into development.
#5: Do you fix bugs before writing new code?
I will demand this from the team as much as possible. If you're trying to add features on top of buggy code, you might as well be building a skyscraper on quicksand. You'll also burn time debugging things that are the fault of already-buggy code, rather than the new code.
#6: Do you have an up-to-date schedule?
We are currently failing this test, in my opinion. Our schedule and milestones are evolving so rapidly that the written version is simply inaccurate. I will be working to fix this soon.
Tests 7-12 to come in a later post.
Irrelevant fact: Joel is from Albuquerque.
ReplyDeleteI saw that! Also an Israeli paratrooper I guess.
ReplyDelete