Joel test - Our answers

What? Exoweb scores 0/12 points on Joel on Software's test?

No, we're not 0 points, but according to Joel's definition of the Joel Test we're not 12 points either. In fact, we've got issues with some of the points; they don't apply well to shops doing agile methodologies. To give a better view of what we have we'll therefore qualify answers to each of the 12 points (and add two more points).

  1. Do you use source control?
    Yes. We use Subversion everywhere.

  2. Can you make a build in one step?
    Yes. We mostly use Python so building is just running.

  3. Do you make daily builds?
    Projects use unit and functional tests. The faster ones are run by developers before checking in code, the whole battery of tests are run every night with emails sent out to developers.

  4. Do you have a bug database?
    Yes. We use Trac both for this and for Backlog Items.

  5. Do you fix bugs before writing new code?
    We believe in reducing the number of "broken windows", but we go by priority not just type of work when scheduling backlog items.

  6. Do you have an up-to-date schedule?
    Yes. Since we use Scrum our schedule is the Product Backlog and a set of Sprints with Sprint Backlogs.

  7. Do you have a spec?
    Yes. Since we use Scrum our spec is the Product Backlog. Backlog items are scoped out in detail before they become part of any Sprint Backlogs.

  8. Do programmers have quiet working conditions?
    We have a mix of a big open loft office space and smaller offices, the latter are of course more quiet than the former. We are expanding the loft and will try to improve the sound proofing.

  9. Do you use the best tools money can buy?
    Yes. Our current generation of hardware now propagating to developers include dual-core machines, dual LCD screens (17" and above) and lots of RAM. Since we work with open source technologies, most of our software tools are open source. However, developers may request the purchase of any software they reasonably need for their purposes.

  10. Do you have testers?
    Yes. Since we're big believers of agile methodologies and automated testing, we don't need as many manual testers as Joel recommends. Developers themselves write the automated tests. However, each team has individuals tasked with manual testing and certain teams have dedicated testers that match the Joel definition.

  11. Do new candidates write code during their interview?
    Yes. We've got a team doing HR, and a set of 5 machines for candidates to perform on-site programming assignments that we run against unit tests. Candidates doing remote interviews also have to have a programming environment and submit code samples.

  12. Do you do hallway usability testing?
    Usability testing is currently done on an ad-hoc basis, usually at the start of building bigger features. We're planning to improve the frequency and regularity of usability tests.

We also believe these questions to be extremely important in determining if this is a place you want to work:

  1. Do you review all code?
    At Exoweb, pair programming is optional, but code reviews are mandatory. We've created extensions to Trac to facilitate code reviews on changesets (which we will open source soon). We've found having at least two code reviewers on all code to be extremely important in catching bugs, discovering and standardizing on best practices, facilitating knowledge sharing and learning, and in general creating software craftsmen.

  2. Do you have an up-to-date automated test suite?
    We do for all systems newer than 2 years old, although some legacy systems (that we are phasing out) do not. Automated tests are necessary to be able to do refactoring, and refactoring is necessary to avoid code rot, and non-smelly code is an important part of a programmer's quality of life.