SDLC, or Software Development Life Cycle, is a set of steps used to create software applications.
Define requirements or Discovery phase
The Discovery phase is the first step of each digital product creation during what we determine what the application is supposed to do, and the requirements to do it.
We have to answer a number of very important questions like:
- Who is it for?
- What issues should it solve?
- What does good service look like?
- Who is our competitor?
- Which resources do we need?
This is a vital step that should not be skipped.
The main purpose of the software design is to create a detailed plan for the subsequent work. This stage includes:
- Architecture design. The design of a software architecture allows to guarantee the flexibility and reliability of the product. Also at this stage requirements for infrastructure are determined based on the predicted load and workflows.
- Prototyping. An interactive prototype helps get a basic understanding of how the application looks and works. Any change and improvement at this stage are less costly compared to the ones done at the development.
- Non-functional requirements formulation. It is equally important to decide on the platforms on which the software will run: iOS, Android, web e.t.c. Other technical requirements are also formed: tech stacks, programming languages, frameworks that are suitable for solving the assigned task.
- External dependencies investigation. Defining external integration that we need, for example, integration with IoT smart locks, or external data sources like a Google Maps API.
- Security requirements and solutions formulation. We design the product to be reliable and secure with customer’s personal data and able to resist external influence. That includes design of role system and authorization methods, data exchange protocols like SSL, and other...
- Composing user story mapping. This document defines the prioritization of product features and the order of their implementation.
Software development stage
At this stage, the development team starts to implement the software. The designers give the final shape to the product, and the developers implement the functional modules.
The software development stage usually consists of several steps that are called sprints, each step contains coding and testing stages. The result of each sprint is the execution of one of the user stories that is written in user story mapping.
Documents developed at the product design stage can be supplemented and corrected during development. This is a fairly standard situation in software development. As a result, this is how the project documentation is formed.
It is a very important step of SDLC, Testing gives the guarantee that products can work steadily and correctly in different situations and on different devices.
Testing can be automatic or manual. However, in any case, the product should be tested under different loads and in different situations, as well as on different operating systems and different types of devices.
Operations & maintenance
The Operations and Maintenance Phase is the final (and ongoing) phase that maintains the system, including any regular updates and adjustments that may be required. In addition, this is the stage at which we can get feedback from real users.