I honestly wish that Part 8 didn’t exist. Question 8 of The Joel Test: 12 Steps to Better Code sits there pretending to be on par with the other questions, but it turns out to be in a league all its own. Here’s a quick recap of the subjects of questions 1 through 7 in the Joel Test and their Big Swinging Developer counterparts:
|Joel Test||BSD Test|
|Source control||Branching and merging|
|One step build||One step build|
|Daily build||Daily build software|
|Bug database||Bug database software|
|Fix bugs before writing new code||Refactoring|
|Up to date schedule||Raise risks early|
So what makes question 8 so different from all of these? It’s the one thing in the test that you can’t change.
The Joel Test:
8. Do programmers have quiet working conditions?
The Big Swinging Developer Test:
8. Can you get things done regardless of the working conditions?
At Microsoft I had an office that I shared with a designer. It was great. We were quiet except for the times when we both didn’t want to be. At BindView and Symantec I had a private office. It was even better. When I wanted quiet, I just closed (and possibly locked) my office door. At DuClaw I could work in any of our 4 bars, the brewery, or be at home. The bars, while certainly not quiet, were fun places to work and I could always go home when I needed quiet. My current gig, in stark contrast, is the single worst physical environment for programmers that I’ve ever worked in. It’s an "open floor plan" which fosters a "collaborative environment" whether you want it or not. I know plenty of programmers who would simply never work in this kind of office because they know how ineffective everyone becomes with all of the noise and the lack of barriers to interruption.
Being a Big Swinging Developer, however, is all about doing what others won’t or can’t and part 8 is the essence of this spirit. Reread the question, though. It’s not about tolerance or biting your tongue or just getting through. The question is "can you get things done regardless?", which is about adaptability and discipline. I’ve found that the open floor plan affects me less at 6am and on weekends, so when I need to crank things out, that’s when I work. I’ve also found that headphones, while not as effective as a door, are a key piece of survival gear when things get busy around me.
As I said in the beginning, I wish part 8 didn’t exist because programmers really are more effective when quiet is a choice. It’s also a shame that this is something that you just have to accept, like Houston weather or colonoscopies. Just remember: businesses choose open floor plans because they are much, much less expensive — and taxed differently — than real offices. Make sure that you can be effective regardless (and that they pass some of those savings on to you) and you’ll be a Big Swinging Developer that can work anywhere.
Gotta love/hate the open environments… god how I miss the quiet confines of my own office