Software as A Human Activity Between Art and Science
In preparation for my new role at VMW last year, I started to brush up on my application and development skills: I played with some little toy programs in Java and Scala and engaged with some design artifacts (yes, those amazing UML colored diagrams to reasons over problems!). I took time to write a few notes down along the way and left a few points to ponder.
?With some spare hours in recent weeks, I have dug up those shaky notes and tried to mold them into a more consumable piece of information. My intention is not to delve into technicalities or technological debates. I am simply walking in the shoes of thousands of customers and organizations I have come across in my career, inviting to look beneath the surface of our pop IT culture (to paraphrase Alan Kay) and aiming to give a more nuanced view on what building software is about. The good news is that I am not inventing much or speculating over – I am going to be much more descriptive than normative so to speak. In a way I am like a reporter from the front lines. Needless to say, my own ideas and suggestions will either be obvious from the context or be clearly called out.?
Given the variety of topics I recollected, I thought to boil all of them down to the following.
?
1.?????? Software As A Human Activity Between Art and Science
2.?????? The Nature of Software
3.?????? Orders of Ignorance and Complexity
4.?????? Four-dimensional Space: Design, Construct, Runtime, Artifact
5.?????? Software Design – Who Killed It?
6.?????? Disenchanted by Modern Software? ?
7.?????? Is AI Eating the World?
?
A note for the hard cores out there: the software industry's evolution hasn't been a linear ascent – the latest is not necessarily the greatest.
Let’s now turn to the first one.
领英推荐
I will closely address the arguments about the nature of software in the next post. I now want to simply illustrate a particular angle from where software engineering manifests a peculiar “behavior” when compared to development of modern science and the arts. It is often said (but it is controversial in my opinion) that software has a dual nature: scientific and artistic. On that assumption, let’s see how it compares to arts and science. The comparison is mainly hystorical and reflects the internal and external general dynamics observable by virtually everyone.
Science vs. Arts
There is a striking contrast between the development of modern science and the arts. No one would say of a work of literature or music that it was better than an earlier work just because it was later!
A later masterpiece of say Luciano Berio is not, because of its modernity, better than Beethoven’s Violin Concerto. There just is no scale on which one could judge such things, once a certain level of expressive adequacy has been reached. It seems like in arts the past experience is continuously alive because the aim is not to demonstrate a particular truth, but to enrich our perception of the truth (or beauty). There is also another key element: in arts like music, literature, etc…as T.S. Eliot once remarked, more it’s known than our predecessors because what we know is their work.
On the other hand, the growth in science has a different trajectory. Here we are able to specify a clear aim that is our incremental understanding of the world. Thus, Copernicus’s heliocentric picture of the universe was better than Aristotle’s geocentric picture, and Einstein provided a better picture of the Newtonian gravity, etc. It’s like science can be likened to a vast graveyard of outdated theories superseded by superior ones that will at some point be in turn replaced (Note: I am adopting a Popperian-like philosophy of science). You got the drill.
Where does Software stand?
Under the umbrella term ‘Software’ I include: software engineering, programming, methodologies, user experience, ?management, procurement. And I am describing what I see in the main, and a general trend. With that in mind, let’s see where Software stands in contrast with science and arts.
In a nutshell, Software is a very peculiar human activity that is modulated by different forces and polarities, which are hard to reduce to one single linear driver. The mix of fads, unfettered credos, the spade of tools and apps delivered every microsecond often hide the more fundamental forces that animate the industry:
The arts and science dichotomy proves to be very inadequate to make sense of this articulated human activity. I will dedicate the next post to deconstruct it.