Water fall lifecycle refers to the natural system through which the development of something that is both complex and innovative is managed. The model of waterfall is basically a chronological software process of development, in which the progress process is flowing in a steady manner downwards just like a natural waterfall, via phases of initiation, conception, designs, analysis, testing, construction and maintenance. The development model of waterfall traces its origins in the construction and manufacturing industries physical environments that are highly structured in which changes after facts are extremely prohibitively expensive, if not completely impossible. Since there was no formal development software methodologies that existed during the period of development of this model, this model that is hardware oriented was basically adapted in the development of software (Leffingwell Widrig, 2003).
Waterfall lifecycle
The waterfall lifecycle faces a lot of criticism with some suggesting that is no longer useful as it has already been overtaken by events making it to be irrelevant. However, this lifecycle is still very much essential and its relevance is very much alive. The amount of time that was spent in the cycle of software production in the early days together with the products that were developed still has the potential of bringing about greater economy achievements in later stages. In fact, it has already been established that a bug which was found in the former days such as design and specification is cheaper not only in terms of money, but also in respect to time spent and effort needed to fix it as compared to a similar bug that is found much later in the process of development. Considering an example to this end, if the design of a certain program becomes impossible in the implementation stage, it is much easier and cheaper to fix such a project at the stage of design as compared to realising several weeks later, when the components of the program are already being integrated. The waterfall lifecycle is thus still very useful and it would therefore be costly in future if it was actually done away with since it would still be needed at a later stage (Karn Cowling, 2008).
The lifecycle places a lot of weight on documentation and also on the source of the code. In less documented and designed methodologies, if the members of the team for one reason or another leaves, most of the knowledge will be lost and it will certainly be very difficult for a project that was relying on such information to be recovered. If a fully operational design document is available, the new members of the team will have a much easier time in taking over from where the other team left and thus continue with the project as it is the case with waterfall lifecycle. In the waterfall lifecycle, unlike in other cycles, continuity of the projects being designed and implemented is much easier and hence this lifecycle should be given a chance to continue (Highsmith Highsmith, 2002).
There are several people who opt for the waterfall lifecycle because of its approach which is quite simple. They also argue that it is much more disciplined as compared to other cycles and hence it should continue being used. The waterfall lifecycle offers an approach that is well structured, the model of this lifecycle progresses in a linear manner via discrete phases that are easily explainable and understandable. It also offers milestones that are easily markable in the process of development. It is probably for this fact that this model is used extensively as an initial example of a model of development in several software engineering courses and texts (Satzinger, 2008).
It is further argued that waterfall lifecycle and the up front of big design can easily be suited into projects of software that are much stable particularly the projects with requirements that are not changing, like the software of shrink wrap and in cases in which it is likely and possible that the designers will be in a position to fully forecast the problematic areas in the system and hence come up with a design for correcting the problems before the implementation process is started. This lifecycle also makes it possible for the implementers to accurately complete designs, follow the ones that are well made and ensure that system integration proceeds on smoothly (Karn Cowling, 2008).
Even though there are a few shortcomings associated with the waterfall lifecycle, it still plays a crucial role in software development and hence it would not be considered wise to do away with such a lifecycle. It gives a basis of developing more complicated models. In terms of cost, the waterfall lifecycle is much more effective as it does not consume a lot of resources as compared to other models. Furthermore, less time and effort is required for it to be developed making it quite affordable. Since it is well documented, it makes it possible for people to refer to the documents and the source codes, especially new teams making it easier for them to understand the lifecycle and hence use it productively. Due to the numerous advantages of the waterfall lifecycle, it should not be done away with and it should in fact be enhanced further.
Waterfall lifecycle
The waterfall lifecycle faces a lot of criticism with some suggesting that is no longer useful as it has already been overtaken by events making it to be irrelevant. However, this lifecycle is still very much essential and its relevance is very much alive. The amount of time that was spent in the cycle of software production in the early days together with the products that were developed still has the potential of bringing about greater economy achievements in later stages. In fact, it has already been established that a bug which was found in the former days such as design and specification is cheaper not only in terms of money, but also in respect to time spent and effort needed to fix it as compared to a similar bug that is found much later in the process of development. Considering an example to this end, if the design of a certain program becomes impossible in the implementation stage, it is much easier and cheaper to fix such a project at the stage of design as compared to realising several weeks later, when the components of the program are already being integrated. The waterfall lifecycle is thus still very useful and it would therefore be costly in future if it was actually done away with since it would still be needed at a later stage (Karn Cowling, 2008).
The lifecycle places a lot of weight on documentation and also on the source of the code. In less documented and designed methodologies, if the members of the team for one reason or another leaves, most of the knowledge will be lost and it will certainly be very difficult for a project that was relying on such information to be recovered. If a fully operational design document is available, the new members of the team will have a much easier time in taking over from where the other team left and thus continue with the project as it is the case with waterfall lifecycle. In the waterfall lifecycle, unlike in other cycles, continuity of the projects being designed and implemented is much easier and hence this lifecycle should be given a chance to continue (Highsmith Highsmith, 2002).
There are several people who opt for the waterfall lifecycle because of its approach which is quite simple. They also argue that it is much more disciplined as compared to other cycles and hence it should continue being used. The waterfall lifecycle offers an approach that is well structured, the model of this lifecycle progresses in a linear manner via discrete phases that are easily explainable and understandable. It also offers milestones that are easily markable in the process of development. It is probably for this fact that this model is used extensively as an initial example of a model of development in several software engineering courses and texts (Satzinger, 2008).
It is further argued that waterfall lifecycle and the up front of big design can easily be suited into projects of software that are much stable particularly the projects with requirements that are not changing, like the software of shrink wrap and in cases in which it is likely and possible that the designers will be in a position to fully forecast the problematic areas in the system and hence come up with a design for correcting the problems before the implementation process is started. This lifecycle also makes it possible for the implementers to accurately complete designs, follow the ones that are well made and ensure that system integration proceeds on smoothly (Karn Cowling, 2008).
Even though there are a few shortcomings associated with the waterfall lifecycle, it still plays a crucial role in software development and hence it would not be considered wise to do away with such a lifecycle. It gives a basis of developing more complicated models. In terms of cost, the waterfall lifecycle is much more effective as it does not consume a lot of resources as compared to other models. Furthermore, less time and effort is required for it to be developed making it quite affordable. Since it is well documented, it makes it possible for people to refer to the documents and the source codes, especially new teams making it easier for them to understand the lifecycle and hence use it productively. Due to the numerous advantages of the waterfall lifecycle, it should not be done away with and it should in fact be enhanced further.
No comments:
Post a Comment