tags:

views:

437

answers:

8

Joel Test is a good and famous list checking some requisites every software company should concern about.

They are:

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?

My current company hits 0 (I said ZERO) points when I arrived there some month ago. Now we 'proudly' hits 3 - source control, one step build and daily builds. But I'm trying to do more (bug database, wiki, quiet conditions, better interviews...)!

What about your company? How many hits? List what you will do to achive more!

+2  A: 

Right now, we hit number 5 sometimes if we know about the bug and 8 99% of the time time.

Tomorrow, I'll be meeting to push for 1, 4, 5, 6, and 7. I think the only thing you can do is pick one or two and go after those. Set something up, start using them and show everyone else how much easier/better your life is with them.

Thomas Owens
+1  A: 

One (1). we have source control. but it's a small start - up company, so I still have high hopes.

Amir Arad
Update: since the layoffs, we have aslo achieved item number 8.
Amir Arad
+2  A: 

My current project: 1 Y, 2 N, 3 N, 4 Y, 5 N, 6 N, 7 N, 8 N, 9 N, 10 Y, 11 N, 12 N
Total score: 3

Guess what, it sucks. The dev team has been pushing hard for 2, 3, and 5, but it never quite gets approved by management. The operational software is so buggy that hack fixes take all the time and no one is allowed to do these "low priority" type activities.

A funny thing is that this project is in a CMMI level 5 company. Goes to show what that is worth.

John Meagher
I read about CMM/CMMI. I think it means nothing. I think having a well-defined process (either out of the box, or taking pieces from a number of different processes to make a suitable one) is important, but the process itself doesn't matter. In fact, a "custom" process might even be better.
Thomas Owens
@Thomas, my experience is that CMMI means absolute nothing as far as software quality goes. It's all about generating documentation. A crappy team will still output crappy software.
John Meagher
CMMI isn't necessarily a bad thing. In fact it's actually pretty good if it's done properly. The problem is that it's pretty easy to fake it and get certified and most companies see the certification as the selling point rather than the improvement in quality.
Jeff Hornby
+2  A: 
  • Do you use source control?

Of course, I simply cannot understand how companies cannot see the necessity for a decent source control system. We're using SVN. Total: 1 point.

  • Can you make a build in one step?

Our build process takes at least 5 steps and although we discussed a lot of times ways to make the magical 1-step-build happen, we did not find the time to implement that scenario yet. Total: 1 point.

  • Do you make daily builds?

Yes. As stated before, they're not created automatically, but we have daily builds incorporated into a code-review step we do every day. Total: 2 points.

  • Do you have a bug database?

Yes, Mantis is used by our company for this purpose. Total: 3 points.

  • Do you fix bugs before writing new code?

Unfortunately not. New features seem to be more important than bugfixes. Up until the time, when they definately need to be fixed. Which is often way too late. Total: 3 points.

  • Do you have an up-to-date schedule?

We update the schedule all the time, using burndown-charts to estimate the time we're finished. Total: 4 points.

  • Do you have a spec?

We have some specs, but I wouldn't call our projects spec-complete. There is much room for improvements here at our company. Total: 4 points.

  • Do programmers have quiet working conditions?

Yes, our company building resides in a quiet neighbourhood, with no more than 2 or 3 developers in the same room. Total: 5 points.

  • Do you use the best tools money can buy?

Nope. Total: 5 points.

  • Do you have testers?

We have only recently implemented an entire QA-department consisting of three testers. Total: 6 points.

  • Do new candidates write code during their interview?

We do not have too much fluctuation in our team, but the interviews contains a couple of coding-relevant questions where the candidates have to write some sample classes etc. Total: 7 points.

  • Do you do hallway usability testing?

No, sadly not, but it's a great idea. Total: 7 points

All-in-all I think there's a lot of room for improvement, but 7 points might not be the worst score compared to other companies we're working with.

Grimtron
A: 

Current Company across most projects, some are worse(much worse!)
1:Y, 2:Y, 3:Y, 4:Y, 5:N, 6:N, 7:Usually, 8:N, 9:N, 10:N, 11:N, 12:N

For me the big issues in my current Company are 10 and 11.

We don't have a dedicated test resource even though we have a development resource of 100+ developers, not one professional tester! Guess what? Testing aint't good, I surprised at the quality of applications we produce, a testiment to the quality of some of our development teams.

Our interveiew process sucks big style. One developer that we hired recently only had a background in C and emdedded code for satelight receivers. Bearing in mind we're microsoft/.NET/VB6/SQL Server. He had no experience what so ever with databases of any description or WinForms development.
When I quizzed how he got hired I was told by the technical lead who was on the interview panel that personnel had banned him from asking TECHNICAL questions because when the guy had been invited to the interview he wasn't told it was going to be a technical interview!

DaveF
A: 

2 - I am unsure about this one. The main language for my project is PHP. How can you "build" PHP? To me, a one-step build is simply copying select files to the deployment folder.... or a simple svn co http://repos /document/root. I have read stories about companies who make the "build breaker" buy bagels and what not. How do you determine if a PHP build is broken? Its interpreted for crying out loud!

My Perl project is interepreted too, but I have a "build" script that drops the development database, loads production data, then re-applies all of the development changes since production, to make sure that when the time comes to switch, that will still work.
Kev
Googling about PHP Unit Test and PHP tests using Selenium (a javascript tools for tests) you can find several examples for those tasks. So, yes, you may need a one step build as Kev sad. And you can unit test PHP for sure.
Cristiano Sanchez
A: 

I have mixed feelings about #11. On the one hand, I think a few casual interview white board questions can be very misleading. Candidates don't always expect it, they are nervous and asked to code in front of an audience. Gah! On the other hand, I feel like you could get a feel for how someone would fit in your organization with a short computer quiz.

If you use a temp service with temp to hire, does that count if you do code reviews on their early work? Then the job becomes the quiz.

anopres
A lot of companies believe it's so hard to predict coder performance that the only way to gauge someone is to hire them for 90 days to 6 months on a trial basis.
Neil N
A: 

The problem with the Joel test is that even hitting 12 doesn't mean that you're working for a good company. Although if you're at zero you're probably not.

I currently have a client that is running a seven which means that in theory they're not doing too bad. The fact is they're still pretty badly screwed up because of other issues (poor architecture, lack of management support, etc.)

Jeff Hornby