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: 
**Design from User Stories**, intentionally deferring database design decisions until at least the first cut at the top-level stories are created. Far, far too often, the components of various user procedures are distorted by the requirements of relational integrity and table maintenance procedures. How often have we all seen a new sales order being entered, and the user is required to navigate several forms to fill in customer details (sometimes requiring phone calls and/or fake data for unknown), mandatory fields that really aren't, credit information that really comes from another department, cancelled entries due to incomplete information discovered several pages deep, etc.

Too seldom does anyone maintain and review usability metrics like pages navigated, keystrokes entered, interrupted tasks; though the mission of the customer and the productivity of the users should be the primary determinants of software quality.
**Introspection:** the ability for the system to programmatically make predictive determinations about its own structure and behavior. (Analogous to reflection at the language level, and a key element of extensibility.)