The software development life cycle (SDLC) is a sequence of steps used by a software development company to design, build, test, and deploy software.
The two main SDLC models many software development companies use are Waterfall and Agile.
The software development company that leverages the Waterfall software development cycle follows a specific sequence of phases. Each phase below must be fully completed by the software development company before the next step is started:
- System and software requirements. The software development team gathers and documents requirements.
- Analysis. The team determines business requirements and current ways of working.
- Design. The software development team crafts the software architecture.
- Coding. The software development team creates unit tests, integrating modules according to the determined software architecture.
- Testing/verification. The QA engineers from the software development team perform testing of the software system-wide (integration testing, system testing, user acceptance testing).
- Operations. The software development team performs installation, migration, support, and maintenance of the finished software product.
Within the Agile software development cycle, a software development company develops software in a series of iterations also known as sprints. A sprint typically lasts two to three weeks. The goal for the software development company is to produce a working software solution at the end of each sprint.
A sprint workflow follows these steps:
- Requirements. The software development team defines requirements based on discussions with stakeholders.
- Development. Based on the requirements, the team designs and develops software.
- Testing. The software development team performs QA activities to ensure the software is free of bugs, has no issues when interacting with other parts of the system, and the integrated software solution works as expected.
- Delivery. The software development team integrates and deploys the software into a staging or production environment and provides internal and external training on software usage when needed.
- Feedback. The software development team reviews progress toward requirements, gets feedback from stakeholders, and makes suggestions on how to resolve the found issues.
A custom software development company typically follows the software development life cycle model used in the client's organization.