Code Is Not Art

Posted January 31st, 2008 by Claudio Perrone

I just read Brian’s post titled “The art of science (or the science of art)“, which reminded me of certain discussions I had over dinner at the workshop in South Africa, particularly with Carli Deysel, from ThoughtWorks.

On the very first evening, as we were talking about our mutual aspirations to change the world and help people in our industry (!), she posed the classic question: Is code art? Is there code that can be considered as such?

She seemed surprised to hear that I categorically didn’t think so. After all, we were just talking very passionately about our profession and the creativity and skills it requires; so why not?

I quickly learned that if you try to debate with Carli, you better have a solid point. LOL, she easily crushed my weak attempts to make my case. Luckily, Andrea Provaglio joined the conversation and supported my view. He pointed out that we can certainly find beauty in code. But aesthetic appreciation alone is not sufficient to define something as “Art”.

In hindsight, my biggest grief with defining code as art, is that code has a functional purpose. It is born to be useful; it solves problems; it creates opportunities. Code is like any “how-to” books: it has a function and a limited time-span.

poetryPoetry, on the other side, is (functionally) totally worthless; we don’t “need” it. I can’t read a poetry book to learn how to do something. Yet, some of these books are simply immortal because they force us to reflect on who we are; they deepen our understanding of our human condition; they may even make us cry unexpectedly while truly touching our souls.

In other words:

If writing software is about problem solving, then code will never be art. At best, we (the developers) create beautiful hammers.

Tags:

Celebrating cultural differences

Posted January 29th, 2008 by Claudio Perrone

The software architecture workshop in South Africa has come to an end. Spending a few days in a beautiful game resort close to Sun City, I worked closely with a tiny group of new and old friends from different parts of the world. As in previous editions, we used the open space organizational framework.

bakubungAs usual, we voiced our opinions, listened, tried ideas and shared stories, occasionally challenging but also consistently helping each other.

On the closing comments at the end of the workshop, Jimmy tried to identify the main theme that seemed to emerge from the dialogs and suggested “cultural differences”. I can’t agree more. I was particularly touched by some extreme stories of titanic struggle while working with certain teams and customers due to differences in attitude, values, ethnic group and gender.

At first, I was vividly shocked. In the past, particularly while working as a consultant, I have been deeply involved in some seriously complex projects, where hostile customers, uncooperative teams and blaming cultures seemed to preclude any chance of success from day 1. Yet, I’ve somewhat always managed to reverse the “natural” course and helped teams succeed well beyond anyone’s expectations.

But these new stories forced me to dig deeper and question my own abilities once again. I thought over and over about what gave me strength in those situations. Why didn’t I just quit? Where those new stories all that different from mine?

Maybe. But, at the risk of sounding extremely preachy, here is a thought. There are no quick-fix solutions to these problems but there is a definite path. To get all the support you need, you have to lead by example, respecting each other’s skills and talents, fully trusting everyone and expecting them to meet that trust. Show integrity and passion, be determined to do what’s right and help others to get there as well. This has nothing to do with being nice. It takes a lot more than “being nice” to develop the will, knowledge and skills to move people for the greater good. I know now, more than I ever knew, that my strengths come from the inside, from being (or, rather, trying to be) principle centered.

When I mention how profoundly “The 7 Habits of Highly Effective People” helped me throughout my personal path, I often hear “Oh, yeah, I read that book” (btw: get the cd first, it is much more effective, imho). But I think most people may not reflect on the hundreds of hours I spent listening to the audio tapes, over and over, learning, teaching to others, and fundamentally reprogramming my behavioral scripts.

I am eternally grateful to those who shared their stories at the workshop; I really wish I could help. I hope to see you again next year, at the latest.

Tags:

Crested Butte - The Prologue

Posted August 11th, 2006 by Claudio Perrone

Getting to Denver hasn’t been easy at all. The flight to Chicago has been delayed for several hours and as a result I missed my connection.
I finally managed to get to the hotel in Denver at 11:30pm local time and, although I was in a terrible state, my body just refused to fall asleep.

In the morning, I met Erik Doernenburg at the lobby and together we drove back to the airport to join Niclas Nilsson, Arjen Poutsma and Mike Roberts.
With the exception of Mike, everybody else is a survivor of the expedition to Cortina early this year so I’m sure that Jimmy Nilsson (who co-organized the event in February with Andrea Provaglio) will be proud of us.

With two cars available, we finally started our trip to Crested Butte and I took the chance to know a bit about Mike’s work, my co-pilot in this circumstance.
Given his involvement in the development of CruiseControl.NET, it was natural to talk about software configuration management systems and the possibility of using Windows Workflow in this context.

We also went to a bit of discussion on the topic of graphical languages and code generation.
Considering my background in electronics and my experience in automation where graphic languages have been successfully used for years, I’m often surprised to see how much resistance I encounter on the subject.
The future will tell if finally some form of model-driven development will reach the maturity and the widespread adoption that I believe it deserves, but it is clear that a lot of people are currently very sceptic or quite simply indifferent.

Code generation is another controversial subject as many see it as a workaround to a fundamental issue with code intensive frameworks and languages.
I’m certainly keen to explore both subjects in the next few days.

Driving to Crested Butte is quite an experience as the scenery is absolutely breathtaking.
In fact, since we reached an altitude of about 3900m, the body requires a bit of adaptation. We kept drinking a lot of water to avoid dehydration, which apparently is the main enemy in these cases but I must say that at some point I really started falling into pieces given the combination of jet leg, lack of sleep and scarcity of oxygen.
After 7 hours (yes we took it very easy) we finally reached our final destination, a fantastic house that Niclas booked for all of us a few weeks ago.

Finally, we ended the day into Bruce Eckel’s house where some of the other delegates convened for a little party. I was pleasantly surprised to see Philip Nelson again, another friend from Cortina. We had some little “geeky” conversations but quite honestly I was so tired that I doubt I made any meaningful contribution.

Tomorrow I will hopefully be able to describe what happened the following day, during the official opening of the workshop.

Tags:

Heading to Crested Butte, Colorado

Posted August 8th, 2006 by Claudio Perrone

I feel a little bit strange writing a post after such a long time. Some say that a blog is like a shark: it has to keep moving all the time to stay alive; I’m afraid the shark is long dead.

I often wonder how certain people keep up writing so often and consistently. Does everybody else have so much more time and talent than I do?

Of course not. It would be such a self limiting belief that I just refuse to consider the thought.

Some people are fast writers; clearly I don’t belong to that category, which is pretty peculiar considering that my very first job was as technical writer! (That was a long time ago, before I managed to decisively follow my heart and start earning a living in software development).

Sure, expressing my thoughts using a foreign language is slightly less immediate, but the more I think about it, the more I realize that I really find the act of writing only moderately pleasing and tremendously painful.
In fact, I find so hard to choose the right words, that in the process my entire body often saturates with anger and frustration.
I get grumpy, my beard grows twice as fast and only my cats dare to stay close to me :-).

My wife once said that she would divorce immediately if I ever dare writing a book. She was joking, but it should give some idea of what I’m capable of becoming.

So why am I writing today? Well, there are things I just have to report.

I am now flying to Colorado since I am one of the few lucky delegates of this year’s software architecture workshop in Crested Butte, a beautiful place right at the heart of the famous Rocky Mountains.
I will certainly meet some old and new friends in the next couple of days and I’m sure you will soon wish you were there as well.
Stay tuned!

Tags: