Waterfall Development: How It Works
Let’s talk about one of the most popular software development methodologies. It is called Waterfall and it is widely used by programmers all over the world. If you are a software developer, you probably know the answer to the question: “What is Waterfall development?” This answer may seem simple to you. However, Waterfall methodology is a very complex issue. In this article we will look at it in greater detail.
We should start our talk from the definition of Waterfall, because it is impossible to understand this software development methodology without knowing it.
As we have already mentioned, Waterfall is a popular software development methodology. Some people even consider it the most popular. Waterfall is often called the traditional methodology of software development. That is because of the fact that it originated with the software development itself. In the 1950s a typical model of hardware development was applied to software development. That was the beginning of Waterfall era.
The methodology is based on three principles: strict project documentation, low degree of customer involvement, and sequential structure. Let’s look at these principles in greater detail.
Waterfall teams do not involve the customer into the process of software development. Usually, they contact the client only two times during a typical project. The first meeting is conducted before the project begins. Its main goal is to define the customer’s vision of the final product and to document it. The second meeting is conducted after the software product is ready to delivery. The customer should estimate it. This principle of Waterfall methodology may lead to some problems. The biggest of them is that the customer does not see the intermediate product. Hence, he cannot change anything in it. Waterfall projects usually last for a long time. The customer can change his requirements during the project and its final product will not meet them.
Strong documentation is the next principle of Waterfall development model. It is connected to the principle of low customer involvement. Waterfall teams do not contact the customer during the period of project realization, so they have to document all his requirements. The wishes of the customer are written down during the meeting that is usually conducted before the project realization begins. The developers should be provided with the fullest information on the functionality of the future product. Later they should subdivide the customer’s demands into tasks and begin to work on them. This principle of work also has a great disadvantage. The documents created before the project begins may reflect only a part of information on the future product. The developers have to invent the rest of its functionality by themselves. Of course, they are professionals. However, there is no guarantee that the customer will like this functionality.
The principle of sequential project realization is probably the main principle of Waterfall development methodology that is based on the typical concept of manufacturing. Each Waterfall software development project has a number of sequential stages. Usually they have 5 stages; however, in some cases their number could reach 7. Each stage is performed one after another. The order cannot be changed. The software product gains new features after it passes a certain stage of the project. The biggest disadvantage of this approach is the inability to return to the previous stages of project realization when they are finished to fix something in them. Many Waterfall teams have to run their projects from the very beginning because of this disadvantage.