In the 1940's and 1950's the Waterfall Model for software development was defined. In the 1980's as computer technology progressed where compilation and deployment was cheap so then the Tornado Model came into vogue.  

SDLC Fads:

Extreme Programming and Agile Development are two industry buzzwords for the Software Development Life Cycle and are both packed with great ideas. The ideas must be honed to your development process but follow the time-tested truths that small jobs are easier than large jobs, end user input is paramount, nothing is perfect the first time, everything can be improved, and work must proceed in a defined and orderly fashion. For instance, the lengthy deployment cycles with WebLogic and WebSphere in large businesses contradict the idea of rapid iterations. While prototyping greatly fosters requirements gathering and answers outstanding technology questions; the chosen SDLC process must consider the reality of how much the end users can be involved as well as the tendencies of business users to ignore "drafts" or to assume a prototype is a finished product. The rapid prototyping underpinning eXtreme Programming and Agile Development must be balanced with real design and engineering. Other approaches for determining the end user needs may be necessary such as sitting with end users and recording their business processes or analyzing business processes and determining candidates for automation and improvements.

SDLC Facts:

The best software development process starts with defining what will be built. This means defining the present and future Business Use Cases as well as selecting the budget and technologies. More organizations need to invest real money in the analysis phase of software projects and in a true Cost/Benefit Analysis.

The reality is almost every phase of software development depends upon the previous phase. Another reality is small releases are better if you do not well understand the complete software solution to be designed and/or if the corporation has immediate need for incremental improvements. A typical software development lifecycle such as the one below should be modified to meet the particular needs of your organization.



For more information refer to our Software Methodology page.
And to David Hallowell's article concerning six sigma versus Agile development.