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.
Delight is the most difficult quality to evoke, but no less essential.
There's an architectural quality Christopher Alexander calls generous circulation. In some houses, children discover that it's possible to arrive at the same room through two or more paths, and that they can travel in a circle or a figure eight. They invariably delight in this. It's tough to design software that has multiple paths like this that are not simply more confusion, something like the endless identical corridors in a large hospital. Most software still applies a logical tree structure to interface, despite the fact that people think in a richly connected and integrated fashion.