A software life cycle refers to the different phases of software development and release.

It describes the processes of planning, creating, testing and deploying an application.

The actual coding that people are familiar with is simply one part of a broader ‘life cycle’ which sees the application all the way through from idea to eventual retirement.

The first step focuses on analysing what the software will be required to do. This consists of basic questions such as who will use it, what data it will require and provide.

The next phase is designing the application, which determines the specifications that the application will require to do its job. It also involves creating a testing strategy for the application.

Coding follows, which is the longest phase of the cycle.

However, the software cannot be deployed immediately; it then has to be extensively tested to see if it is meeting the key requirements as detailed in the earlier phases.

Finally deployment comes, usually through beta testing, where the initial users can report bugs to the developer team.

Deploying the application is not the end of the life cycle. The final stage is maintenance, where the experience of the actual users of the software, including problems and errors encountered, is fed back into the application to continuously improve it.

If the application is successful, the maintenance period can continue indefinitely. If new technologies emerge that can be built into the application to enhance its functionality, these can be added to the software. Additionally, if new demands are made of the software these can also be addressed in the maintenance phase.

The software life cycle is related to the culture of DevOps, which Gartner predicts will become a mainstream strategy in 2016, describes a strategy of emphasising collaboration and communication between software developers and IT professionals, as well as automating the software delivery and infrastructure change processes.