I amused myself today when I realized 37signals does my groceries.
I grew up in the Midwest, where you did your groceries by driving 5-10 minutes to your local supermarket, grabbing a cart, and selecting your food as you wander the endlessly winding aisles. The process, depending on how many you're buying for and how far away the supermarket is, can take 20-40 minutes.
Since recently moving to San Francisco, I've been frequenting my local grocer more and more. It's less than a block away, I don't need to drive, and it's physically small, so the entire process can be slimmed to four or five minutes for travel, selection, and purchasing.
The more I thought about why I appreciated the small market so much, the more I saw that paralleled what 37signals espoused in Getting Real, and, more broadly, to shipping product. It's all about limitations.
The reason I've been going to my local grocery instead of the nearest supermarket is convenience, of course. The time and hassle I save is obvious. But there's a massive limitation: will they have what I want? They're obviously much, much smaller; how will I get by without my precious Dulce de Leche ice cream? The answer, of course, is it doesn't matter.
Would these things be nice to have? Sure. But are they essential? Do they really matter? Nope.
It just doesn't matter, 37signals
Pretty quickly, I found it just doesn't matter. If I'm not throwing a party or feeling like making a special meal that week, the vast majority of the time I'm simply looking to not be hungry; type of food is fairly irrelevant. The things I missed from my local grocer I just stopped getting and substituted them with something different than my "usual" items. The same can be said for web apps. You could try to please your user with every feature under the sun, but users are resilient- they can usually make due with an alternative existing process or feature. In most cases, the difference between the two isn't going to be significant.
Furthermore, you could look at the grocer's stock choices as their idea of what makes a good kitchen. They're a small company. They can't come close to delivering the breadth that a large company can. So they have to make choices. And for the most part, their choices are going to be good enough for me. If they aren't, I can always use them for the majority of my needs, and hit a supermarket every two months when the need arises. In the long term, I could let the owner know what I need, and if enough customers feel similarly I'm sure he'd be fine with implementing my request.
Limitations are a good thing, particularly the smaller you are. If you're building a new site, or if your company is forging ahead against the behemoth, there's no reason to shy away from them. The opposite is true, really: limitations make you who are. A huge company doesn't care about limitations because they're big enough to offer everything under the sun. They miss out on limitations because they don't even need to comprehend them. A small company does, and that shapes how they offer their product, how quickly they can adapt to changes in their product and in changes in their customers. If you're building a data-driven backend there's no reason you both need a list view and a browse view to access the same data. Take a stand, grow a pair and decide which singular view makes sense. It keeps you flexible for the future and lets you ship yesterday rather than tomorrow. The big company doesn't care; they'll build two, three, or five views, because they have the resources. And that's why they'll tend to build a very lukewarm user experience.
I don't mean to harp on 37signals as the end-all, be-all for simplicity in design, of course. But I found it amusing to compare my local grocery situation to Getting Real's table of contents and seeing how similar they line up in places. Simplicity is a little more universal than that. That's pretty cool.
So anyway, what I'm trying to say is I'll have a sandwich, @dhh.