Question: I know that the default answer is "it depends", but I want to know the feature list you are working from in developing a good application.

I'm particularly interested in features that need to be cared about at design time because adding them late will cost us a lot.

**Please list one feature per answer so we can vote for the most important features.**

Any extra info, like your own war stories, will be appreciated.

I ask this question to enhance my application from day zero, and I think I'm not the only one with this target, so please write whatever feature YOU think should be exist in a good application.

Answer: 
**User Interface/Experience Design** Many technological innovations rely upon UI design to elevate their technical complexity to a usable product. Technology alone [usually] does not win user acceptance and subsequent marketability. 

From [IBM](http://www.ibm.com/developerworks/library/us-myth.html):

> 
> In software development, design is
>  widely misunderstood and undervalued.
>  Often no explicit user interface
>  design is done separately from the
>  code. Iterative design then becomes
>  recoding. This is a short-sighted
>  strategy because it results in
>  significantly more code being written
>  in the long run. Because design is
>  unavoidable, the real issue is whether
>  it is left implicit in the software
>  being developed, or made explicit and
>  captured separately. The useful debate
>  is about how to do design work well,
>  and how to capture it in an optimal
>  form for communicating to those who
>  implement it.
> 
> 
>
**Comments.** Implement an internal standard comment system (first, document it!) - an automated comment documentation system may be right, or just a set of standard program header comments and comment conventions. Let programmers know in advance how you expect the code to be commented. Have cross-programmer code reviews, checking readability/understandability with an eye to future modification: if you're the next person to work on this code, will it make sense to you?