Coding Group
Nick Atkinson
"The majority of my projects are successfull..."

Speaking about different styles of Software System development, we can't but tell about the very classics of Software System lifecycle.

'Waterfall' Was The First Described Model Of Software System Development

Originally, the term 'waterfall' was proposed by Winstone Royce in 1970 in his well-known article "Managing the Development of Large Software Systems". And before early 80s it was almost the only widespread model of Software System development. Ironically, the author described this model as 'the worst', 'risky and inviting failure' variant and proposed to develop it into iterative model of Software System development. His criticism was ignored by most of his readers and the term, that was originally referred to iterative approach (see spiral model), was assigned to this initial, unsuitable model.

But, it is not surprising, if we will imagine that the project lifecycle will be provided as a real waterfall: once, falling from the cliff the water can't be stopped. Same way the 'waterfall' work frame: once the project has started it can be never stopped or reversed.

I can say with assurance, that it is the most strict and rigid way of development life cycle model, that is not devoid of some advantages. The main advantage is an opportunity to provide thorough managerial control and division of the task between different departments and accent to validation Verification And Validation, that is provided on each stage.

The project has its own structure, that moves strictly through stages of lifecycle without any skipping or covering. This method allows to provide fixed strict deadlines to any phase, and to a certain degree it guarantees (at least theoretically) that he product will be delivered in time. Also, it provides so detailed and structured plan of all actions and generates a lot of documents, that even a Coding Group of 'weak' and low qualified programmers can afford Software Implementing and the Coding Group can be changed without lost of information about Software Implementing.

So, all IT Projects, that are developed in 'waterfall' development model are going through such phases:

  • Concept
  • Requirements
  • Architectural design
  • Detailed design
  • Coding and development
  • Implementation
First phase is for evaluation of main goals of future IT Project, all limitations and desired features. It is followed by detailed specification development, that counts all points of previous phase.

Next phase is provided by system engineer, who determines data structure, Software System architecture, algorithmic details and interface representations. The main aim of this phase is to reveal all relations between hardware, Software System and interface and to build the presentation of whole system architecture. Sometimes phases of Architectural design and Detailed design are joined in one Design phase. This phase is one of the most crucial, because it can reveal flaws in previous stage, that being missed can lead to corruption of entire IT Project.

Coding and development phase strongly depends on Design phase. Detailed and highly structured documentation can decrease Software Implementing Coding Group efforts. Also this phase includes previous Verification And Validation to ensure the the product meets specification requirements.

System Verification And Validation and implementation is sometimes the last phase, after which the IT Project is finished and the product is delivered to the customer for Verification And Validation and accepting.

In some cases the process can have one more phase, which takes the largest amount of time, but which is not Software System development per se. Maintenance phase can be started to meet changes in customer's needs, external environment, to fix all occurred errors and improve general efficiency of Software System.

As it is seen, the system has too little opportunities for revision. So, it leaves too little chances to take in mind the 'human factor'. Any customer's concerns, changes of opinion and uncertainty about the IT Project, which is not even a product until the last phase, can bring disastrous consequences. All efforts to develop the IT Project will be wasted, regardless brilliant theoretical, 'paper' development, without any practical result.

In same way, any mistake, that was not corrected on previous stage, can destroy entire IT Project. This problem is especially actual from the view, that most customers at the very beginning have only an idea, and have no opportunity to test the IT Project before whole process is finished. And imagine, that after the delivery is provided, he notices, that he was mistaken and something he wants to work in another way. What happens then? The life cycle is built in such way, that the development without changes in phase order is simply impossible, that's why any changes will address the first phase and everything will be started from beginning.

These features of waterfall model make it suitable for very narrow purposes: it helps to develop IT Projects with extremely clear and understandable requirements, architecture and technical side, which can be developed with certain time limit for any changes. Also, some companies use classic approach as a basis that allows to standardise development of large IT Projects in conditions of complicated and sophisticated industrial structure.

The most productive fields, in which waterfall showed it's best sides was military industry and governmental IT Projects. Waterfall model was not only successful model of development, but also helped to create some standards of quality, that are used until now.

Military IT Projects are often developed with criteria, that are absent in academical or industry practice, but these standards are widely used until now in governmental and large industrial IT Projects. These standards are MIL-STD-2167A, MIL-STD 498 and IEEE-STD-016. ISO12207.

First writen online on 8/31/2007

 

Valid XHTML 1.0 Strict  Valid CSS!