Software engineers are not the artistic type. For every algorithm and data structure they learn and practice, there are a hundred soft issues that do not think about. By soft issues I mean usability, aesthetics and all the general goo that makes us like something as humans.
Bloody hard to define and have one consistent answer, since each human is unique in how they view and receive something. To design beautiful software requires both engineering and aesthetic skills.
One reason why, I think, engineers find it difficult to deal with aesthetics is because we are tied to a language and world that is rational, logic-bound and where ‘to measure’ means to understand something. The part of us, to most, that feels and perceives has languished without use. But it is my belief that aesthetics can be learnt, may be we won’t turn up into Rembrandts and Michelangelos overnight but hey we could at least decide what is a decent software UI.
On of the ways to achieve this is by seeing and thinking about good UIs, not necessarily of software, to begin with. This is the same technique that budding painters follow, to mimic a masterwork, so that the nuances of light and shade and the experience of yielding such a work come through.
Or a interesting twist on the old geographical map
Or something that makes me go ‘bloody hell’!
I understand this is not like learning the alphabets of visualization or designing good interfaces. But I have believed that learning a new language does not mean we stick to the simple stuff, a little toe dipping into masterworks only stretches our conception of what is possible.
So, dream on!