Skip main navigation

The software development cycle

The software development cycle is a series of stages that developers go through to develop a piece of software.

Cliffydcw, CC BY-SA 3.0, via Wikimedia Commons

What is the software development cycle?

Developing software is a costly, time-consuming and complex process. Over the last 50 years, the approach to designing and creating software has evolved significantly. It used to be a specialised field, but now you can learn how to program from your own home.

The software development cycle is a series of stages that developers go through to develop a piece of software, but before we look at the cycle itself, let’s look at the two project management methods that are used:

Waterfall versus Agile development

In the past, the prevailing project development method was the waterfall model, a linear step-by-step process with limited feedback and minimal involvement of end-users except at specific milestones. This approach often resulted in software that didn’t meet user needs or became outdated upon release, leading to expensive and embarrassing failures for companies. In response, a group of developers created Agile development as an alternative. You can learn more about the creators of Agile and its principles in the Agile Manifesto.

Today, most companies favour Agile development because it’s designed to be faster and produce higher-quality software. Agile places a stronger emphasis on engaging end-users throughout the process and incorporating their feedback. This flexibility ensures that you don’t end up with software nobody wants by the project’s completion.

The process of making software

Now let’s explore the basic steps of the software development cycle within an Agile framework:

Design and requirements gathering

At this stage, the project is just an idea. In Agile development, this usually centres around a problem which the program is going to solve, which helps the team focus on the user. A set of requirements will be developed which describe all the things which the program should do, and this is also usually done from a user’s perspective using user stories.

These user stories are then given priority to decide how important it is that they are completed. This is because not every user story will fit into the project scope so it’s helpful to know which ones to do first. User stories will also be assigned a complexity, which is how long the developers think they will take to do.

Development

Once both the customer and the team are happy, development can begin. Many companies now use sprints which are set periods of time, commonly 2 or 4 weeks, where the team will work on a group of related user stories. This breaks the project up and provides opportunities to get feedback throughout the process.

During the development process, designers, testers, and developers all work together, and this phase takes up the majority of the project’s time.

Testing

There are different types of testing and most are done at the same time as development. The developers will use unit testing to check that their code functions correctly and to find any problems. Code will be quality assured (QAed) throughout the process to check the overall quality of the code. Occasionally, during a sprint, the emphasis will be on reviewing and refactoring code. Refactoring, in this context, means going through code, often written by someone else, and rewriting it to make it more user-friendly and manageable.

End-to-end testing means working through every user story in the program to find issues that unit testing might miss. It’s also important to involve the end-users to ensure the program is user-friendly for its intended audience. All feedback from testing is used to improve the program in the next development sprint.

Deployment and maintenance

Once the project is finished, it will be released or deployed. At this point, the program should be finished but over time, it usually needs some maintenance, new features, or bug fixes which weren’t detected in development.

In the next step, you will discover more about the people who are involved in the software development cycle.

Optional reading

If you would like to more about Agile, please follow the link and read the Agile Manifesto.

This article is from the free online

How to Get Into Software Development

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now