Sunday, May 08, 2011

You are not a Software Engineer, except when you are...

You'll have to read this post to understand where I'm going with this:

You are NOT a Software Engineer! - chrisaitchison.com

This is definitely worth a repost. It challenges the notion of the "engineering" aspect of software development. He has many good arguments. However, I must disagree with some of his reasoning for the use of gardening as a metaphor for software development. I cannot reject the notion of software engineering. I agree that most other engineering disciplines are much more regulated than software engineering, that's for sure. Perhaps that is why software bugs cost us billions of dollars every year? Other engineering disciplines are much more rigid in their processes, and rightfully so, most of the time, they need to be. As he argues, engineering a bridge surely needs to be right the first time! Many fields of software engineering can tolerate a certain level of "mistakes" or "bugs" that other engineering fields cannot.... well... can it really?

In justifying engineering with my students, I often ask them to reflect on the software that might be running aircraft, spacecraft, missiles, automobiles, or medical devices, just to name a few examples. Consider medical devices.  For example, a pacemaker is running software that was developed by a team of software engineers. I want to think that they were taking their job just as seriously as an engineering team building a bridge. In many fields of software development, bugs cost not only money, but much more importantly, bugs can cost lives. A gardener metaphor will not help this.

Perhaps we need more regulation in certain areas of software engineering?

No comments: