http://www.codinghorror.com/blog/archives/000248.html In his 27 March 2005 "Coding Horrors" column, Jeff Atwood points out that "Users really don't care about your application-- '''they have specific goals and will do only the absolute minimum necessary to achieve those goals'''." (emphasis his) In other words, it is more important to give the user an immediate solution to most problems than to provide a complete set of options that is too complicated for general use. As an interface design principle, this can be seen as complementary to the programming principle of YouArentGonnaNeedIt - only include those design elements which are ''known'' to be necessary, without speculating about 'expected needs' - if a there ''is'' a need for it, the users will let you know, one way or another. The usual argument against this approach is that different users often have very different needs, and that a program has to be able to handle many different exceptional cases. The response to this is that the program should provide an easily selected set of defaults which the user can choose from, and - for those who absolutely ''need'' an custom interface - an easily reached option menu. The most important part is that user should never be ''required'' to configure the tool in order to handle a common case, or if they are, they should only need to do so ''once''. The fewer roadblocks you put between the user and the goal, the better.