Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Simplicity is hard to build... (twitter.com/sacca)
82 points by gaika on July 17, 2008 | hide | past | favorite | 37 comments


I have my own more literary version (hat tip to Tolstoy). "Crappy websites are all the same; great websites are each unique in their own way."


I would say: "All good interfaces resemble one another, each crappy interface is crappy in its own way."


On the surface they may resemble each other, but the effort is always in the little niggly details of error messages, page flow, arrangement of things on the page. Whereas crappy interfaces are just CRUD.


But that's bastardizing the original Tolstoy quote, which IIRC was "Happy families are all alike; each unhappy family is unhappy in its own way", i.e. success looks the same, but failure is widely varied.

</pedantic>

Applies to startups too. And oh look, there's a Wikipedia article on it too:

http://en.wikipedia.org/wiki/Anna_Karenina_principle


That page seems to be entirely one author's (Jared Diamond) twist on the original phrase. There's nothing wrong with turning a phrase around - it's akin to irony.


The page suggested that it was also used in statistics and ecology. I'd never heard of it before I Googled to make sure I had the quote right, so I'm basically taking Wikipidia's word for it (always a risky thing...)


Tolstoy!


I stand corrected. And since I corrected the original, I'm noting here that I originally had "Dostoevsky."


Why is complexity easier to charge for than simplicity? Is it because consumers mistake accidental complexity with real complexity? Does simplicity make a product or service appear of less worth?


Because when people see complexity, they assume it was difficult to program. When someone sees simplicity, they assume that's just how computers work. For example, how does Google work? It's an incredibly complicated problem, but Google puts a nice front-end on it that makes it all look like that's just how computers work.

In my job capacity, I often have to create custom search applications. As a whole of the project, this is given very little time and money. What is given time and money are incredibly complex interfaces with lots of options. I have to assume this is because a search interface often has one (or a small number) of inputs (therefore is easy) while an interface dealing with categorization on multiple facets, tags, etc. has lots of complexity (therefore being hard).

Simplicity is hard to charge for because it looks easy. When something looks easy, we don't value it highly. Basically, we understand the work that went into cludgy, complex interfaces because we see it. We* don't understand the complexity of something simple like Google.

*The "we" is meant to be the public, not really people on news.yc.


It's easy to make a big chart with lots of features and checkboxes. "Look, we have more than the competition!".


I think that, in part, it is related to the consumer's natural preference to keep his options open. A big part of making something simple is to decide things for the user. At first glance, the user is likely to prefer the item with all the bells and whistles, even if he never rings those bells or blows those whistles.

I think it takes a lot of effort and courage from the designer to decide some - and hopefully the right - things for the user knowing that the risk is to provide a product that might not meet every user's needs. The timid and lazy will push the decision and effort off on the user.


That's an excellent question, and you've already received a few good responses, but here's my view :)

The answer to your second and third questions are both "yes."

A lot of developers take pride in building complex software. Bad developers do it because they just shut up and code, and turn software that should be simple into a giant pile of fragile spaghetti code.

That leads to a high maintenance overhead, so adding features becomes a lot more labor intensive than it would be with a good piece of software... hence higher cost.


This is true in architecture (building) as well. It's far easier to pile forms together and not worry too much about how they integrate together. Well designed plans are hard to find, but very easy to enjoy when you find them. Radically harder is to integrate the entire work into a unified whole, which is how architecture moves into the world of aesthetics. In the tech world, Apple strives to make this same move - the results speak for themselves.


"How Buildings Learn" by Stewart Brand. Highly, highly recommended book. It's about buildings that can adapt because the architecture allows them to. I'd read it again but my 2 loaned out copies have not been returned.


Simplicity is really easy to charge for. Tons of people want to pay for Dropbox because it makes getting files places easy when it wasn't before.

Simple, on the other hand, is very difficult to charge for. If you can't demonstrate a substantial amount of added value, people will want it for free or won't use it at all. And if you do try to charge, competitors will come in and quickly replicate what you've got, but undercut you.


I agree with "simplicity is really easy to charge for." People will pay more for a simple path to a result that they value. This makes your demo easier to understand and actual time to adopt faster as well (fewer, easier to follow steps).


This reminds me of the classic "Form and Function" ideal

> He admits that every stable object is really a “fiction” posited by the operations of imagination and sentiment. We always “bestow on the objects a greater regularity than what is observed in our mere perceptions”

http://plato.stanford.edu/entries/hume-aesthetics/


Perfection is achieved, not when there is nothing left to add, but when there is nothing left to remove. —Antoine de Saint-Exupery


I think for most applications this isn't accurate. It is true that simplicity is hard to achieve, but if you can deliver a compelling result without a lot of setup or initialization (e.g. three month professional services engagement) and without large changes in customer behaviour, you can capture much more of the value you are creating for your customer. It's when they have to put their best people on it for weeks to months to make it work (which they include in the calculation of the total cost of acquisition and ownership) that you are imposing additional costs that are subtracted from the value you create.


I find this almost profound. Zen-like, even.

Google has been a comfort to me because the gap between simple interface and complex back-end is so incredibly huge.

Their success reminds me every day that hard is not the same as impossible when shooting for simplicity. And, when you achieve this (Google-like) level of elegance and simplicity it can be orders of magnitude better (than a complex solution).


Sigh. Obviously, if you're working on a website that is just ludicrously simple, you want to pretend that simplicity is difficult. Get behind the search algorithms at google or the scheduler in Windows NT and tell us about how "hard to build" simplicity is.


That's the point. It's far easier to simply tack on more code to special case something than it is to come up with a simple solution that will gracefully handle all input.

To take your example of the Windows scheduler, I would expect that the reason that they made it special-case the foreground app instead of coming up with a more generic, algorithm with better interactive performance was because it would have required more hard thinking. (Of course, I can't say this for sure without seeing their code)

This is also the same reason that a beginner's code will be so convoluted. They try to handle everything through adding more complexity in special cases, instead of stopping and thinking about how to orthogonalize the code, making a simpler algorithm.

The same argument applies to UIs -- its far easier to add an option than to make a tool more generically useful. It would be far easier for google to add textfields to their UI for specifying the sort of searches you want to do more clearly than it would be for them to improve their pagerank algorithms.

Things need to be as simple as possible, but no simpler, and simplicity is usually far harder to achieve than complexity for a given problem.


Pretty hard, right? Isn't that his point?


Three people have upmodded you, which means that there are at least three people here incapable of reading and processing very simple sentences:

Complexity is easy to build

That is what I am refering to. The search engine behind google and the scheduler in NT are COMPLEX, and to suggest that they are EASY TO BUILD for that reason is a suggestion of almost blinding stupidity.


He's saying simplicity FOR THE USER is tough to build. I'm sure even more so when they are backed by complex logic that make them magic for the user.

Maybe you should work on your own reading comprehension skills before you go insulting other people's.


It still doesn't make sense. To extend my example, the interface into all search engines, google or otherwise, is naturally simple. The more complicated interfaces, like that of clusty.com or a9.com, are surely not easier to create.


Sure they are! Complicated interfaces make it easy to:

1 - avoid forcing yourself to really prioritize your feature set, something that's really hard to do and requires really understanding your users.

2 - push a bunch of effort from you to the user.

For example, you cited A9.com. If I do a search on A9.com, the search results window is split (by default) into two parts: one that lists web search results and one that lists book search results. At least by default, it appears that both sections are always there.

If I do a search on Google, than Google will usually only display web search results, but if it senses I'm searching for something about a book (example: do a search for "Charles Dickens"), you'll sometimes see some book results up at the top.

Google's method of only showing you book results when it suspects you are looking for something having to do with books is both much less complex for the user and much more difficult to build.


Looks like sometimes that 140 character limit is a problem.


I've seen a funny result of the 140 limit + the stack of comments. People will leave three part tweets, often numbered, but will need to do number 3 first.

One thing people love about twitter is the ability to push updates to everyone. Everyone wouldn't tolerate it for long messages, but the desire is clearly there on behalf of the senders.


What's funny is that good is expressed in infinitely diverse ways, while evil is pretty much expressed in a very narrow range. (Something of an obverse to Tolstoy's observation.)


Is it ironic that I got the fail whale when I went there?


I don't think it's quite that binary in reality.


Reality rarely fits into 140 characters.


That's often true, but the ability to express an idea succinctly can also be a sign that the author has thought through the idea and his words very carefully.

("I would have written a shorter letter, but I did not have the time." Blaise Pascal.)


Which I think this tweet did. It captured a whole lot of wisdom and experience into a small package, but it didn't match every situation. Rules of thumb like this one are usually like this.


Simplicity is easy to build.

Simplicity without drawbacks is hard to build (to verify only in the long term).

There has been found a term for that phenomenon: its spelling seems to be: wisdom.

(They even wrote a book about it, the most printed -- yet less read book ever: yes, exactly that one).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: