Build Your Career: Agile Careers 


Agile Careers

"Cope" Coplien

Jim ("Cope") Coplien is an old C++ shark who now integrates the technological and human sides of the software business as an author, coach, trainer, and executive consultant. He is one of the founders of the software pattern discipline, and his organizational patterns work is one of the foundations of both Scrum and XP. He currently works for Gertrud & Cope, is based in Denmark, and is a partner in the Scrum Foundation. He has authored or co-authored many books, including the Wiley title, Lean Architecture for Agile Software Development. When he grows up, he wants to be an anthropologist.

Log in to register a comment. We encourage lively debate, but reserve the right to moderate comments. Contact buildyourcareer@computer.org for questions.

Subscribe here.

Blogs (Blog) Blogs (Blog)
« Back

Ars Gratia Artis

I love to engage in these occasional debates about whether computer science is really a science or not, or whether software engineering has anything to do with engineering. (My personal opinions on those matters are 80 percent “no” and 90 percent “no” respectively, but that’s another topic.) Some claim that programming is an art, and most pundits say that engineering has at least some artistic component. I’d go even further and insist that to pursue an engineering career apart from any infusion of the arts is to deny a large part not only of who you are as an engineer, but as a human being as well.

Engineers often live up to their stereotype of being narrow and deep. That stereotype probably worked well in the days of complicated problems: building bridges, designing circuits, and other pursuits that required man’s ingenuity over nature. Today’s engineer is being asked more and more to face complex problems: urban planning, aerospace and aeronautics, ecological engineering, and many other fields at the core of modern economies. Where human beings are an integral part of the system, problems grow beyond being just complicated to being complex.

Steve McConnell pointedly notes that “Engineering without art can be ugly, but art without engineering can be impossible.” (IEEE Software 18(2), March / April 2001, p. 9) He ranks creative design foremost in our mission as engineers.

I remember when my high school teacher, the late Ed Anderson, first surprised us with his exhortation that power engineers should be as attentive to the design of graceful electrical transmission towers as to the associated problem of transmitting energy efficiently — or, better yet, to further technology to keep transmission lines out of sight. That was at the end of the ecologically conscious 1960s. The market of the past 50 years has largely proven him prescient.

In today's market, the interesting problems are rarely those deep technical challenges that we are proud to solve on a college exam, but are rather system problems. Whether you are an engineer, a researcher, or a manager, your endeavors eventually touch people, and people always add complexity to a system. Formal models and tools exist to help manage complexity, but mastery of complex systems is much less related to technology than engineers armed themselves with two generations ago.

You can’t study everything, but conquering complexity requires first a human outlook, then a social perspective, and finally a grounding in the arts. A good liberal arts education can raise your awareness about the human side of the world and about what matters to people. A grounding in user experience reveals why the design of a computer interface (or any machine interface) is important and why it is hard. Psychology has everything to do with good computer system design. Literature and history can offer you cultural perspectives that make it easier to work into a shrinking world market. Architecture can help you articulate the complexity of design.

It’s not easy. While Alexander’s work in architecture paved the way for advances in the expression of software design, the foundations of his pattern theory were not easily absorbed by engineering minds. Patterns have become a blurry shadow of what they might have been if engineers had more been able to remove themselves from their engineering mindset and take an artist's mantle.

In short, get a good liberal education, whether you're in college or 80 years old. Find your niche in the arts and throw your heart into it. If more than 50 percent of your college courses or hobbies are nerd stuff, you're probably not an engineer, but just a technician.

Comments
Trackback URL:

Great job, Mr. Coplien. I think you're right about engineers often living up to the stereotype that we're narrow and deep, but that should be taken in context: most PEOPLE are narrow and shallow. Engineers are notoriously bad documenters; most PEOPLE are, too. I love your points about the interplay between arts and engineering -- dead on. I think you're going a little too far in the end, however...I've worked with the best engineers on this planet, and every one of them has an engineering educational background, not a liberal arts one. There's just too much to know to expect anyone to only start their engineering education in grad school, and if you do that, you miss what I call "boot camp", the intensive brainwashing you get in sophomore year that teaches you how to think like all the other engineers do. At the end of that, you have a worldview that lets you directly communicate to others who have it too. If you don't have it, you'll be translating to or from that worldview, because engineering is a team sport.

Posted on 1/17/11 5:34 PM.

Excellent post, Cope -- although we might disagree on the extent to which software design is engineering.

Art in engineering has to be qualified, however, lest it be reduced to art for art's sake -- something produced primarily for the benefit of the "artist" (a problem with much "modern" art and modern software). The engineering component in the art of engineering is that the artistic has to have a utilitarian aspect (which, to me, has a strongly humanist connotation). As Kelly Johnson, the legendary Lockheed Skunk Works aircraft designer put it, the better something fits its function the more elegant and more esthetically pleasing it tends to be. These two are strongly correlated and it is this blending of utility and beauty that defines the art in engineering. (Johnson designed some of the most advanced and, at the same time, most beautiful planes ever, such as the XR-71 and the Lockheed Constellation.)

In my experience, I've noticed that people whose artistic engineering I admired were, invariably, people who took inordinate pride in their work. It seems to be a prerequisite.

Posted on 1/17/11 5:52 PM.

Interesting article and interesting perspective. My perspective is a little different, though.

From my point of view, you are confusing art with ingenuity (although you can create poor looking inventions, but I just think that is an incomplete job). I think a talented engineer applies good science to the design in a complete way that matches the requirement, resulting in a design that "looks pleasing" because it meets the requirement in the eye of the beholder in every way.

I doubt that learning to paint a landscape that sells well would help you there, but learning to understand what people find pleasing in a product certainly does. I have noted that, unlike when I did my Engineering degree 28 or so years ago, engineers these days (at least those doing their Masters) are taught a fair bit of good product design. Is that art? I think it is merely a methodology that a talented engineer can apply ingenuity to in order to get a good design.

I also think we might be inclined to label the process that we go through as art just because we do not understand the thought processes that we go through to think it up. But the documented engineering design at the end is still a piece of engineering (in the scientific sense). After all, when Albert Einstein came up with his theories of relativity, the thinking (and even the scientific paper) was elegant, you might say very artistic. But it was well constructed and well thought out science.

I think Branislav Selic's observation about those that take pride in their work is quite to the point. Those people give their work much thought - the ingenuity naturally happens as a consequence.

Posted on 1/18/11 1:23 AM in reply to Branislav Selic.

Very true. I often think that the way some people produce software is like trying to build a bridge by dumping 100 tons of steel on the river bank and just starting.
I also find that a good model, be it UML, BPMN or whatever, is also elegant.

Posted on 1/18/11 11:50 PM.

I love this quote from Gustave Eiffel, on Beauty & Engineering. I extracted the quote not from the translation of Eiffel's answer to his detractors, but from the 1st page of a book on Eiffel language programming, by Bertrand Meyer.

"Must it be assumed that because we are engineers, beauty is not our concern, and that while we make our constructions robust and durable we do not also strive to make them elegant?

Is it not true that the genuine conditions of strength always comply with the secret conditions of harmony?

The first principle of architectural esthetics is that the essential lines of a monument must be determined by a perfect adaptation to its purpose."

Gustave Eiffel, 1887

From his response in the newspaper Le Temps to a petition by members of the literary and artistic Establishment protesting his project of elevating a tower of iron in Paris.

Posted on 1/19/11 11:25 AM.

Finally someone is putting back into Engineering one of its fundamental aspects, that has been for so long time neglected... in favour of brute "delivery" necessities (read quantity instead of quality)!

I'm actually even more audacious, in some respect. I think that Art is not just accessory to Engineering; indeed, it looks to me as a primeval force that should inform and steer the conception and construction of any "more-than-good"... "artefact" (there's sometimes a kind of hidden secret in the words we use.)
Thinking artistically while creating something drives the engineer towards smoothness and elegance; it results, more often than one might believe, in simpler and better performing solutions -- holistically speaking, i.e., all costs (maintenance included!) factored in.

After all, the quality of being an artist, coupled with the ability of producing masterpieces of technology, is exactly what distinguishes a genius from an ordinary engineer -- think of Leonardo Da Vinci, to cite one.
Not all of us engineers might be or become a genius, but why depriving ourselves of our, I believe, innate and genuine push towards beauty and, ultimately, perfection?

Kudos for Jim's last funny "anti-nerd" sentence -- with all due respect to those who really feel nerd; I don't.

^m'e

Posted on 1/19/11 2:30 PM in reply to Stephen PERIN.

Advertisement
     
 

NEWSLETTER

Sign up for the Build Your Career newsletter to receive the latest career news and job listings.

 

 

 

View All Newsletters | Privacy Policy

 

 

Marketing Automation Platform Marketing Automation Tool