Classic Blog Post Review: FogBugz 4.5

This Hall of Fame Blog Post review begins my public stalking of Joel Spolsky. Among other things, Joel co-created FogBugz and Stack Overflow and writes Joel on Software.

I’ll do a later post on Spolsky’s work and philosophies, this post will focus on a single excellent and ancient post from Spolsky.

They had a nice FogBugz 5.0 release planned with all sorts of cool and important features and fixes. One task was making the two most used screens (the single entry screen and the list view screen) more useable.

Now this did involve a cool new technology (for 2006), Ajax, which may be why it got done. But I’m not surprised with the results.

“The more we played with the new Ajax features the more we fell in love, and the more we realized that this was the single greatest thing we had done in FogBugz in a looooong time. So we decided to ship the new features as soon as possible … and get this stuff out to our customers right away rather than waiting for the other planned 5.0 features.”

I know some people will learn the lesson “see, we implemented the cool technology and it was amazing.” Which was true in this case. But the lesson I learn is that they focused on improving the user’s power, throughput, and satisfaction on the 2 screens that they used the most and the results were dramatic.

Now I don’t know what else was planned for 5.0, but it’s probably a subset of the major features that actually did get released in 6.0:

  • A full-featured wiki
  • Evidence Based Scheduling” including reports, timesheets, vacation scheduling, scenario analysis, etc.
  • A developer API
  • Better search engine
  • New classes of user that probably opened up all sorts of opportunities
  • Visual Studio add-in
  • “Countless improvements in response to customer feedback”

Those are all very important, and I’m sure the people working on those features were disappointed to see them removed from release 5.0 (unless they were running late).

I think FogBugz was lucky here. The programmers were happy because the new feature involved Ajax, which was really cool new technology. And the programmers seem to run the show there. Everybody else’s job is defined as supporting the programmers. There are no investors. Marketing’s job is to “to make the masses want their products” (not, for example, to help define the product based on customer needs). So without all these other people involved, and perhaps only because it was cool technology, they got to do what was probably best for the company — make the user happier and more productive on the 2 screens he stared at all day. Or maybe they did it because it’s a team with a good understanding of how to really serve their customers.

Wherever you are, please take away the lesson that your top priorities are to remove your users’ biggest sources of frustration, and to make them more productive, on the things that they do most of the time. That has to come first. The new features, the API, etc., also need to be developed but don’t let them distract you from the less sexy but more important priorities of helping your users in their most common tasks.

Final point about this post. Spolsky uses 3 very similar phrases to make his key point:

  • When people are successful at controlling their environment they become happier, and when they can’t control their environment, they get grumpy.
  • Put people in direct control of the stuff around them and they will, more or less, on average, be happier.
  • Design software that puts the user in control and you’ll increase happiness

I can’t be sure what exactly he means, but here’s my view of where this holds true and where it doesn’t.

It does NOT mean you should provide skins and dozens of options. Google has 6 preferences. 6. Just the very basics about choosing your languages, safe search, number of results, open in new window, and show query suggestions. You can’t add a skin. You can’t change the font, or the color. There are probably things you can change by changing your browser settings, but that Google intelligently leaves between you and your browser. And in fact if you wanted to do a complex query from the normal search box, you were better off before Google. And this is part of what makes Google great. And the simplicity also allows a simpler code base, fewer permutations to test, fewer scenarios that can break, etc.

And yet when I’m using Google, I feel quite in control. Because the only control I want is to get great search results quickly. Yahoo! provides far more options, but doesn’t make me feel more in control.

In the case of FogBugz 4.5, controlling my environment wasn’t about skins or color schemes. It was about being able to get the result set I wanted, quickly and easily.

Through the years I’ve been involved in various efforts of adding skins, preferences, etc. We’ve added widgets and features so that the user could do all sorts of cool things. We spent time making some options more prominent. These rarely had the effect we desired. We succeeded most when we focused on giving the users the control they craved in achieving product’s biggest benefits. Getting the information they wanted. Improving the user generated content. That’s where the user most wants and needs control, and that’s where your primary focus must be.