Programowanie to nie tylko wiedza -- to także sztuka. Aplikacja jest narzędziem, które powinno być przede wszystkim użyteczne i ergonomiczne. Niestety, wielu twórców oprogramowania zapomina o tym, pisząc swoje programy. Powodów jest wiele: zbyt mało czasu, źle sformułowane założenia, nieprawidłowa komunikacja między członkami zespołu projektowego czy też niestosowanie się do konwencji kodowania i testowania. Niezależnie od przyczyn, konsekwencją jest oprogramowanie, które nie spełnia swojej podstawowej funkcji, jaką jest użyteczność.