Aesthetics in software design

Designing software, like many other interesting activities, involves both science and art [Knuth74]. The activity, therefore, has objective and subjective aspects. The objective and subjective have each their due prominence. Objectivity predominates in science while in the arts predominates the cultivation of subjectivity. Cultivating subjectivity implies to investigate it, both our own and that of others involved in the activity. The subjectivity of those who come into contact with the software, whether end users, operations staff or other designers, is an important aspect that a professional software designer should investigate —as many master designers have already said and is echoed in a proverbial mantra: involves your users while designing. The relevance of such inquiry is usually evident when interpreting what is critical for success in software in a way that is broader and deeper than usual, for example usability.

The aesthetic exercise in software design may be present in all associated tasks. Since the inception of the architectural concept, the emergence of the internal structures, vital logical assertions, etc.; and, of course, the balance between shape, color and contrast in the visible interface for the end user. The pursuit of aesthetic taste is a dimension of the act of designing, is a way of interpreting the reality of software. A way that the designer invokes on demand to assist her when making design decisions. It may be called «the aesthetic field» in analogy with physical science research, where the concept of «field» serves to identify a magnitude distributed throughout space and through which remote actions occur, e.g., electrical field, gravitational field, Higgs field in elementary particle physics.

This aesthetic field could be attended by a single designer, but is very rare to find a Picasso or a van Gogh of software design. So, again, cooperation between various professionals on equal terms is required. In this case it is not a question of "I know how to do it, look and repeat it indefinitely" but rather it is an invitation to inquire, first, what is aesthetics and then to approach the fostering of the conditions for aesthetic pleasure. It is, in other words, an invitation to aesthetic reflection. Why this invitation is relevant? Because, in part, design situations have a specific context which subjective aspect is unlikely to be transferable to a different context. Hence, it is advisable to exercise dexterity to achieve aesthetic judgments in each particular design situation.

Master designers of software, such as Peter Coad, have identified this type of quality exercise, called «miroyokutakihinshitsu» in Japan —literally: «things gone right». The idea is related to the experience of using software that not only works correctly, but it carries an attractive, charming, fascinating event that produces emotional satisfaction.

Aesthetics reflects on the relationship between object and subject from the point of view of the impact that the attributes of the object have on the senses of the subject, and the effect of this impact. For example, the emotional effect caused by accomplishment or hindrance of a task.

Aesthetics is not only about the positive impacts on the sensibility of the subject —that would be too superficial or biased— but also about negative ones. A case where the aesthetic object is a personal experience, of undeniable sensitive facts, is the sudden message of Visual Studio 2012 when I'm using the editor: "Waiting for a background operation...". Message that remains for more than thirty seconds and I, as user, cannot do anything. Then that instance of Visual Studio ends and restarts another instance. Happening in which I have lost some work and time, but mainly concentration. No doubt there were explicit design decisions behind such behavior by the designers of the product. As a user, what kind of emotions occur as a result of those design decisions? What effect they have on my concentration?, as the experience is like juggling five objects simultaneously and cause all to fall abruptly to the floor. Recover from such situation involves resuming each object again, one by one. How much impact that my productivity? On the other hand, with reference to Daniel Goleman, the intensity of frustration brings such emotional force that serves me as fuel to push something in my interests: a more vehement desire to learn how to design quality software.

In brief, and as provisional conclusions, (1) aesthetic reflection in software design needs to be part of a broader self-critical reflection encompassing the act of creating software-based solutions as a whole. (2) As a corollary of such reflection, a personal return to the humanistic basics will be more than justified; for example, to a self-reeducation in aesthetics.

References

[Knuth74] Donald E. Knuth: Computer Programming as an Art. CACM, December 1974

[blog-050216] Software Pioneers in general, a software quality view in particular

[blog-070113] Do you amass nasty feelings about your designs?