Wednesday, September 22, 2004

Software Development - Engineering or Art

The software community has intrinsic desire to compare it with the other engineering discipline ( By assuming the software development as an engineering discipline) I have come across a comparative statement like this -If civil engineers were building the bridge as the way software engineers are developing the software, then half of the bridge would have collapsed by now.

As per last Standish Group Report only 16% of the IT projects are completed on time within budget. The software development process is quite a lot chaotic in nature today.Are we really doing very bad at software development? Are software engineers not as competent as the engineers in the other streams?Not really - According to me, it is not perfectly justifiable to apply engineering principles to software development.Let us consider typical engineering discipline and software development. In a typical engineering discipline the same product is manufactured number of times using the same process ie if the product is a table, the same table is manufactured in a similar way for many times which is not the case with the software development. If we want to make the copy of the an existing software, we can have exact copy very easily without allowing any error in it but most of the time we are developing something completely new or modifying something that we havent done before. And this is significant deviation from the typical engineering discipline.And thats why we dont have commonly known engineering characterisitcs for our discipline like standard unit of measurement, conversion ratio among various units of measurement, precise estimation methodology etc.Software development today is somewhere between the art and engineering and hence applying only engineering principles of software development leads to inappropriate conclusion and misinterpreatation of the situation. Though the software development process is definately proceeding towards engineering discipline. But even in future there will be definitely some elements of art is going to remain in the software development process.

The need for considering the software development process as engineering discipline is derived from the business requirement of the software end user. The market always wants the software to be developed on time within budget and the software development community will be really happy if they can satisfy this market need. But the fact is that the software process itself is not a truly engineering process.

We need to understand this distinctive feature of software development so that we can better appreciate and probably better manage the software process.

0 Comments:

Post a Comment

<< Home