This is the first stage and the most important. Fact finding, requirements gathering, prototyping, scoping, and story boarding are all performed at this early stage.
These processes ensure that the outputs and products of the loop are known and defined from the outset and before any work commences. It also allows for greater accuracy when determining timescales and budgets. It can be used to create process documentation to be made available to the customers who will use the software.
Lastly, they allow for the creation of testing criteria and success KPIs to ensure that the outputs match the specs and requirements laid out in this first stage.
Westwood Rock use the latest techniques and technology to create the relevant documents and track progress of the project.
Once the design stage has been completed and the changes, requirements and bugs have been defined then coding can begin.
Coding involves the software engineer translating the requirements into code that performs, displays, or processes the logic or functionality defined in the Design stage.
As well as simply coding or writing the software, the coding stage also includes testing. This can be Unit Testing, where specific code is tested in isolation or User Acceptance Testing (UAT), where users or quality assurance testers test the software against the requirements. This ensures the quality of the software and reduces the likelihood of bugs or unexpected behaviour.
Once the coding and testing have been completed, the software can be distributed or deployed to the end user.
This can be done in several stages with internal and external user acceptance testing before a production release.
The deployment phase can also publish the software to a website or hosting site for web applications, or an application store in the case of mobile applications.
The deployment phase also involves defining processes for handing installation and update mechanisms.
Once the software has been deployed and is in the hands of the users the Support phase can then begin.
This stage involves supporting the users with the software, whether it be using the documentation to help them perform certain functions, fixing data related issues, or diagnosing bugs and problems with the software that need to be fixed.
Support is an important part of the Software life cycle as it can help to improve the software and the customer experience at the same time. Feedback found in support can be fed back into the next cycle to improve the software by fixing a bug or adding a request feature.
After a suitable amount of time analysis of the cycle can begin.
This stage can be used to determine the success of the cycle and compare the outcomes to the success criteria defined in the design stage. Budgets and timescales can be assessed to see how they matched up to the original budgets. Lessons can be learnt on where improvements can be made.
It can also integrate the feedback and bugs that are found in the support stage and determine priorities for the next cycle in the Life cycle.
One main feature of the software life cycle is that it starts over again for the next new feature, version, or iteration of the software.
The size and scope of the software life cycle can be different depending on what the requirement is at the time. A new piece of software would have a large scope, but a bug fixes release or a minor feature release could have much smaller scope.
The principal is the same regardless and all stages of the life cycle are important to ensure quality software is created and maintained.