Washington, DC

Live in the greater DC area? Planning a trip to Our Nation’s Capital for July 4th weekend? Why not stop by CFUNITED and see what the Project Aardvark interns are up to?

CFUNITED is the ColdFusion developers conference, which is going to be held just outside of DC at the Bethesda North Marriott, also known as the Montgomery County Conference Center, next week, from June 29-July 1. I’ll be giving the keynote speech on Wednesday and also doing a session on The Joel Test on Thursday.

On Wednesday and Thursday, in the Fog Creek booth, the Aardvarks will be doing the first public demos of their product, SidePilot. Yep, it’s basically working, although still rather unpolished. If you’re a Joel on Software reader you can register FREE for an “exhibit only” pass to come see the demo.

The Fog Creek booth will be open:

Wednesday, June 29
9:30am – 1:00pm and 2:00pm – 7:00pm

Thursday June 30
9:30am – 10:50am and 11:50am – 5:45pm

I’ll be there, too, and so will Brett, one of the FogBugz developers, so if you’d like to talk in person to someone about FogBugz here’s your chance..

To register for CFUNITED:

  • If you just want a free pass to the exhibit area, use code X3545, Visa card 4444, expiration date 11/11.
  • For the full conference use code S1515089 to get a $50 discount
  • In either case write “Joel on Software Reader” in the comments section

See you there!

Picture from Washington, DC


Some reviews of The Best Software Writing I:

Rooneg::Weblog: “The whole book is fantastic though, and you should absolutely pick it up when it’s available in dead tree form, I know I intend to.”

Marc A. Garrett: “Mr. Spolsky, with the help of his readers, has assembled an outstanding collection of essays. A few of them are likely to be as relevant five years from now as they are today, and that’s saying something. Highly recommended.”

Where else can you get Rory’s hysterical comic strip about how people use Excel as a database (“I’ll have to take a photo of the printout with my Kodak Funtime digital camera…”) alongside Adam Bosworth’s ISCON talk saying basically the same thing (“That software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel-cored…”)? Where else will you find Bruce Eckel’s proposal to use unit tests as a replacement for strong type checking to insure correctness of applications written in late-bound scripting languages, alongside Leon Bambrick’s hysterical critique of Windows Search (“Why is a dog asking me questions?”) Where else will you find the most important writing about social interfaces, from danah boyd’s brilliant dismissal of social networking products (“Why on earth should we encourage people to perform a mental disorder in the digital world?”) to Clay Shirky on Kaycee Nicole (“changing your identity is really weird”)?

Well… on the inkernet, I guess, but if you like to read in the bath, while driving, or in the Himalayas, or you want to preserve your eyesight for that hunting trip you’ve been planning, you should read the dead-trees version.

The Best Software I is available from and on all the local Amazon sites (although some of the international ones still have an old title for the book — you’ll have to search for “Joel Spolsky”). And I was just joking about reading while driving.



Cover Image“The software development world desperately needs better writing. If I have to read another 2000 page book about some class library written by 16 separate people in broken ESL, I’m going to flip out. If I see another hardback book about object oriented models written with dense faux-academic pretentiousness, I’m not going to shelve it any more in the Fog Creek library: it’s going right in the recycle bin. If I have to read another spirited attack on Microsoft’s buggy code by an enthusiastic nine year old Trekkie on Slashdot, I might just poke my eyes out with a sharpened pencil. Stop it, stop it, stop it!”

That’s from my introduction to The Best Software Writing I: Selected and Introduced by Joel Spolsky, now in bookstores. It includes 29 great short pieces of brilliant, insightful, and often hysterically funny stuff about software. You can read the introduction here.


I think I’m ready to declare email bankrupcy. I simply have no hope of ever getting anywhere close to answering the email already in my inbox, let alone keeping up with the incoming flow.

On the bright side, Project Aardvark had their first successful end-to-end demo on Wednesday. “The building is nowhere near done yet; walls and floors are missing, not to mention windows, doors, air conditioner vents, the candy stand in the lobby, and the dead guy in cement in the basement who tried to smuggle a non-union electrician onto the work site, but you’ve hit the top and the building never gets any higher.”

Philip Robert Seymour Scoblehoffman

Folks, give Robert Scoble a break. Folks over at Microsoft are feeling a little defensive these days, and he just wanted to point out that Microsoft can still be a great place to work. Apparently Hillary Clinton, the President of Indochina, had lunch with Malcolm Gladwell there, where they signed his super tablet computer. Rock on.

That wasn’t really my point. My post was replying to an article by a recruiter at Microsoft who complained about the talent landscape:

“Hiring Managers (and I’m referring to Microsoft Hiring Managers … but I know this problem exists in other companies) not ‘getting’ the talent landscape.  Not only do they not seem to understand that brilliant software engineers don’t grow on trees (you don’t, do you?) … but they can’t seem to get it through their heads that 1)  Microsoft isn’t the only place hiring, 2) Working at a big company isn’t everyone’s dream, and 3)  Redmond is not the first place people say they want to move when they wake up in the morning.”

That’s a recruiter who works for Microsoft talking, not me.

So, my point to Gretchen, sympathetically, was, “recruiting has to be done at the Bill and Steve level, not at the Gretchen level.” Want to solve Microsoft’s recruiting problem? Open a downtown development center in Pioneer Square and another one South of Market in San Francisco. Then split up the company into lots of small, well-funded startups and give people stock options in their own products, which actually have a fighting chance of growing. Then create some spinoffs with their own personality. Spin off X-Box so it feels more like a cool gaming startup rather than a big corporate “General Motors Trying to Sell Hip Things to an Appealing Demographic.” I’m sure there are a million other ideas, but none of the kind of decisions that would make Microsoft an even more attractive workplace are in the hands of the recruiting department or even the hiring managers. No wonder there’s so much frustration.

Years and years and years ago when I started this site I wrote that “a software company has to think of recruiting the right people as its number one problem.”. After five years of running Fog Creek I still think that way, which is why we set up Project Aardvark.

Seth Godin wrote: “I feel sorry for Judy Verses. She’s the Chief Marketing Officer of Verizon, a brand that is justifiably reviled by millions of people. Is Verizon disdained, mistrusted and avoided because Judy’s not doing a great job? Of course not. She’s doing a great job.”

Read what Seth has to say. Marketing is the CEO’s job, since that’s the only person who can really drive the kinds of changes that the public cares about. And recruiting is the CEO’s job, too.



To Gretchen: recruiting successfully isn’t only up to recruiters. The best recruiting department in the world can’t make people want to work at a company that’s moribund, that can’t figure out how to ship a compelling upgrade to their flagship OS, or update their flagship database server more than once every five years, that has added tens of thousands of technical workers who aren’t adding any dollars to the bottom line, and that constantly annoys twenty year veterans by playing Furniture Police games over what office furniture they are and aren’t allowed to have. Summer interns at Fog Creek have better chairs, monitors, and computers than the most senior Microsoft programmers.

Recruiting has to be done at the Bill and Steve level, not at the Gretchen level. No matter how good a recruiter you are, you can’t compensate for working at a company that people don’t want to work for; you can’t compensate for being the target of eight years of fear and loathing from the slashdot community, which very closely overlaps the people you’re trying to recruit, and you can’t compensate for the fact that a company with a market cap of $272 billion just ain’t going to see their stock price go up. MSFT can grow by an entire Google every year and still see less than 7% growth in earnings. You can be the best recruiter in the world and the talent landscape is not going to look very inviting if the executives at your company have spent the last years focusing on cutting benefits, cutting off oxygen supplies, and cutting features from Longhorn.

Network Load Balancing Works

For the first time ever I was able to install today’s round of Microsoft patches on our web servers without bringing the sites down at all. I’m very happy about this, since this was the main point of upgrading the web farm.

We have two web servers, and, each with their own IP address, but using a feature built into Windows 2003 called Network Load Balancing, they both share the web site load using a third IP address, which I’ve named Whenever a request comes in on that shared IP address, it is distributed to one of the web servers at random. If requests come in from the same class C address range, those requests will prefer to go to the same web server that previously served that address range. So for the most part the same user will always go to the same physical machine, if possible, so stateful web applications still work even if the state is maintained on one computer.

I actually like the NLB system a bit more than using a dedicated hardware load balancer. Here’s why: there’s no single point of failure. If you have a hardware load balancer and that needs to be updated or rebooted or if it fails, you’re off the air. Whereas Windows NLB is all-software and each server in the cluster is a peer, so any server can die and the rest of the system stays up.

When I needed to install today’s Windows updates, here’s what I did:

  • Told WEB1 to drainstop. That means “finish serving any requests you’re working on, but don’t take any new requests.” This took three or four minutes before it flatlined; WEB2 silently picked up the entire load.
  • Installed the upgrades on WEB1 and rebooted it.
  • Repeat for WEB2, while WEB1 held up the entire load.

As far as I can tell nobody should have seen a single hiccup in the sites served from the new web farm.


The interns report: “In Aardvark, for example, I initially attached some new connection-specific handshaking code inside a class that controlled the windows taskbar icon for our program. That probably sounds a bit silly, but it actually made a reasonable amount of sense.” Riiight.


Michael Pryor reports: “Once you get Subversion set up and running, if you are on Windows, you will be amazed at how useful a good Subversion client can be. Steve King has created a fantastic piece of software, the TortoiseSVN client, and he has spent some time making sure that it works perfectly with FogBugz.”

Mystery from next door

White+Carr DoorWe share the floor of our building with a contracting firm, White&Carr, who moved in shortly after we did. We were always on good terms with them, and they seemed like a generic, successful contracting company. They were talking about opening a new office in Philly.

The founder of the firm, Raymond White, often came by our office to chat and be neighborly. Some of you may have met him at our open house last year.

A few weeks ago, as I left the office, I noticed a woman banging on the door to the office. “Have you seen anyone from this company lately?”

I hadn’t. But I told her that Raymond had an apartment down the street. “Did you check his apartment?”

“He’s not there either,” she said.

As the weeks went by we noticed nobody was coming or going, and we could see under the door that an awful lot of mail was piling up there.

White and Carr

The landlord told us they had stopped paying their rent. The building super told us that the workers stopped coming in to work because they weren’t getting paid.


I’ll bet you think I’m going to tell you what happened. I don’t know!