Waterfall : Software Development life cycle:

Phases in waterfall methodology

 

Here we will discuss about traditional software methodology Waterfall and who will involve in each phase.

Waterfall or Sequential methodology: Here next task will start once previous task completed only. We will see here in detail, what are the advantages and disadvantages of this methodology. First we will observe what are phases involved here and how it works.

Software Development Life Cycle is a framework having defined set of activities performed in phases for developing a software application or a software product.
There are different SDLC methodologies like Waterfall, Agile, Spiral, RAD, iterative Development etc..

For now we will try to understand 2 popular SDLC methodologies Waterfall & Agile. Still so many companies are using water fall methodology. And now a day’s most of the companies are looking for Agile methodology, because in Agile less documentation will be there and easy to understand. First we will observe Waterfall methodology.

The below are called as phases in waterfall methodology

 

 

Requirements Gathering: 

This is the first phase in Software Development Life cycle.

Generally Project manager and Senior Business analyst will participate in this phase.
In this Phase, we will identify;

  • Stakeholders of the project i.,e Technical teams, testing teams, customer team and other dependant teams
  • Technology – that will be used in the project like programming language, front end, backend (which technology to use like Java or dot Net, Database)
  • Hardware requirements, software requirements
  • High level requirements
  • High level test approach
  • High level effort and cost required for the project
  •  High level schedule
  • Project approvers
  • High level assumptions
  • Identify possible risks

We will discuss these things and document it. The phase deliverable artifact  is called Project Charter or BRD (Business Requirements document).

Requirement Analysis:

In this Phase, we will start discussing in-detail on the high level requirements which we gathered in previous phase.

Business Analyst,Project Manager, Technical Team , Architect , Network Engineer and Data base team will participate in this phase.

  • We will conduct multiple meetings to understand the requirements like interview, Jad sessions and Brainstorming.
  • We will use the Activity diagrams, UML diagrams and flow charts to make the document clear.
  • Usually requirements’ gathering is done though meetings, phone calls, emails, virtual meetings.
  • Once document is prepared, it will be reviewed with project stakeholders.
  • We will freeze the requirements and take sign-off from the customer.
  • The Analyze phase deliverable artifact is called (FS/FRS,SRS,RTM)

Design:

First, based on the requirements we will identify and device the flow of data in the application.

Tech leads Architect, DB architect, Network Architect and UI designer will participate in Design phase.

  • Design phase will have HDD , LDD and ADD (High level design document , Low Level design document and Application design document).
  • We will determine how many tables are needed? How tables are connected? what is the expected load on the database? And all.
  • Followed by we will go to table level mappings, defining each field, like length of field, restriction for the field, unique ID’s and validations etc.
  • We will do requirement mapping to design. i.e to ensure all the requirements are covered in design or not.
  • We will document the design of application and review with Architects and we will take signoff on the design document.

Development and Coding

In this phase, developers will start coding the functionalities.
Developers will create Unit test cases and perform unit testing.
Tech Leads will do code review
Once build is complete, build will submitted to QA team for testing.

Testing :

Testing team will prepare  their test strategy after Requirements Analysis Phase. Based on Test Strategy and Requirements document, testing team will create Test cases.
Test cases will be prepared before test phase so that after Development and Coding phase Testing team can start executing test cases.
If there are any defects or bugs found, testing team will assign it to development team to resolve.
Developers will fix the defects and again give it to testers.
This cycle will go on till all the defects are resolved and application is bug free.
Testing team will publish Test report at the end of testing phase and they provide sign-off. Once we receive internal sign off from the QA team then we will release to client for testing.

UAT:

User Acceptance Testing is called UAT. In this phase, customer or the business user will test the application functionality.
Customer will write UAT test cases and execute the cases.
If there are any defects found, they will communicate to the Business Analyst or Project manager. They will verify whether it is genuine bug or functionality gap.If it is genuine bug then they will ask the testing team and they will assign this defect to development team to fix the bug.

Once all the UAT cases are executed, customer will provide sign-off on the UAT.

Deployment/Go Live/ Implementation :

In this phase the test application will be deployed in production environment for live usage.
After implementation, project team will do a round of high level testing to ensure everything is working perfect.
Customer will do validation in production environment and give sign-off if everything is working.

Support and Maintenance:

After implementation, warranty period starts. There will be agreement with customer and project team on the warranty period. Like 3 years, 5 years from the day of implementation.
During this period, if there are any issues, project team will take care of the issues. Usually production support team will take care of production issues, if they are unable to look into the issues then they will raise ticket and assign to Business Analyst then he will verify and assign to Development team to fix the issue.
After warranty period, maintenance will start. It means, any changes or issues found after warranty, it will taken care at additional cost and time.
 
This is how software application is built and maintained in waterfall methodology. !!

Advantages of Waterfall Methodology:

  • Simple and easy to use
  • Easy to manage – each phase has specific deliverables and a review process
  • Phases are processed and completed within scheduled time
  • Works well if requirements are very clear

Disadvantages:

  • Handling change request is difficult.
  • Feedback from the client is not there.
  • There may be chance to no coordination between the teams.
  • Team work and coordination is not there
  • Continuous improvement process

Any questions are clarifications please ask me in comments section, will respond as soon as possible.

 

SDLC Waterfall : FAQs

What is waterfall SDLC?

Waterfall Model is a sequential model that divides software development into different phases. Each phase is designed for performing specific activity during SDLC phase. It was introduced in 1970 by Winston Royce.

Is SDLC waterfall or agile?

In Agile process, requirements can change frequently. However, in a waterfall model, it is defined only once by the business analyst. In Agile Description of project, details can be altered anytime during the SDLC process which is not possible in Waterfall method

What is difference between SDLC and waterfall model?

Different phases of the SDLC model are Requirement, Design, Implementation and Testing. Waterfall model is one of the most popular SDLC models. … This model has different deliverables from each phase.In a waterfall model, each step follows in a sequential manner without overlapping or iterative steps.

Why waterfall model is best?

Advantages of waterfall model
This model is simple and easy to understand and use. It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. In this model phases are processed and completed one at a time.

Is waterfall iterative?

In traditional, full waterfall development, a team does all of the analysis for the entire project first. … This is an iterative waterfall process, not an agile process. Ideally, in an agile process, all types of work would finish at exactly the same time

Why should I use waterfall methodology?

The advantages of waterfall development are that it allows for departmentalization and control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one.

What are the disadvantages of waterfall model?

Disadvantages of waterfall model:
Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. No working software is produced until late during the life cycle. High amounts of risk and uncertainty.