What would be your very first, the most spontaneous answer to this question? And why?
Definition of “art”
Do you know what “art” means? Probably you do, everyone has an understanding for the concept of art, but if you try to formulate it, it may be hard and challenging. The definitions vary greatly, and many argue that it is actually impossible to define art and that is how it should stay. And when I say “many” here, I mean – people who know a lot about art; people who teach about art, professors, philosophers, experts.
Coding is an art… some think
The Alien has a headache. He was up all night reading about art, surfing the net and studying the history of art, but he feels even more confused now than before he started his research.
It all started yesterday during a coffee break, when he heard Mario bragging about his coding, how his creations are nothing but pure art. Is coding a form of art?
LittleMissLisa thinks that coding is not really an art. It is a relatively young discipline, that will hopefully evolve to a full blown branch of engineering. She also believes that the best practices in software engineering come from other branches of engineering.
No, it is some kind of engineering, or it is on its way there… some others think
The Alien scratched his fluffy forehead:
“You said software engineering – is this what our team does? Is all programming – software engineering?”
LittleMissLisa shook her head.
“Hm, let me put it this way – is putting three logs over a creek – construction engineering? At the very start of the construction engineering humans probably just did pile up a few logs over a creek in order to construct a bridge… but look at us today, we came a bit further in that discipline.
In some cases, yes, coding is engineering. All engineering branches encounter more or less the same issues like – complexity, external and internal disturbances, risks, contracts, legal stuff. The social and artistic aspects are also very present in all the engineering disciplines.
Also, all engineers need the same basic skills – ability to analyze, solve problems, work in teams… all of those things we encounter when working with software development. Also, creativity – it seems to me that many believe if they are creative, that makes them artists! No, art does not have a monopoly over creativity. Still, the best engineers I met were very creative.”
“So software development is engineering after all? Not an art?”
“Well, in some cases I was so inspired and amazed by the uniqueness and the elegance of the design of the solution I saw that I felt the thing I was looking at actually was a work of art!”
“Ah, I understand! That is the same as when you look at a beautiful bridge that embodies a complex harmony that someone brilliant made look elegant and simple, and you just feel it is a true piece of art!”
But sometimes, it is just crap (if Robert C. Martin can say “crap”, I can say it too)
“Yes, exactly. Unfortunately, I must say, in some other cases, the code, the whole systems I saw were just plain badly written, literally ugly, full of bugs and uh… how should one name that?!”
“Oh, I see… can I suggest some word from my extended dictionary?!”
“No, please don’t! We said you can learn those only for pure academical purposes, to make your education more complete! Well brought up humans and aliens, I guess, do not actually use those in everyday speech!”
“Okay, it was just an idea…”
A note on education
“When we already are on the subject of education – a lot of people doing programming today have very different formal and informal education, because a lot of software has been developed so rapidly and so recently, and the best ones I met actually have learned things on their own, informally. Some are engineers coming from some other areas, some are not engineers at all! Some groups and individuals may be better or worse, it is ungrateful to generalize, but, I think that the quality of the code produced is too uneven. That is why I have a hard time saying that all the coding is engineering… But it should be.”
“Do you think that education would minimize the occurrence of “DoNotDareToName kind of coding” and raise and even the quality of developed code in general?”
“I do not know… maybe. Formal education for construction engineers allows us to safely cross bridges many times… but I think that formal education, how it is done today is far from perfect.
Namingly, in certain areas the world of software develops faster than the corresponding university courses follow… that should be solved as well. Or maybe we should try to teach people “just enough” of the good basic stuff to start with, not too much of the things that will have only a historical value tomorrow.”
The conclusion (the place where one got tired of thinking)
“One more question before I go to sleep – the best software developers – would you describe them as Artists?”
“No, I would describe them as Problem Solvers.”