Wednesday, June 17, 2009

Is Traditional Software Development Process Relevant Today?

Waterfall life cycle model, considered to be one of the traditional life cycle models that has identified different stages when building software applications. It starts off with requirements, then design, implementation, testing and lastly, maintenance. Every phases of the waterfall should be completed before moving into the next phase. An entry and exit criteria is used to assess the completeness of each phase. I would say that this approach to software development can still be applied to the current practice of building software applications.

Due to the inherent complexity of software applications, new development paradigms (rather than just life cycle models such as spiral, prototyping, etc.) have emerged to cater for changing requirements of customers in which the traditional waterfall model cannot address. One of these was the Rational Unified Process (RUP), a heavyweight process aligned to SEI's Capability Maturity Model (CMM). It consists of phases, namely; inception, elaboration, construction and transition. However, due to its nature, it was intended for large scale projects wherein software processes should be defined in development. Another is the birth of Agile Development consisting of Extreme Programming (XP), Test-Driven Development (TDD), Scrum, and many others. Agile processes are more flexible in terms of handling software processes and more focused on the Agile Manifesto as a baseline for its practice. Nowadays, agile practices are becoming widespread and more software companies are using it.

In this new era of computing, the same software life cycle processes (see IEEE/EIA 12207.0 Standards for details) were used for development. Every product needs to have pre-defined set of requirements or features. Then, these features will be realized in the design and implementation using different technologies and tools. After which, it will be subjected to software testing as a means of quality control before deploying it to customer. Software applications now are developed iteratively (rather than linearly as waterfall) to address the changing needs and demands of customers (rather than a fixed set of requirements). The main foundation is still waterfall life cycle. One thing is certain, software companies have their own way of building software for different types of software projects and Waterfall is one of them...still.

1 comment:

  1. Great Article here. :).. I remember since I was in college I have nothing to say but you're a good instructor :)..

    Musta lang da sir Jay :)..
    Please visit my sites:
    http://www.jophilsuperman.com/
    http://www.freemovielivestream.com/
    and many more sites :)

    Si john philip ni gli ah..Cge pa teach mo sa cpu sir??

    ReplyDelete