The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

On Simplicity

I liked that last post by Joel. There were a lot of things I whole-heartedly agree with, but...

I don't see simple as always necessarily being a lack of features or just a design issue.

Simplicity to me means putting in as much as I can and making it as easy to use as possible. (Often MORE is LESS.) There are some very complex things out there in some software that are very far from simple operations but have simple interfaces to "get things done".

For example, in MS SQL Server 2000 you get DTS which makes transferring data drop dead simple. It's changed in SQL Server 2005, but regardless, it was a great tool.

On the other hand, a lack of features can ADD to the complexity of the software. The iPod is a prefect example of a device that makes things MORE complex than they should be by omitting features. i.e. FLAC, WMA and OGG are audio format. I have music in them. So, I have WMA and FLAC and OGG music. I can't play them on my iPod. That adds a level of complexity because now I need to transcode them to some other format.

To dumb things down a bit, I have music that I just doesn't work on my iPod, and that makes my life MORE complex, and detracts from the simplicity of the iPod. i.e. "I don't care about the format - I just want to listen to my bloody music!"

<pseudo_rant>There are many more examples in the iPod and iTunes where the lack of features increases the complexity and decreases the usability, however, to state more would degenerate into a rant.</pseudo_rant>

"Simplicity" is a case-by-case thing. Will adding a feature make life easier for you users or will it clutter things?

As a concrete personal example, I put a feature into GDT where you only need to mouse over something to bring it into focus. It's not really a standard type of thing that you'd find in other pieces of software, but it elimiates having to click on something to bring it into focus. The logic behind it was that it would make my life easier. Surprise surprise. I get emails from users commenting on this virtually insignificant feature about how they love it. It adds to the complexity of the software, but at the same time reduces the complexity for the user. Kind of reminds me about a related thing mentioned by 37Signals about designing the user interface first.
Ryan Smyth Send private email
Sunday, December 10, 2006
I've always agreed with Joel on this one, and criticised him when he meandered from pro more features positions.

But I also wonder.

We seem to have entered a phase of unnecessary complexity with many devices.

I've stopped buying PC games, because unlike PS2 games, they don't "just work".

I get fed up with a lot of games, because they seem to be designed to grind you down by attrition with a million little details (complexity), rather than having interesting game play or story lines.

When I moved into my current house, we got the previous owner's TV as part of the deal.  The remote has about 50 buttons that can do all sorts of amazing things. My baby nephew fiddled with the remote, and now the picture is bigger than the screen.  This isn't too much of a problem, except we sometimes lose the very top of newsreaders' heads, and we always lose the little bit of text caption at the bottom of the screen (like who has been substituted in a football match, breaking news).  No individual button sets it back (so it must be a combination of buttons).  Why the f*** did the TV designers include a button to do this?
Sunil Tanna
Sunday, December 10, 2006
> We seem to have entered a phase of unnecessary complexity with many devices.


I pass this off as lazy design or lazy programming. Increasing the complexity in your software can very easily decrease the complexity for the user. I don't want my users to struggle with things, and I'm amazed when the big boys just get it completely wrong. i.e. If little ol' Ryan can get it right, why can't you? Or - NTFH - Not That F***ing Hard.

For your TV, how hard would it be to have a "reset" option. Yep - Just amazing...
Ryan Smyth Send private email
Sunday, December 10, 2006
The "wheel of retail" drives businesses to add more and more specialized product to more precisely meet the needs of every consumer.  Ultimately the cost of carried inventory drives margins down.  Specialized niche players then come in with higher margins or lower prices by limiting inventory and serving only part of the market. 

Here is how I see simplicity becomes an advantage in software dependent products.  A new or niche software vendor, having no or few legacy customers and fewer features has a lower cost of development, testing, and maintenance.  The vendor of the sparingly-featured-product then puts these cost savings into better research, testing, and marketing to produce a product that exceeds the competition in ways that matter to an important fraction of customers. 

Software sold on features boils down to reliably cranking out more features for longer.  Adding features can be like competing on price; head to head competition with margins and vendor lock-in your weapons.  But a vendor with a simple product has less to explain to their target niche - it doex X perfectly and the other guys don't do X very well at all.  Pick X and you win - then start adding features. 

Its called the wheel of retail and even the iPod shows the effects of riding it. 

What you see in a Korean retail appliance store (Norman's reference market), is a market devoid of competition from Korean niche players.  The chaebol in Korea are famously anti-competitive in their practices with extreme regulatory capture being the norm.  The result is a line of products in Korea that compete purely on an extreme number of features because the oligopolists anti-competitively keep the simple niche vendors from getting to market.
Richard Freytag Send private email
Sunday, December 10, 2006
If you are building tools - I can see simplicity as an advantage.
SQLite does 20% of what Oracle/SQLServer/DB2 can do.
But it requires no installation, no drivers, no admin, but for 80% of users it is perfect.

Similairly with langauges and frameworks, C++ does 100% of everything but at what a price, Java/C# do 80%, down to a framework like ruby-rails which probably does 20% of what C++ can do, but is probably the best solution for a lot of problems.

So have lots of 20% solutions which target different markets. Like having an entire tool box of simple tools instead of a meta-swiss army knife.
Martin Send private email
Sunday, December 10, 2006
Actaully thinking about it there is a faily popular operating system that embodies this approach.
Martin Send private email
Sunday, December 10, 2006
> For your TV, how hard would it be to have a "reset" option. Yep - Just amazing...

Yep it is amazing, a reset button would be good - that's the complex solution

Or they could have omitted the button combination that says "Cut off newsreaders' headers and scrolling news banners", i.e. made the damn thing simpler. 

I can't imagine anybody (well maybe 1 in a million) actually wants this feature anyway.  And even if somebody did actually want this button, I can't imagine them knowingly choosing the right button combination to get it.
Sunil Tanna
Sunday, December 10, 2006
I don't know what TV you inherited and I've only recently upgraded from a 10-year old 14" colour, so my advice might be useless.

On my wide-screen TV, that 'feature' is called 'zoom' and is meant to vertically expand the image. The reason someone would want this is because most broadcast is still in 4:3 aspect ratio while much new programming is in 16:9. In order to properly present without distortion on a 4:3 TV, the image needs to be 'letterboxed' (black bars at top and bottom). When that signal comes into my 16:9 TV, I still have the letterboxing, but now the image is distorted. If I cycle through my 'PSize' settings (and thankfully, I have a dedicated button'), I'll end up at vertical zoom, thus eliminating the unnecessary letterboxing and eliminating the distortion. Obviously when something 4:3 comes on (like the news or an old repeat), I need to unzoom in order to get back the tops and bottoms that zoom mode is cutting off.

If your remote doesn't have buttons to directly expose this functionality, then I agree that someone screwed up. Look for a 'menu' button and browse the settings. You might even find a reset buried somewhere!

If somebody was halfway smart about making this whole thing simple, the circuitry would detect the large expanse of black (or lack thereof) in the letterbox regions and then automatically zoom/unzoom as required. If somebody was really smart about it, aspect ratio would be encoded into the signal so that both 4:3 and 16:9 could be shown distortion-free with no user intervention.
Ron Porter Send private email
Sunday, December 10, 2006
Hang on a second, here Joel.  Weren't you just complaining ( ) that the Vista shutdown interface was too complex, and didn't you  propose several simplifying the interface by removing a bunch of features?
Greg Send private email
Sunday, December 10, 2006
I was thinking the same thing, Greg. Seems like a somewhat hypocritical post. Sure, one could argue that "choices" fall  into the design realm and that "features" fall into the functionality realm, but in the end, they are far too similar.
Hox Send private email
Sunday, December 10, 2006
Actually, TV content does carry information about its aspect ratio (there's a pin on the SCART connection which goes high when the picture is widescreen) but many devices don't process it properly. Also, most set-top boxes (which you'll probably be using if you're getting your content from cable or satellite, at least in the UK) don't do this properly.

Little 16:9 content is letterboxed by the broadcaster, since the default TV screen is widescreen - and again, in the UK has been for some time. So the problem is more often 4:3 content being horizontally stretched on a 16:9 display - something which most HDTVs can deal with automatically these days.
.NET Guy
Sunday, December 10, 2006
To me, before trying to create a product its important to first identify the demand and the target market that goes with it.  Thats where I think the initial feature set will come from and I suspect keeping it small is a good idea.

Then, there are all of the the analysises (market, stakeholder, needs, substitution, user, usability, interaction, instructional) that need to be performed to refine that audience and feature set.

To me, I thought that apple initially sold lots of ipods because I think they just looked at the size of the average geeks record collection (demand),  created a solution (cheap hard drive big enough to store it), and applied substitution (it was cheaper and easier to use than the alternatives).

Now like the mobile phone market, they have gotten market saturation, they'll have to keep diversifying (adding features) to maintain the revenue flow (user base) or the users will substitute to the next best product that comes along (churn).  Its likely that apples strategy had identified multiple usage models (target markets) which has allowed them to produce product variations (different feature sets) - that will last them for a while, but I think they'll need to be introducing new products into that user base before the ipod concept goes stale, or their customers (and revenue) will all churn away in an instant.

Thats a different strategy than creating a simple product and growing its features to hit different areas of the user base (adding features to create demand for the next version of the product), in the latter, one is still doing all of the analysises, but with a different focus.

In short, I think the more successful one is in identifying ones target market and its needs (and demands) the less likely one will end up building the wrong feature set (which is where I feel the issue of simplicity and complexity comes from)

However, if simplicity is regarded as the number of features an item has, its important to remember that one persons simple can be another persons complexity.
Andy Send private email
Sunday, December 10, 2006
Cutting off the newsreaders head would not be such a bad feature if one could eliminate voice as well.

From the Osterman weekend : "My advice to you is turn it off"

Monday, December 11, 2006
Well, simple does not necessary effect that you are using some very nice technology.

Take a look at new cars. Why on earth with all those key chain fobs that you can press a button to un-lock your car, why even bother? Why do we actually STILL have the old fashioned idea that you have to put in a key and turn it to un-lock the door, or even trun a key to start the car.

Even cars like the Toyota camery now offer full automatic key systems. As long as your key chain/fob is in your pocket, as you walk towards the car, it knows you. The doors un-lock, and there is a  SIMPLE button on the dash…you press it to start the car. (you NEVER even have to grab, or take out your keys in your pocket). In fact, the car does not have keys in a traditional sense. (the key remote actually DOES NOT have a key on it).

Talk about simple. You just walk up to your car, pull open the door, and get in. You then press a button to start it the car. (no grabbing keys, no unlocking the doors, no pressing a button on the key chain to un-lock the doors. You walk up, get in, and press a button.

People  I talk to who use these systems just love it. You NEVER fumble for keys in your pocket.

There is a LOT of great technology going on here for this to happen, but the bottom line is that the whole thing is simple for the user. Simple and easy does not necessary mean that you not using some quite amazing technology here.

Even when you ask young kids in Japan as to why they like the ipods? Their answer is that that software just works (both ends...pod part and pc part).

Albert D. Kallal
Edmonton, Alberta Canada
Albert D. Kallal Send private email
Monday, December 11, 2006

sounds great. But this kind of simplicity will have to prove itself once the battery in the key is dead...
Monday, December 11, 2006
I posted this on the Design of Software board earlier, but I'll post it here too as this seems to be the main discussion:

What I mean by simplicity is more to do with options than features, in so far as they differ. And it means the software designer is prepared to make decisions.

It's too easy to add an option because one loud prospective customer who doesn't really understand the program keeps on demanding it, even though it doesn't quite fit into your vision. If one person wants it, you think, maybe some other people do too. We'll sell more software, and everyone else can just ignore the option anyway.

But it's a slippery slope. You end up with far too many options, the program becomes hard to understand, people choose wrong options or incompatible options, your QA department can't test every combination of options, and your program loses the ease of use it started with.

Don't do it! If one way is right, and one way is wrong or confusing, please just do the right thing, silently. That way I don't have to think *and* I can't mess up. And I promise to tell everyone that your software Just Works.
Stephen Turner Send private email
Monday, December 11, 2006
More simple but more features; 80/20 but not everyone uses the same 20%...
The answer is obvious: modularity.
With a good communication protocol you can assemble software modules to extend the software you use with the features you want, and make devices communicate with each other.

Done well, it is has easy as assembling Lego bricks.

It already exists: some devices are communicating via Bluetooth or infra-red; many succesful apps are featuring an embedded scripting language. It even have been here for a long time in the software area if we consider the Unix model of little simple programs doing one thing that can be combined via a simple file interface.
Monday, December 11, 2006
Why do people talk about the Unix tools philosophy, as if it was actually used to build real applications?  Sure, it sounds great and all, but hardly anyone uses it for anything other than shell one-liners  Read this post

for more discussion on the subject.
Greg Send private email
Monday, December 11, 2006
I make money only because of the simplicity of my program ( My customers use my program to create layouts of cones, even if they own a full CAD program (e.g. AutoCAD). Only enter 3 dimensions and hit "Export". Try to do that in AutoCAD!

I regularly get requests from customers to add feature X or Y, but I keep rejecting most of them because I believe the strength of my program is its simplicity.

As for the complexity of the code itself: my program is fairly complex. Old versions used to have merely a text balloon with each dimension edit field to explain what dimension of the cone was intended. The current version shows a rotating 3D graphical model in which the currently selected dimension is shown as an arrow. If the user focusses on another textbox, the arrow in the 3D model changes accordingly. Complex programming to provide simplicity for the user!
Monday, December 11, 2006
The iPod, IMHO, is elegantly simple largely because its job is simple.  It's a portable music player and its design reflects this very focused function incredibly well.

A Word Processor, on the other hand, has much less focus with respect to functionality.  Its uses are many and the features which simplify those uses abound.  Joel really has hit the nail on the head in this blog entry.

The more general the application the greater its tendency to multiply complexity.  One could argue that the purpose of the computer is to execute instructions.  The thing is pretty useless unless, from the beginning, you multiply complexity and create instructions.

It's a virtuous (or vicious) cycle of complexity that's leading to the proliferation of embedded devices which, by design, expose only a narrowly focused set of features.

As for simplifying Word Processing, I think it must be attacked from many angles at once: intuitive user interfaces, intelligent help and perhaps most important of all - the ability to turn off any of the improvements one finds encumbering.
arnshea Send private email
Monday, December 11, 2006
There is a difference between features of the product and features exposed in the user interface.  Take automobile traction control as an example.  If you don't know, it uses sensors in each wheel to detect a slipping wheel and either apply the brakes or limit power to that wheel until it stops slipping.  Many cars have this feature now, but most don't have any user interface to it.

Some cars, though, have a button you can press when you're driving in icy conditions.  This changes the response of the system to be more aggressive about stopping wheelspin.

Then there's the Corvette.  The first version to have traction control had the option to completely disable it.  Under racetrack conditions, sometimes the fastest line requires intentionally sliding the rear end to set up for the next turn.  Traction control can't anticipate that.

In the real world, how many people are actually good enough drivers that they can take advantage of that exceptional condition?  How often are they really able to take advantage of it?  How many ever have?

Now how many people want to *believe* that someday they'll drive like that?  The feature makes the car better.  Needlessly exposing the feature in the user interface makes the car more marketable.  People like to believe they're not average, but instead the elite for whom "good enough" just isn't.

A related phenomenon leads to Jeep commercials touting the off-road prowess of vehicles that, for the most part, never leave the suburbs.  People want to believe that they someday will do something exceptional, and want their product to support that belief.

Nissan, back when they were called Datsun, once had a commercial that came right out and said it: "You won't go 0-50 in 6 seconds flat but you know you could.  You won't use it's drag speed of over 100 mp/h but you know you could.  And when the light turns green you won't flaunt your turbo power but knowing you could is awesome!"

Now apply this to the washing machine that senses what kind of load it has.  Personally, I can't think of many things I care less about than my skill in classifying loads of laundry.  But I would still have trouble accepting a salesman's pitch that really, the machine is smarter than me about this.  If Consumer Reports backed it up, though, I'd take a one-button washer *and* a one-button dryer.


As for the file formats on the iPod, lack of this capability is not "simplicity".  If the codecs were added, the user interface wouldn't have to change.  More features, same simplicity.


For the keyless entry, it's not as simple as it was presented above.  Aside from the failure mode someone else already mentioned, there are times you need to decide whether the car is locked or not.

* If you have your spare keys in your gym bag in the trunk when you walk away, the car doesn't lock.

* You can't leave the car unlocked while you and the kids make several trips to unload groceries.  You'd have to hand off the remote every time one of you goes down.

I think the process probably could be simplified, but I would want extensive usability testing and design work before I would take a car that decided for me when to be locked and when to be unlocked.
Drew K
Monday, December 11, 2006
> Hang on a second, here Joel.  Weren't you just complaining [...] that the Vista shutdown interface was too complex [...]?

Hey, let the man change his mind. After all, the truth is always somewhere in-between. Here's what I think about it:
Felix Pleşoianu Send private email
Monday, December 11, 2006
How timely. Just yesterday, I was lamenting that I couldn't find an item with a specific feature - a feature that makes the device simpler.

The item in question is a thermostat. I want one that does NOT have the switch to go between heating and cooling, but just figures out what to do automatically. Sometimes in the spring and fall, the temperature will swing from too warm in the afternoon to too cold in the evening - my wife will switch to A/C while I'm at work, and I'll wake up at 3 AM freezing because nobody switched it back.
Mark Ransom Send private email
Monday, December 11, 2006
As usual, I think Joel is sort of right. But, you don't get attention in a blog by being all wishy washy so...

History is replete with examples of companies being destroyed by competitors with cheaper, less feature rich products. In fact, isn't that the whole basis for the notion of "disruptive change"? Sometimes, cheaper and simpler IS better.
Bruce Rennie
Monday, December 11, 2006
I have an HAI RC-80 thermostat that does exactly what you are specifying.  It has "off, heat, cool, auto".

Since this is the software forum, the other neat thing is that it's got an RS-232 interface.  I wrote a web front end for the thing to allow programming it instead of via the front buttons -- that's also something that for me made it simpler.

I think it sells for under $200 these days, which for me didn't seem like a ton of money given that it's programmable.  Other communicating thermostats are much more.
Tom Dowdy
Monday, December 11, 2006
Eric Sink is right when he says software companies must chose a "smaller group" of people and implement "only the features that are required by the folks in your very small group" ( This was one of Joel's cover stories.  When you implement only features required by your group, you are by definition excluding features.  A strategy Joel says will not work.

Read Eric's advice to focus on a smaller group of people so that you can DELIGHT THEM ALL and SHIP SOONER.  What's wrong with focussing on that group of people as your smaller group to delight?  What's wrong with having customers like this:
Scott Meade Send private email
Monday, December 11, 2006
'Simple' has a different meaning from 'simplistic'. 'Simple' means 'complete in functions, easy to use', whereas 'simplistic' means 'incomplete in functions, perhaps easy to use'.

A word processor without a word count function falls into the 'simplistic' category.

A word processor with a word count function hidden inside 3 menu levels is complete, but not simple.

A word processor with a word count function that is easily accessible from a menu and can display the word count as you type is simple.
Achilleas Margaritis Send private email
Wednesday, December 13, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz