Software should be graceful and beautiful, inside and out. Whether you use a piece of software for a few seconds,
or for hours
at a time, it should be a pleasant experience. It should be engaging without being distracting, so you can
focus on getting things done. It should be efficient -- so you can do things with a single mouse gesture or keystroke,
rather than digging through seven layers of menus. It should do the job it is supposed to do, without getting in your way.
On the inside, the software should be elegantly designed. The source code should be built on solid design patterns
and industry best practices. It should be concise, succinct, and easy to understand and maintain. The design should
be fully capable in the present, and designed to grow into the future.