s

-


 
Home > Working Abroad > Story Print this Page|  Email this page

Software development: Engineering or an art?

Is software development engineering or an art? MOHAN BABU writes that there is a creative side to computer programming—it is a well-known fact that the best (top 5 percent) programmers are about ten times better than average programmers

To those in the field of software, the debate over whether software development is engineering or an art surfaces every so often. Interestingly, this debate is not really new, it was stirred over three-and-half-decades ago by Donald Knuth, who wrote a seven-volume series titled The Art of Computer Programming. In an essay on “The Art, Science, and Engineering of Software Development,” published in IEEE Software in January/February 1998, Steve McConnell, says, “Today, software engineering is still thrown around as a buzzword more often than not. That’s unfortunate. But the fact that the term is abused does not mean it has no legitimate meaning. Software development has come a long way in 30 years. We still do not have an absolutely stable core body of knowledge, and knowledge related to specific technologies will never be very stable. But we do have a body of knowledge that is stable enough to call software engineering. That core includes practices used in requirements development, functional design, code construction, integration, project estimation, cost–benefit trade-off analysis, and quality assurance of all the rest.”

Even McConnell’s argument has an interesting dichotomy. On one hand he concedes that the term “software engineering” is still loosely thrown around, on the other, he sounds reassuring by saying that we do have a body of knowledge that is stable enough to call software engineering. Of course, at this point, I should probably indicate my favourite definition of an engineer, coined by Nevil Shute, which goes, “An engineer is someone who can do for ten shillings what any fool can do for a pound.” For those curious, twenty shillings equalled one pound.

There is definitely a creative side to computer programming, which no amount of rigour or reference to a stable body of knowledge can replace. Statistics abound, but it is a well-known fact that the best (top 5 percent or so) programmers are about ten times better than average programmers. The best programmers tend to be logical and creative and can churn out solid code more efficiently than their peers. They generally tend to bring an out-of-the-box thinking into the programming process, and they also tend to have fun in doing so.

Going back to McConnell’s essay, he says, “Once we stop asking the trick question of, “Is software development engineering?” and start asking the real question of “Should software development be engineering?” we can start answering really important questions: What is software engineering’s core body of knowledge? How should software engineers be trained? How should software engineers be certified? And, perhaps the hardest to answer—how long will it take for all this to happen?” These are perhaps harder questions to answer and even IT companies and executives don’t really have all the answers. Some of the larger software companies prefer to rely on their training and mentoring process to mould fresh recruits into their way of operating and developing software. Their argument is also based on the fact that software development is not all programming, it also entails management of the software development life-cycle and all the activities involved thereof. During the training and mentoring process, these companies hope to identify candidates more inclined towards software development, and shift other candidates towards the other aspects of life-cycle like testing, requirement gathering, client interfacing, etc. While this is not an official stance companies take, this is perhaps one way for them to identify good programmers without having to worry about whether the person is an artist or an engineer.

That perhaps goes to the crux of the issue, again articulated by McConnell who says, “Only a prophet could know how long the public will tolerate computer programmers who make doctors’ salaries without comparable training and education….” This statement sums up the mindset of hiring managers and senior executives who are starting to get more reluctant to shell out big bucks to programmers without a formal engineering background or training. While this in itself does not settle the debate over whether software development is engineering or an art, it is an indication of how organisations try to find a middle ground.

And, this is definitely not the last word on this topic.

Mohan Babu is a US based software consultant trying to find the ‘sweet spot’ where IT meets business. E-mail: mohan@garamchai.com

<Back to top>


© Copyright 2003: Indian Express Group (Mumbai, India). All rights reserved throughout the world. This entire site is compiled in
Mumbai by The Business Publications Division of the Indian Express Group of Newspapers.
Please contact our Webmaster for any queries on this site.