, it is argued that software engineers should be interested in the beauty of their products, both as an aim, and as a measure of success.
, artist, designer, writer, socialist, described the Forth Rail Bridge as "supremely ugly", even though by his own standards
of craftsmanship and truth to materials it is a triumph. He just didn't like
Picture reproduced by kind permission of the Department of Geography, University of Edinburgh. http://www.geo.ed.ac.uk/home/
Today, it's difficult to imagine anyone who is sufficiently interested in the domain of large bridges to go and look at the thing not thinking the bridge utterly beautiful.
Read the IainBanks
novel "The Bridge" ISBN 0061053589
to get some idea of how the structure has worked its way into the internal landscapes of those who live near it.
If we could write software that had novels written about it... Microserfs ISBN 0060987049 , though it is arguably more about the programmer culture (or programmer culture as imagined by Coupland) than Windows.
So whom do we ask how beautiful our software is?
- See the QuotationOnBeautyFromPlatosPhaedrus for one answer.
, my answer is: those who have to live with it. I think this answer is better than "the users" because it suggests different classes of "users" (including those who would enhance the software later, which might include the original developers). It's an answer that considers both InternalAndExternalQuality
Another valid (but less useful) answer might be: "the users, over time". This works because a lack of internal beauty eventually causes problems externally. As someone observed in FourVariables
: "A decline in internal quality is often a leading indicator for a future decline in external quality."
Beauty has always been important in products - objects have form as well as function, even for abstract artifacts like software. It could be argued that software has become more beautiful over time both at the UI and architectural level. Buyers choose products that are more attractive with software it is more subjective but things like web based interfaces and wireless capability offer the "beauty" of accessing applications easily from remote locations as well as fancy graphics. Other adjectives that could be applied are power and simplicity. And it doesn't have to be just for huge applications even short programs can be aesthetic in the way a small Egyptian amulet can be, or an oriental fan. Someone said life should be a series of tastes, not just tasks. See also FormAndFunctionAreOne
Though beauty is secondary in engineering concerns it can never be absent - even the most austere structure will have some degree of beauty because of the physical need for balance, symmetry, optimal use of resources to solve the problem. But the aesthetics is more of a MathematicalBeauty
. It is mostly appreciated by other practitioners and may not be obvious or even possible for laypersons. For software the abstract design, implementation of code can be looked at as a thing of beauty if done well, not just how the UserInterface
looks. The solution of a master applying him/herself to a problem would be more beautiful, apt, than the efforts of a novice.
I'm wondering if WhoDefinesTheBeauty
is a different question though than HowToPrioritizeBeauty?
. Certainly given people with high aesthetics and enough time, they can create software that exhibits beauty (either by way of interface, by functional aesthetics, or by exquisite coding). Management however usually has more mundane objectives, so the issue isn't usually the definition of beauty but rather how we allocate resources to achieving beauty at the cost of something else.
Back to the matter at hand though, people (consumers) are ultimately WhoDefinesTheBeauty
, and as in art, cuisine, or any other endeavor, eventually a class of critical consumers (eh, critics? connoisseurs?) may have a greater impact upon the definition of beauty than the common man. Are there SoftwareConnoisseurs?
? And how do you spell connoisseur anyhow?
Sure, naturally there are SoftwareConnoisseurs.
defines the beauty.
- the beholder, of course!
I think the notion of software itself is beautiful - before there was software you had books, magazines, comics, posters, tv, movies which have their own aesthetics. But they were either static or something you had to view passively. Software combines the mystique of tv/movies with the attributes of the other media a user can interact with - immerse themselves in worlds created by programmers. Done well it should be as enjoyable as a comic book come alive; make work and play easier and more fun. Even CommandLine
software is more "animated" than static text when you think about all the functions/objects choreographing themselves behind the scenes it really is amazing.