Navigation

What has Picasso's Guernica to do with Software Engineering?

BY MARKUS SPRUNCK

Defining the term 'inner-beauty of source code' is a difficult task. You may know it when you see it, but to define a clear criterion is far more complex than it seems. So far, my favorite criterion was that simplicity in design and implementation would be the key factor for inner-beauty. Today I learned a new perspective of this topic and I'd like to share it with you.

Most of these criteria are in fact quality attributes. Just compare this randomly collected list with Wikipedia's definitions of Software Quality. For me this list is not really satisfying. Although all of these attributes may be fulfilled by the source code of a software - there is no guarantee that the code has inner-beauty. These quality criteria are necessary, but are not sufficient.

Picasso's Minimalist Drawings

Many years ago, I visited an exhibition Munich and saw - for the first time in my life - the minimalist drawings of Pablo Picasso. The most famous ones are the dove drawings - a symbol for peace (see also The Dove of Peace by Picasso or The Owl by Picasso). Picasso used just a few lines in order to capture the character of an animal in a perfect way.

For me this is still pure beauty. I used this analogy to explain the inner-beauty of software. These minimalistic drawings compared to the sometimes extremely complex Cubism by Picasso are easy to see. But, this comparison was fundamentally wrong.

Today I wanted to write something about inner-beauty of source code and googled some pictures to illustrate the article. When I saw Picasso's Guernica the painting, I started to realize this mistake.

Picasso's Guernica

This painting is neither nice nor it creates positive emotions - it is a beautiful piece of art. Wikipedia says "Guernica shows the tragedies of war and the suffering it inflicts upon individuals, particularly innocent civilians." [1]

What has all this to do with inner-beauty of source code?

We should not judge about beauty of source code just with generic quality attributes and/or results of static code analysis. Quality criteria are necessary, but are not sufficient. The perception of beauty is something very individual and everybody may have his/her personal criteria. Its worth to strive for mastery, even if we will never archive this high goal.