

1. Waterfall Method
The waterfall model emphasizes a logical progression of steps. Similar to the direction water flows over the edge of a cliff, distinct endpoints or goals are set for each phase of development and cannot be revisited after completion. The term was first introduced in a paper published in 1970 by Dr. Winston W. Royce
Advantages:
Simple and relatively fast
Determines the end goal early
Disadvantages:
Hard to move up the waterfall creating issues if prior stages weren’t good enough.
Can make large tasks seem daunting as it is all worked on at once
The client is rarely involved and so any issues will arise after most of the work has been done and may be costly to fix or edit.

2. The Spiral Method
The spiral model enables gradual releases and refinement of a product through each phase of the spiral as well as the ability to build prototypes at each phase. The most important feature of the model is its ability to manage unknown risks after the project has commenced; creating a prototype makes this feasible. This also allows for client review or a change of requirements.


3. Agile Methodologies
An agile software development process always starts by defining the users and documenting a vision statement on a scope of problems, opportunities, and values to be addressed. Agile methodologies encourages rapid and flexible response to change and for teams to work together with the customer to help achieve their goal. within agile methodologies the client will often embed a member into the team, however this can be costly and may not always be possible.

4. Extreme Programming
Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
Within this method paired programming can be used which focuses on high quality code first time.
Advantages:
Constant feedback
XP assists to create software faster thanks to the regular testing at the development stage.
Disadvantages:
XP is not the best option if programmers are separated geographically

5. Rapid Application Development
Rapid Application Development (RAD) is a form of agile software development methodology that prioritizes rapid prototype releases and iterations. Unlike the Waterfall method, RAD emphasizes the use of software and user feedback over strict planning and requirements recording.
Advantages:
Flexible and adaptable to changes
Due to prototyping in nature, there is a possibility of lesser defects
Disadvantages:
It can’t be used for smaller projects
Reduced scalability occurs because a RAD developed application begins as a prototype and evolves into a finished application