Friday, 21 December 2012

Importance of Requirements in Software Engineering

3.2 Importance of Requirements
Many of the problems encountered in SW development are attributed to shortcoming in requirement gathering and documentation process. We cannot imagine start building a house without being fully satisfied after reviewing all the requirements and developing all kinds of maps and layouts but when it comes to software we really do not worry too much about paying attentions to this important phase. This problem has been studied in great detail and has been noted that 40-60% of all defects found in software projects can
be traced back to poor requirements.

Fred Brooks in his classical book on software engineering and project management
“The Mythical Man Month” emphasizes the importance of requirement engineering and writes:

“The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the  interfaces to people, to machines, and to other software systems. No other part of the work so cripples the system if done wrong. No other part is more difficult to rectify later.”
Let us try to understand this with the help of an analogy of a house. If we are at an advanced stage of building a house, adding a new room or changing the dimensions of some of the rooms is going to be very difficult and costly. On the other hand if this need is identified when the maps are being drawn, one can fix it at the cost of redrawing the map only. In the case of a software development, we experience the exact same
phenomenon - if a problem is identified and fixed at a later stage in the software development process, it will cost much more than if it was fixed at and earlier stage.

This following graph shows the relative cost of fixing problem at the various stages of software development.

Requirement Importance - Click to Enlarge
Boehm (1981) has reported that correcting an error after development costs 68 times more. Other studies suggest that it can be as high as 200 times. Since cost is directly related with the success or failure of projects, it is clear from all this discussion that having sound requirements is the most critical success factor  for any project.

In the next post we will see Role of Requirement in Software Engineering.

4 comments:

  1. CYBEXO is a well-known and best website design and web development company in Canada. We are the most reliable in website design services. We build SEO friendly website design as well as web development and also keep the website responsive.Cybexo being the best website design and web development company can help your business to create a lasting brand that resonates with your customers in Canada and all over the world. We are delivering outclass results that are empowering our clients.

    ReplyDelete
  2. Cybexo mobile app development is well known to craft the most innovative and eye-catchy mobile apps. We are a renowned mobile app development company and digital solution provider in Canada and the USA. Cybexo is capable to build native apps and hybrid apps to run across the platforms.

    ReplyDelete
  3. Online marketing services deals in many disciplines to reach your audience. Cybexo digital marketing agency has a team of digital marketing experts who deals in both marketing criteria (Local market, Global market).

    ReplyDelete