The 5 Phases of Software Development Life Cycleby Anna Khrupa on February 20, 2020
The development of a new product requires handling a big number of issues starting from knowing the requirements to choosing the right stack and so on. You may be fine with the software development lifecycle (SDLC) 5 phases, but we’ll make the story shorter and fit them into five most commonly used steps.
Phase 1: Collecting project requirements
A major task here is to collect information about the future product, understand the needs and expectations of the end-users. It’s good to have a business analyst that will back up this and all the further software development life cycle (SDLC) phases.
We can divide it into several components for you to make it more precise and clear:
- Business requirements. This issue is not related to how to develop a new application. It’s about why you need it, what kind of problems you will solve and how it will help your business stand out among competitors. And it’s good to be very specific. For example, you may note down such things like the app should cope with high traffic loads (1k visitors per second) or that checkout process should take 2 steps, etc.
- Stakeholders’ requirements. A standard process of gathering all the requirements may include this step. You may end up with contradictory expectations and thoughts that should be aggregated into a single vision and strategy. A business analyst should be able to work with this type of data.
- Product requirements. Here we mean functional and non-functional requirements that refer to the app behavior and how good it is.
- Transition point. It’s a list of people and items that you need to have to start the software development life cycle (SDLC).
- Regulatory compliance. You should check if your new product meets the norms of global and local quality standards.
Phase 2: Specs and planning
It’s time to have a look at all the requirements that you have collected in the previous phase and analyze them. It often happens that some of them are not important or they can even be incompatible with one another.
A business analyst or a project manager creates documents that contain all the information about the future product:
- Use case
- Software Requirements Specifications
- User stories
If a BA doesn’t have a technical background, there should be a PM to back up this phase. They can work together to get things done in a short time.
Here are the key things that you should highlight in the documents:
- Project description and its division into chunks
- Describe resources that are required for completing each chunk
- Estimate periods for each chunk
- Calculate the expenses on hiring employees
- Predict common obstacles that can pause the processes
- Provide solutions for these obstacles
- Detect critical moments and note them down
- Build a roadmap for the project
- End up with a budget and a roadmap with specific milestones
Phase 3: Make a wireframe
You are likely to love this phase as it refers to visualizing the requirements and all the rest data. You can take several core ideas and scenarios or find similar products that were developed by someone else. It doesn’t mean anything bad – it’s useful when you need to have a basic visualization of the requirements in a very short time. It’s hard to understand SDLC benefits without visualization.
Here are the key issues that you can add to a wireframe:
- UI / User Interface
- Functional processes
- Business processes
- User journey
Phase 4: Development
If you have a look at all software development life cycle (SDLC) models, you will see a large number of descriptions for this phase. We won’t highlight it too much. Here are the key components:
- The choice of methodology. It can be Agile, DevOps, Scrum or another one.
- The choice of architecture. It’s the foundation of your future product.
- Coding. It’s a process of creating chunks of code from scratch and based on the existing libraries.
- QA and testing. It comes hand by hand with the coding process.
Phase 5: Deployment. Iteration and Monitoring
If it’s Friday evening, you can start the deployment process. It’s a joke. In reality, such an approach can become a true nightmare for any developer. You can pick up the way you will publish the app depending on your current situation and specs of your business.
Here are the most common options:
- Recreate. A new version is published after you terminate the current version.
- Rolling and Ramped. A new version is replacing the old version during a specific period.
- Blue and Green. A new version is published alongside the old version. Traffic is switched to a new release in some time.
- A/B testing. Users are divided into two groups and each gets a new or old version to test.
- Shadow. The old version will exist until the moment when zero traffic will go to it.
The next phases will comprise iteration and monitoring. It means that you will analyze the user’s behavior and you will get feedback. And you will probably need to make some updates to the product to make it competitive and attractive.
It’s hard to underestimate the importance of the system development life cycle (SDLC) as only proper planning gives good results. When you outsource IT services, knowing and understanding each phase will add more trust to the relationships with a vendor. It will be much easier to make a deal and share the same goals.