Well, my car arrived last Friday and in between the fun of running it in I've taken the time to take a couple of photos...
A blog about my life, thoughts and work. This blog will consist of programming, philosophy, politics, poetry and anything else that I want to talk about.
July 31, 2007
July 11, 2007
Is Writing Software an Engineering Discipline?
The answer is a very and extremely definite - no.
There have been many learned and wise discussions on this topic. Some people believing that it is an art and other people people believing that it is engineering. I vociferously straddle the fence and state clearly that we are all artisans. We, like the medieval cathedral builders, partake equally of art and science to build our towering edifices.
The simple fact is that for the majority of projects we still can't properly predict the time and effort required to complete them. We are not methodical enough and have yet to build up the corpus of knowledge and expertise to bring true science to our discipline. We are at the most creative phase, where new problems and new solutions are being devised all the time. We are slowly going the engineering path, using patterns and other tools to start to define best practices, but we are not there yet.
There is one major thing that I believe that people working in software can learn from engineers: The fact that all true engineering is a methodical approach to compromise.
Too many people fail to understand and manage the fact that every piece of software is a balance between competing technical, business and personal concerns. We are still artisans because personal opinion still is the best tool in determining the compromise that is reached and so many of the so called 'methodologies' are nothing more than snake oil.
There have been many learned and wise discussions on this topic. Some people believing that it is an art and other people people believing that it is engineering. I vociferously straddle the fence and state clearly that we are all artisans. We, like the medieval cathedral builders, partake equally of art and science to build our towering edifices.
The simple fact is that for the majority of projects we still can't properly predict the time and effort required to complete them. We are not methodical enough and have yet to build up the corpus of knowledge and expertise to bring true science to our discipline. We are at the most creative phase, where new problems and new solutions are being devised all the time. We are slowly going the engineering path, using patterns and other tools to start to define best practices, but we are not there yet.
There is one major thing that I believe that people working in software can learn from engineers: The fact that all true engineering is a methodical approach to compromise.
Too many people fail to understand and manage the fact that every piece of software is a balance between competing technical, business and personal concerns. We are still artisans because personal opinion still is the best tool in determining the compromise that is reached and so many of the so called 'methodologies' are nothing more than snake oil.
Subscribe to:
Posts (Atom)