Simplicity is hard to build...
twitter.com
twitter.com
</pedantic>
Applies to startups too. And oh look, there's a Wikipedia article on it too:
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.
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.
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.
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.
> 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”
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).
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.
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.
Maybe you should work on your own reading comprehension skills before you go insulting other people's.
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.
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.
("I would have written a shorter letter, but I did not have the time." Blaise Pascal.)
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).