Monday, March 3, 2014

The Joel Test: Part 2

More on "12 steps to better code".

#7: Do you have a spec?

    This is something I've been harping about for like a week now.  We have several components in our system (such as database, web front end, etc.) and have been rather informally discussing how they will interact with each other.  It's been causing a lot of ambiguity and confusion about which parts do what and how they go about their business.  Related to this test, I want my team (myself included) to write what I'm calling 'interaction specs' this week - detailed descriptions of how their section(s) of the project will interact with their neighbors.

#8: Do programmers have quiet working conditions?

     This is another one that doesn't really apply to us, since we are not a full-time development team that works in a common location.  I think we all do have quiet working conditions (such as our homes or the library), so I think we can get a pass for this one.

#9: Do you use the best tools money can buy?

     We are probably failing this test, but that's because we don't feel we should be spending money to make a school project (which will likely never draw revenue).  We are still-using good tools such as IDE's (Eclipse, IntelliJ), database management services (MongoLab), and source control (BitBucket).  However, all of these tools are free.  I don't know that we would be better off with any paid tools than we already are.  Hard to say if we aren't shopping for anything that costs money.

#10: Do you have testers?

     Ah, another test our team must fail because of the business environment it is in.  We are the whole team, so obviously there are no testers.  I think Joel makes a solid point here, that many groups pay programmers to do relatively unskilled work like software testing.  I myself have been tasked with doing such testing at my work; it can be helpful to know about software, but generally, you could recruit most computer-literate people to do it.

#11: Do new candidates write code during their interview?

    This test makes me cringe!  I haven't had to write code during an interview yet (I've only had one tech job interview, at Sandia).  I can't tell if it's a reasonable thing to do or not.  I think there are people around who write great, great code but do it at a different pace.  Some people take their time and write it well the first time, with minimal debugging.  That approach would make them look slow-to-code or perhaps unskilled in most "write me some code that does X" style interviews.  I'm not convinced about the validity of this test.

#12: Do you do hallway usability testing?

     While our team doesn't have offices (or any such shared space), I do want to implement some things like this.  The only issue is that our UI is only one component of the code.  I do feel, however, that this kind of test is related to things like code reviews and having to explain to each other what your code does and how it's structured.  It gives you another pair of eyes and sometimes explaining it helps you see the process more clearly (this is sometimes called "rubber duck debugging" : http://en.wikipedia.org/wiki/Rubber_duck_debugging).

No comments:

Post a Comment