I like the idea of choice that's available when you need it, but hidden when you don't. Take Firefox for example. It does a pretty good job of providing features that you need most of the time either in the interface or in the menus.
More advanced options are available in the logical place. Even those are carefully organized in a logical manner. When you select an option in the tools panel, you have a pretty good idea of what will happen.
If you really want to get crazy, though, you can open up about:config and be presented with a huge variety of options, many of which make no sense unless you know what you're doing. It kind of reminds me of the advanced options in Internet Exporer (with Carat Browsing and all), except that it's well-hidden from the average user. Those that need it know where to find it. Those that don't will never stumble on it. I think that setup avoids a lot of what Joel is talking about.
Agreed. KDE is full of people who ran away from Gnome when Gnome decided to take away the ability of people to make choices. It's the average v. power user problem - both are important to a platform.
I think Joel has a real good point. 37s has been slow to make improvements on Highrise. We have nearly 10000 deals and there is no pagination, so I have to wait for the entire 10000 deals to load. I can't even archive them. When you call /deals.xml, we also get all of our won/lost deals.
Someone who can step in and add merely add pagination to /deals.xml will already be doing wonders for us.
Simple software is good. Simple, stagnating software is frustrating because it has a good UI but sometimes the inability for 37s to even add the most basic features breaks a deal.
At Starbucks, people make a lot of choices because they often have opinions about how coffee-like drinks taste best. People spend their whole lives refining the idea of what food and drink is good, and it's virtually impossible to LIVE and to not be a view on the subject.
Most people don't like making decisions about computers, and just want the most basic solution that gets what they want done. Excel is a complicate piece of software, but that's because it's the only way to solve the problems of enough of the market to make it the standard. On the other hand, chat rooms, calendars, and file sharing are something that can work for almost everyone without a whole lot of options, as long as you're willing to conform your workflow to that of the tool. Since there are no "file sharing software experts" (your expertise is in creating the file; sharing it is just something you have to do afterward), software without opinions like the kind Joel is advocating will probably do poorly in this space.
Joel argues that the simplicity we strive for in software should be expressed in a lack of options, not a lack of features. I think this dovetails nicely with Brent Simmons' piece "Flexibility and power" http://inessential.com/2010/08/09/flexibility_and_power with Joel coming in on Brent's side of powerful software being what is exciting.
Joel makes the point that making elegant (or powerful) software is very hard and time consuming, which I think is why so much good software does start out at the 37signals-y "do one thing really well" side of things. The trick is to keep building on that core, adding features that allow the user to do more without having to make more choices about it.
To build on that a little: the main point he makes is that a lot of the decision making can be made during the design process of the software, if you think about not just building a few features, but building THE few features.
I agree with almost all of what he says, the one place he loses me is with the SUPER concise python and C++ code he shows (while (c++ = s++) to copy an array). It makes no sense - that's not elegant, that's just concise - it's very unreadable (at least to someone who has little C++ experience). Elegance and efficiency are correlated, but they aren't the same thing.
I am disappointed that Joel has taken the lazy way out and posted a video instead of writing about the subject. I always enjoyed his writing. I can't stand watching videos in a browser. And I didn't watch this one.
He went to a conference, outside, in the real live world and spoke to a room full of people. Who paid $2000 each to hear him and others talk. And you got to see it for free. Lazy way out? Could you be a little more entitled please?
I reckon there's a fine thin line between simplicity and choice. Make it too simple and it's a useless piece of software. Too many choices will make it die a feature creep death.
Probably the problem with most technically inclined people is the inability to see the world through the eyes of the majority less technically inclined people. Then again I guess it depends on the target market and the product you're building.
Sort of reminds me of murphy's law. "Build a system that even a fool can use and only a fool will want to use it." :)
More advanced options are available in the logical place. Even those are carefully organized in a logical manner. When you select an option in the tools panel, you have a pretty good idea of what will happen.
If you really want to get crazy, though, you can open up about:config and be presented with a huge variety of options, many of which make no sense unless you know what you're doing. It kind of reminds me of the advanced options in Internet Exporer (with Carat Browsing and all), except that it's well-hidden from the average user. Those that need it know where to find it. Those that don't will never stumble on it. I think that setup avoids a lot of what Joel is talking about.