[A picture of private offices at Fog Creek Software]

Joel on Software

A game of inches

by Joel Spolsky
Thursday, June 07, 2007

"Did someone leave the radio on in the bathroom?" I asked Jared. There was a faint sound of classical music.

"No. It's coming from outside. It started while you were away and happens every night."

We live in an apartment building in New York. There are neighbors on all sides. We're used to hearing TV shows from below, and the little kid in the apartment directly above us has a favorite game: throwing a bunch of marbles on the floor and then throwing himself around the room violently. I'm not sure how you keep score. As I write this, he's running rapidly from room to room crashing into things. I can't wait until he's old enough for paintball.

Anyway. This classical-music-late-at-night thing had never happened before.

Worse, it was some kind of sturm-und-drang romantic crap that was making me angry right when I wanted to fall asleep.

Eventually, the music stopped, and I was able to drift off to sleep. But the next night, when the music resumed at midnight, I was really worn out, and it was more self-important Wagner rubbish, with pompous crescendos that consistently woke me up every time I finally drifted off to sleep, and I had no choice but to go sit in the living room and look at pictures of lolcats until it stopped, which it finally did, around 1 am.

The next night I had had enough. When the music started at about midnight, I got dressed and started exploring the apartment building. I crept around the halls, listening at every door, trying to figure out where the music came from. I poked my head out windows and found an unlocked door leading to an airshaft where the music was amazingly loud. I climbed up and down the stairs, and listened closely from the window on each and every landing, until I was pretty convinced that the problem was from dear old Mrs. C's apartment, #2B, directly below us.

I didn't think Mrs. C, who is probably in her 60s, was even awake that late, let alone listening to music loudly, but I briefly entertained the possibility that the local classical music station was doing the Ring Cycle or something and she was staying up late to hear it.

Not bloody likely.

One thing I had noticed was that the music seemed to go on at midnight every night, and off at 1:00 am. Somehow, that made me think it was a clock radio, which probably had the alarm factory set to 12:00.

I couldn't bring myself to wake up an old lady downstairs on the mere suspicion that music was coming from her apartment. Frustrated, I went back to my apartment and caught up on xkcd. I was depressed and angry, because I hadn't solved the problem. I festered and scowled all the next day.

The next evening, I knocked on Mrs. C's door. The super had told me she was going away for the entire summer the next day so if the problem was coming from her apartment I better find out pronto.

"Sorry to bother you," I said. "I've noticed that every night around midnight there's loud classical music coming from the airshaft behind our apartments and it's keeping me awake."

"Oh no, it's not me!" she insisted, as I suspected she would. Of course not: she probably goes to sleep at a completely normal hour and certainly never plays loud music that bothers the neighbors!

I thought she was a little hard of hearing and probably never noticed the thing blaring away from her spare room in the middle of the night. Or maybe she was a good sleeper.

It took a few minutes, but I finally convinced her to check if there was any kind of clock radio in the room below my window.

Turns out there was. Right in an open window beneath my own bedroom window. When I saw that it was tuned to 96.3, WQXR, I knew I had found the culprit.

"Oh, that thing? I have no idea how to use that thing. I never use it," she said. "I'll disconnect it completely."

"Not necessary," I said, and turned off the alarm, set the volume to zero, and, in my late-onset OCD, set the clock to the exact time.

Mrs. C was terribly apologetic, but it really wasn't her fault. It took me—me!—quite a while to figure out how to operate the damn clock radio, and let me tell you, sonny boy, I know a thing or two about clock radios.  The UI was terrible. Your average little old lady didn't stand a chance.

Is it the clock radio's fault? Sort of. It was too hard to use. It had an alarm that continued to go off daily even if nobody touched it the day before, which is not the greatest idea. And there's no reason to reset the alarm time to midnight after a power outage. 7:00 am would be a completely civilized default.

Somehow, over the last few weeks, I've become hypercritical. I'm always looking for flaws in things, and when I find them, I become single-minded about fixing them. It's a particular frame of mind, actually, that software developers get into when they're in the final debugging phase of a new product.

Over the last few weeks, I've been writing all the documentation for the next big version of FogBugz. As I write things, I try them out, either to make sure they work the way I think they should, or to get screenshots. And every hour or so, bells go off. "Wait a minute! What just happened? That's not supposed to work like that!"

And since it's software, I can always fix it. HA HA! Just kidding! I can't make head or tail out of the code any more. I enter a bug and someone with a clue fixes it.

Dave Winer says, "To create a usable piece of software, you have to fight for every fix, every feature, every little accommodation that will get one more person up the curve. There are no shortcuts. Luck is involved, but you don't win by being lucky, it happens because you fought for every inch."

Commercial software—the kind you sell to other people—is a game of inches.

Every day you make a tiny bit of progress. You make one thing just a smidgen better. You make the alarm clock default to 7:00am instead of 12:00 midnight. A tiny improvement that will barely benefit anyone. One inch.

There are thousands and tens of thousands of these tiny things.

It takes a mindset of constant criticism to find them. You have to reshape your mind until you're finding fault with everything. Your significant others go nuts. Your family wants to kill you. When you're walking to work and you see a driver do something stupid, it takes all your willpower to resist going up to the driver and explaining to him why he nearly killed that poor child in the wheelchair.

And as you fix more and more of these little details, as you polish and shape and shine and craft the little corners of your product, something magical happens. The inches add up to feet, the feet add up to yards, and the yards add up to miles. And you ship a truly great product. The kind of product that feels great, that works intuitively, that blows people away. The kind of product where that one-in-a-million user doing that one-in-a-million unusual thing finds that not only does it work, but it's beautiful: even the janitor's closets of your software have marble floors and solid core oak doors and polished mahogany wainscoting.

And that's when you know it's great software.

Congratulations to the FogBugz 6.0 team, outlandishly good players of the game of inches, who shipped their first beta today, on track for final release at the end of the summer. This is the best product they've ever produced. It will blow you away.


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Next:

Font smoothing, anti-aliasing, and sub-pixel rendering



Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Fog Creek Software, a New York company that proves that you can treat programmers well and still be highly profitable. Programmers get private offices, free lunch, and work 40 hours a week. Customers only pay for software if they’re delighted. We make Trello, insanely simple project management, FogBugz, an enlightened bug tracker designed to help great teams develop brilliant software, and Kiln, which simplifies source control. I’m also the co-founder and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky