Unless you're eating at Benihana, chances are you don't go to a restaurant for the waiter. If the waiter has done his job, you may not remember him at all. This happens with excellent software too. Computer users describe a state called 'flow,' in which they ride the crest of a wave for hours at a time, concentrating only on their writing, graphic design, musical score, or financial data. I strive to imbue my own interface designs with these three qualities, and you may want to look for them in your own software.
Commodity means that the software tool is fit to the tasks they help accomplish.
A data specification in the form of a entity relationship diagram is not enough for a commodious design. It is also necessary to produce a task specification, in at least as much detail as the data spec. Firmness refers to both the strength of the design 'under the hood' and its stability and coherence as viewed by the user. Strange flashes and jerky screen redrawing may not affect the relational design of a database, but these anomalies undercut the user's faith in the software. Massive skyscrapers supported by pencil-thin steel posts may be structurally sound, but if they fail to communicate firmness to people, they will not feel comfortable in the space.