5/09/2006

Software Development, an Art!

I still remember a few days during my childhood when I was at the crossroads of my life , standing at a place where I could take one of two streams of education, SCIENCE or ART. Art in my sense was the more gifted and I had a lot of admiration for the artisans. But, my parents pushed me into SCIENCE, I didn't have a big opinion myself so gave into it, but there was this one feeling within that always said, "Maybe I want Art?" . That lingering feeling haunted me till like a few days back when I visited a museum. A feeling dawned upon me that day and my perspective changed.

As I went from one magnificent masterpiece of painting, sculpture, or architecture to another, I began to feel that I was looking at something very familiar. Their structure, surroundings, presentation, just about everything reminded me of something. It dawned on me that there is a strong connection between these great accomplishments of the past and the few great software systems we have today. I'm talking about masterpieces of coding that you can't help admiring for their style, structure, and concise expression of a solution to a complex problem. We've all seen such systems; some of us may be lucky enough to have written one or more.

I'm not the first person to relate our craft to that of past masters. In his excellent book, Software Craftsmanship: The New Imperative, Pete McBreen compares developers to craftsmen of the great Medieval guilds, classifying them as either master craftsmen, journeymen, or apprentices, each with a unique role to play in creating an artifact. This analogy is a great one, as far as it goes but surely there is more to it!

Art can be of many forms - beautiful, structurally brilliant, clever, cleverly useful. Code is the same way too! I remember pieces of code that were so well-arranged/orchestrated, almost like poetry. I know pieces of codes that could do a 100 lines worth of code in 1 and I know pieces of code that are very clever (for instance Java!, can run anywhere)! My heart felt the same way when I looked at these marvels in software. A software developer is an artist !
There are many other analogies that we can see .. We have "architects" in both software and art. Both artists and software technicians require tools to work with. Both art and software start off with a blue print/ spec. Comments make things clearer in both art and science (:) :) :)) and as in a great work of art, the parts interact subtly to form an impressive whole -- in this case, an amazing portrait of effective software development.

Btw, there is one last funny thing that I observed. The reason why Indians make such good software technicians might be the rich art and cultural heritage that comes along with them !!!

1 Comments:

At 7:32 AM, Blogger Allan said...

Software Development Company providing end to end software solutions. As a software development company based out of India, Acetech offers a range of quality services that include Custom Software Development, Offshore Software Development, Open Source Development, Web Design & Development Services, Software Testing, Technical Maintenance and Support services

 

Post a Comment

<< Home