0% found this document useful (0 votes)
32 views6 pages

Waterfall

The document provides an introduction to the waterfall software development model, including its phases of analysis, design, development, testing, implementation and maintenance. It discusses the advantages of waterfall such as well-defined deliverables and milestones, and disadvantages such as inability to accommodate changes. The document also introduces the agile methodology and compares it to waterfall, noting agile's focus on flexibility, customer involvement and handling projects in sprints.

Uploaded by

faeghehnaiollahi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views6 pages

Waterfall

The document provides an introduction to the waterfall software development model, including its phases of analysis, design, development, testing, implementation and maintenance. It discusses the advantages of waterfall such as well-defined deliverables and milestones, and disadvantages such as inability to accommodate changes. The document also introduces the agile methodology and compares it to waterfall, noting agile's focus on flexibility, customer involvement and handling projects in sprints.

Uploaded by

faeghehnaiollahi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Abstract

The following report is an introduction to the waterfall software development model, its advantages
and disadvantages. In the introduction section we will discuss main characteristics of the
methodology as well as every phase in detail. In results, the report will move on to benefits and
potential risks of using the methodology and illustrated which firms/projects are better off to use
the waterfall model. In discussion, a new methodology called agile is introduced, key points of it
brought up and then it is compared to our model. A few key differences are discussed here, and it is
concluded which method is better in which environment.

Keywords: methodology, waterfall, agile, requirements

Introduction and Methodology


Achieving maximum productivity, using minimum resources and addressing user requirements are
ultimate goals of any software development team. Regardless of industry, size and scale of the
project and type of product, software engineering needs to have a systematic approach towards
product development if it intends to be efficient and successful. In order to do that, every project
needs to follow a specific software process model that guides the whole thing from planning phase
to testing and implementing phase. Process models are a set of methodologies and principles.
They set the context in which development has to be done and they are chosen by project
managers at the beginning of every software project. There are many methodologies out there and it
is the responsibility of the project manager to choose the appropriate one suitable for the project.

The waterfall model is one of the oldest methodologies that exists (sometimes called the classic
model) and was introduced by Winston Royce in 1970. It is known for its linear fashion phase
meaning it treats the whole project as a linear process consisting of a series of sequential steps.
These steps are: analysis, design, development, testing, implementation and maintenance. The
model requires each step to be fully done before moving to the next stage.

The waterfall model starts with analysis that focuses on performing requirements analysis. Its goal
to achieve a full description of the intended software. This is done by defining both functional and
non-functional requirements. Functional requirements include requirements such as purpose,
scope, perspective, functions, user characteristics and database requirements. Nonfunctional
requirements include constraints, limitations, requirements on design and operation of the
software. Properties such as reliability, scalability, testability, performance, and quality standards
are examples of nonfunctional requirements. Then, the design takes place. The design phase is
considered as one critical stage that is useful in identifying hardware requirements, software
requirements, the design of any associated operations of a software project and the database.
Software developers need to plan for algorithm design, software architecture design, logical
diagram scheme and data structure definition and so on. Following the design is the development.
This is the conversion of process into production and where real code is written. It will ensure that
the project is built according to the project’s needs and specifications. The subsequent step is the
testing phase, where developers construct each of the components individually, and a variety of
tests will be carried out to ensure that the system is fit for purpose and free of errors. System
testing, unit testing, and integration testing are a few testing examples. Then, the project will be
implemented according to business standards and requirements. Maintenance phase comes lastly
is mostly about modifying a software solution after delivery and deployment to refine the output,
correct the errors and improve performance and quality. Maintenance is crucial because many of
the time software solutions need to be modified to adopt to changes or accommodate new user
requirements.

Analysis

Design

Development

test

Implementation

Maintenance
[1]

Results
The waterfall model still remains one of the preferred models by many software engineering teams.
Its main strengths are that is easy to understand, a simple process to manage and in this process it
is easier to keep Software Development on budget. The preference is also due to the following
benefits: deliverable and milestones are well-defined before the project starts, the project initiation
and planning are adequately constructed, and all the phases and its activities are outlined. In
addition, the Waterfall model works well on big teams and effectively helps in aligning the project
well with the company’s. Moreover, the documentation helps in the process of maintenance quiet
well. Whenever a new person enters the team it is easy for them to catch up with the project
because of the documentation. Lastly, if the procedures are followed correctly then we can
accurately estimate cost and time following waterfall model. Waterfall model might be suitable for
those projects that are service oriented and nonphysical deliverables like the code, copywriting and
designing projects.

Waterfall has downsides to itself; Since all the requirements need to be specified at the beginning
of the project, it is not possible for real life projects and customers to have the option to change
their requirements frequently. Besides that a lot of the time too much time has to be spent so that
all requirements are gathered. Requirements need to be gathered from users by the project
manager but very often users do not know what they want and it make it a hard time consuming
task to have everything ready and defined at first stage. Software is required to be flexible and
adaptive in nature because requirements are naturally subject to change. Having everything
designed at early stages takes away the flexibility from waterfall. Real projects are rarely sequential
and hence the waterfall model is not proper for large projects that don’t have a well defined plan
yet. It does not accommodate risks and uncertainties. It is difficult to measure progress at every
stage of the model and the time, cost is not determined in case of failures. Moreover, the integration
is done only at the end which again increases the risk of any failures. As the steps are interrelated
and dependent on each other a lot of time is wasted because not all project members can get
started with their work at the same time and many will need to wait until others hand in the work to
them. Coordination and being fast is very important in software projects which is not possible in
linear methods like waterfall.[2]

Discussion
Up to this point we’ve introduced the traditional waterfall model, described its phases, and talked
about advantages and disadvantages associated with using it. In this section we are going to
introduce another methodology and compare it with waterfall. Agile methodology is a modern
software development approach that is consistent with Agile Manifesto's values and principles.
These values are described as below:

1) Individuals and Interactions over Processes and Tools


2) Working Software over Comprehensive Documentation
3) Customer Collaboration over Contract Negotiation
4) Responding to Change over Following a Plan

Agile is flexible, attempts to offer the product through small cross- functional self-organizing teams
and is all about being responsive to the market and the consumer by responding fast to their
requirements. In agile small pieces of functionality are supplied over iterative phases, allowing for
customer reviews and correction. Agile methods are becoming more and more popular and can be
used in any industry where there is a flow of work and delivery of work products, such as IT or
software development. Agile methodology helps to reduce risk to make upcoming product ‘non-
relevant’ in market. They accomplish this by dividing the traditionally long wait time into shorter
cycles called sprints or iterations. Every sprint consists of planning the requirements, designing,
building, and testing phase followed by review from customers.
Agile methods do not focus on comprehensive advanced planning and exact execution of a plan.
Instead, a project team develops a solution step by step and coordinates respective interim results
with the customer in short cycles. This is usually because stakeholders of the project are only able
to specify general requirements in the initial phases and be uncertain about detailed ones.
Additionally, the steps required to achieve the objectives may be unclear in the early stages. In agile
flexibility in the case of change requests is more important than rigid adherence to the initial plan.

Talking about agile pros, one of its biggest advantages is that it allows for flexibility and resilience in
response to change by accommodating evolving requirements, priorities, and market conditions.
There is also greater focus on customer involvement throughout the development process in agile.
Regular feedbacks and reviews from users will ensure that their needs are met as we get closer to
the end of the project which leads to higher satisfaction. Also, agile reduces the risk of large-scale
project failures by handling the project into sprints. This approach can result in cost savings by
avoiding reworks and focusing on high-priority tasks in each sprint. Additionally, it focuses on
delivering a working product incrementally. This approach enables earlier releases, allowing
stakeholders to see progress and provide feedback early on in the project. High value on teamwork
and collaboration is another advantage of agile. Continuous testing will also result in better risk
management where it allows the team fix any failures early, resulting in higher product quality. On
the other hand, agile’s disadvantages include lack of predictability, dependency on customer
availability, documentation challenges, and being resource intensive[3].

Agile and waterfall are very different. We saw how in waterfall each step is separated from one
another and everything is done sequentially. In contrast, under an agile approach, requirements,
programming, and testing are often done concurrently. Customer involvement is another key
difference between the two models. There is basically a higher level of reliance on customer in agile
compared to waterfall. Another difference is that for waterfall models, test cases can be generated
from functional and non-functional requirements they are based on model requirements that were
developed in the design phase while in agile, user stories are investigated to generate test cases.
How the project moves forward is also different in the two methodologies; while waterfall is linear,
agile uses multiple iterations to approach the desired result in a test-driven manner. It is worth
noting that agile approach also defines goals or a vision for the project, but it does so at a relatively
low level of detail and with a shorter planning horizon (e.g., two to four weeks) and less
commitment[4].

With that being said, it is clear that both methodologies have their own benefits. Hence, the
decision of which one to use solely depends on the project’s scope, environment, resources, users
and etc. Some companies have specific compliance requirements that will affect the way a project
is carried out that needs to be taken into account when choosing a methodology. The nature of the
organization also plays a huge role in its preferred procedures and approaches and so does
stakeholder’s beliefs towards agile or waterfall philosophy [5]. The fact that how much user are
certain about what they want is also very impactful. The project's features, like how things change
affect which method we pick. If the project is well defined and the requirements are well explained,
a standard approach works well. The big problem with traditional method is it is tricky to change
things if users demand change. This is where agile becomes useful.

References

[1] N. Yahya and S. S. Maidin, "The Waterfall Model with Agile Scrum as the Hybrid Agile Model for
the Software Engineering Team," 2022 10th International Conference on Cyber and IT Service
Management (CITSM), Yogyakarta, Indonesia, 2022, pp. 1-5, doi:
10.1109/CITSM56380.2022.9936036. keywords: {Instruments;Data collection;Software;Scrum
(Software development);Interviews;Software engineering;Context modeling;Hybrid
agile;Scrum;Waterfall model;Software engineering team},

[2] R. Elghondakly, S. Moussa and N. Badr, "Waterfall and agile requirements-based model for
automated test cases generation," 2015 IEEE Seventh International Conference on Intelligent
Computing and Information Systems (ICICIS), Cairo, Egypt, 2015, pp. 607-612, doi:
10.1109/IntelCIS.2015.7397285. keywords: {Unified modeling language;Data
models;Software;Manuals;HTML;Measurement;Ions;Requirements engineering;Software
testing;Requirements-based testing;Test cases generation;Waterfall;Agile},

[3] A. Sinha and P. Das, "Agile Methodology Vs. Traditional Waterfall SDLC: A case study on Quality
Assurance process in Software Industry," 2021 5th International Conference on Electronics,
Materials Engineering & Nano-Technology (IEMENTech), Kolkata, India, 2021, pp. 1-4, doi:
10.1109/IEMENTech53263.2021.9614779. keywords: {Industries;Software testing;Analytical
models;Quality assurance;Companies;Software;Information technology;Software
Development;Waterfall model;Agile;Testing in Agile},
[4] Balaji, S. and Murugaiyan, M.S., 2012. Waterfall vs. V-Model vs. Agile: A comparative study on
SDLC. International Journal of Information Technology and Business Management, 2(1), pp.26-30.

[5] Serrador, P., & Pinto, J. K. (2015). Does Agile work? - A quantitative analysis of agile project
success. International Journal of Project Management, 33(5), pp. 1040-1051.

You might also like