You know what seperates an artist from an engineer? Let’s say Joe designs something pretty cool. Mary sees it and uses that design. In Engineering, Mary is wise. In Art, Mary is a thief.
For years, in many IT shops, and throughout the computing world, we have built a culture where it is better to write your own definition, your own design, your own snippet of code, than it is to use someone else’s. We still reward this thinking.
I work in the area of EA Frameworks. There are quite a few frameworks emerging these days, and most of them are wildly similar. The solution is right in front of us, and with some thinking, we are converging on the answer. Yet, few people have taken the time to learn any of these frameworks (except the oldest and least comprehensive, Zachmann). The number of people who have taken time to study two or more frameworks: geometrically smaller.
In Engineering, this would be foolish, but in Computer “Science” it appears to be simply acceptable for professionals to invent new definitions when existing ones will do, invent new frameworks when existing ones are ample, and invent new services when existing ones meet the stated needs.
We need a broad array of people to take the time first to LEARN what is available, before inventing new things. It is a culture of learning that is missing. We have replaced learning with invention in Computer Science. And as a result, we are a group of artists competing for space to show our artwork, instead of teams of engineers leveraging excellent ideas to build greater and taller and stronger constructions.
The lack of reuse is not a problem that we will solve by installing a SOA product or inventing a framework. Building a culture of engineering requires that we recognize and reward the people who reuse other’s ideas and work, and that we remove the obstacles to their success.
You can reuse code TODAY. If your employer paid you to, and you took the time to learn, you could do it again tomorrow.
5 thoughts on “The culture of art vs. the culture of engineering”
PingBack from http://www.artofbam.com/wordpress/?p=6393
yes this is a big problem in our profession.
Let me expand on that.
Experiences gained by hard work a generation before are easily dismissed as no more relevant a generation later (generation in this context means a decade).
The reasoning behind that is always the same. We use that cool new wizbang technology (there is no silver bullet !!), so the old problem solving approaches are no more relevant.
Only to rediscover after much trouble, fire fighting and all nighters that those approaches and solution still apply in the new technology context.
Building construction builds on foundations and rules accumulated for thousands of years. And they still grow their body of knowledge (sometimes by accident).
Software Engineering has to follow the routes paved by other disciplines (sometimes by bloodsheed) or should stop call itself Engineering at all.
And I am proud to call myself a software Engineer.
But we still have to much people in out profession without a clue. They even don’t know that they don’t know.
Nick Malik wrote blog post " The culture of art vs. the culture of engineering " that described the problem
It’s a real and important problem.
The saying goes that technology is easy to change but peoples thinking and behavior is difficult to change.
To change the culture of software development significant efforts are necessary from management, gurus/evangelists and other influential persons.
It is a great article Nick. Are we just artists or the frameworks on offer are too vast and there are too many of them? Maybe we are not specialized enough or maybe the frameworks are not easy decomposable to the block worth embedding 😉