top of page

Software methodologies

  • 20p13280
  • Nov 25, 2025
  • 7 min read

Part 1 - What is the Software development lifecycle (SDLC)?

The software development lifecycle contains the following stages:

  • Feasibility - Can the problem be solved?

  • Requirements - The things the solution needs to do.

  • Analysis and design - Working out how the solution needs to do it

  • Implementation - Creating the solution

  • Testing - Ensuring it works

  • Deployment - Setting it up in a production environment

  • Evaluation - Checking that the user is happy with the solution and it meets the requirements.


It's the process that development teams follow when creating a project for a client that allows them to easily see where they are in the process of getting the final product approved by the client and deployed. It breaks down the process into smaller, clearer stages. This also helps keep the project timeline organised and helps developers collaborate together.


Part 2 - Software Methodologies


Waterfall Method

The waterfall method is where a development team goes through each stage of the software development life cycle one by one, going: System investigation/feasibility, Analysis, Design, Build/constructing solution, Test, Installation and conversion, Review and maintenance. Due to the nature of it, if something changes in the requirements or something else within the project it means that all stages will need to be re-done. It's an extremely document focussed method and relies on lots of planning.


Using waterfall it's easy to track and see the status of projects, as they all follow the same linear structure. It's also easy for keeping control of a project and also keeping deadlines for the project. However, at the end of the entire SLDC will be the first time the client sees the software so if something major needs changing then all the steps will have to be repeated as well. This is why Waterfall is now more uncommon and isn't used as much as other methods such as Agile.



Advantages

Disadvantages

Simple structure so it's easy to track as it moves linearly in stages.

Carries risk as if the requirements change or a stage is done incorrectly then everything needs to be restarted from that stage.

Easy to manage due to the clear linear structure.

The client will never see the final product until the end of the development cycle, so it's not easy to tell if the product has fully met the client requirements.



Spiral Method

The spiral method is risk-focussed. Its core principle is reducing the risks in the project, from not meeting the end user's needs to larger issues. This methodology works in loops, where initial risks are analysed and the users requirements are checked, then a system is designed and developed. After that the product is then evaluated and the user checks if their needs are met or beginning to be met, then another "spiral" happens and the designs are defined and the development continues and this will keep going on until the client is ultimately happy with the product.


This method is also document focussed and relies on large amounts of planning and evaluation, it's good for ensuring risk is at a minimum however on larger projects this can cause them to take up much more time than needed and if the risk analysis are wrong then it messes up the whole project.



Advantages

Disadvantages

As it focuses on risk, there is greater risk reduction compared to other methods

If the risk analysis is incorrect then it can cause issues and time can be spent reducing risk incorrectly or in areas where risk isn't needed.

With less risk comes a higher chance that the client is happy with the development and the final product.

It takes a long time to evaluate the requirements and map the risks and plan on how to reduce risk.


Agile Methodologies

Agile Methodologies are a group of development methodologies (most notably Extreme Programming which is covered below). Agile is based around the concept that the requirements can change throughout the development process. Agile is similar to Rapid Application Development (covered below) where iterations of the product are created as they go along, however with agile it's not mock-ups and drafts that are created and instead fully-fledged apps that have production-ready code.


After each iteration, the clients requirements may change and then the changes are reflected within the product throughout another iteration. This is useful as it's not known if the client will change their requirements. This is also why agile is one of the most popular and well-known group of methodologies.


Advantages

Disadvantages

Allows for the client to change their requirements and for it to be easily updated throughout another iteration.

Can be hard to manage and control due to the iterations and changing client requirements.

Focussed on the product and gets quality production-grade versions to the client so they can see if their requirements are met.

With this method it can take longer than it was originally thought to (due to the changing requirements)


Extreme Programming

Extreme programming is a type of Agile. Like agile it focuses on producing versions of the product for the client. For extreme programming, the focus is on the development speed. Once the client sees the version they will then discuss it and suggest improvements and may also provide an updated set of requirements. Then a newer, better version is produced. Just like agile, each version of the product has production-grade code and could be deployed.



Advantages

Disadvantages

Same as agile but faster

Due to the speed it can cause difficulties in communication as typically many teams work on different parts that need to be integrated.


It depends a bit on documentation as all programmers need to follow the same standards and conventions to allow them to integrate their code seamlessly.



Rapid Application Development

Rapidox Application Development is where prototypes are created quickly, which typically are not production ready. This is repeated for each section of the requirements until there is a well-made refined version. The whole process is built on speed and having constant contact with the client to show these rapidly produced solutions.



Advantages

Disadvantages

If the client's requirements change throughout, it's easier to adapt to as only prototypes are being made and refined throughout.

Constant contact with the client is required throughout the entire project.

Gives the client a greater say throughout the development process

It's not suited to large projects due to the need for constant communications 


Task 3 - Questions


Explain which methodology you would recommend and why for the following scenarios:

  • Building a website for a shop

  • Building an operating system

  • Building a video game


“Waterfall is dead, long live Agile”. Discuss to what extent you agree with this statement.

[6 marks]


Building a website for a shop

I would recommend Agile, this is because a shop website contains many changing parts, may require new features, improvements such as changing the layout of the site to match the shop's current theme or offers. Also with agile many iterations can be created as the development process goes along so the shop itself can see who it's going along and ensure that it's correct functionality for their shop and matches their brand.


Building an Operating System

I would recommend Spiral, an operating system is a highly complex project of giant scale and this brings many risks. There are many different components that need to work together and an operating system needs to be reliable and as bug-free and error-free as possible as it will be used on the daily and by all apps and is depended on by all software on the computer and the user themselves. So as the spiral method focuses on analysing and reducing risk early and improving and mitigating these risks through iterations it makes it perfect for an operating system. 


Building a Video Game

I would recommend Agile or Extreme Programming. I chose this over RAD as games can get extremely complex fast and by creating prototypes that aren't production-ready this can lead to components not working properly together and messy code that isn't fully functional. Within Agile the aim is to create functional production-grade code for the iterations, by using Extreme Programming which focuses on speed it allows for there to be playtests more frequently and bugs can be caught earlier than with other methods. It will ensure that the game's code stays structured and doesn't get messy quickly.




“Waterfall is dead, long live Agile”. Discuss to what extent you agree with this statement.

[6 marks]


Waterfall is a less common software development methodology as it only works well on smaller projects where there are fixed requirements, although it is very beneficial when used on smaller projects and these can be completed faster than using Agile as you only need to complete one stage at a time as it flows to the next whereas Agile is more documentation focussed and can add in unnecessary time reviewing and adjusting. 


Agile is more commonly used now, this is because it's extremely useful for when client requirements may change, compared to Waterfall if the requirements change in Agile you can adapt and change within the next iteration, whereas in Waterfall you have to go back to the stage that is impacted and start everything all over again. This is why agile is better for time reasons on larger-scale projects and more collaborative projects. Agile is well-known for its speed too, with methods such as Extreme Programming existing which derives from Agile.


Waterfall is useful for more personal projects where there is no client but yourself, as your requirements are most likely going to remain fixed and you are evaluating at the same time as writing the software and doing iterative testing. 


I think that Waterfall isn't fully dead, but for large scale projects or projects for clients it's not being used anymore as there are better alternatives such as Agile. Agile is taking precedent now due to its focus on speed and production-ready code and ability to shift to new requirements whereas Waterfall feels more in the past as it relies on fixed requirements.


SORCES

 
 
 

Recent Posts

See All
Data Structures - Linked Lists (1.4.2)

This post covers the following topics: Linked Lists Linked Lists Linked lists are the most common type of dynamic data structure, as they are dynamic they can grow to any size that is required. Their

 
 
 

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Project Volt Logo
bottom of page