Software Development Life Cycle: Beginners Guide 
Tags: programming, sdlc, softwaredevelopment, beginners
Published: 2021-06-25 14:04:11

You may have heard the term Software Development Life Cycle (SDLC) and are curious to know what it means and it’s benefits?
My Blog will provide all that information in a simplified way for the beginners. 

**What is SDLC?**
SDLC stands for software development life cycle.It’s a systematic process for building software that ensures the quality & correctness of the software build .In simple terms , it’s a planning process before developing the software .

You may have heard of the quote _“Think twice, code once.”_ 
![Think twice code once](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0y3p08uyzor7barhgsoe.jpg)
It’s true , we should follow this approach and such an approach can be achieved with the help of SDLC.

We plan each and every step like requirements, coding conventions, design patterns, etc in SDLC . We do so to achieve goals in less time , save money and prevent chaos .

**SDLC Phases**
![SDLC Phases](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/22wqjhzbpebokzic8jdy.jpg)
**Phase 1: Planning**
This is the most important or crucial stage of the process . It defines the success or failure of the project . If a project is not thoroughly planned , we are likely to fail to build it.

Here the senior members take input about the project from the customer , then domain experts analyse it and estimate the cost of the project as well as the risk factors .

With the help of experts , marketing team and surveys they are able to minimize the risk factors and the cost to the team . 

**Phase 2: Defining**
After the planning phase is complete , now it’s time to document it . This document is called **SRS( Software Requirement Specification )** .It includes all the product requirements needed during the life cycle process . Later on the SRS is sent to the customer or the market analyst for approval .

**Phase 3: Designing**
After the approval of the SRS document, a **DDS( Design Document Specification )** is proposed at this stage. It contains all the architecture (follow & managing of data) and design patterns (paradigms to follow while coding) proposed considering all the requirements and risk factors involved . 

Later on, all the stakeholders review the DDS and select a good fit architecture & pattern for the project . 

DDS contains the data flow structure from different modules (if any) . The more DDS is detailed about every step, the easier the development phase.

**Phase 4:Building**
This is the stage where real fun begins - coding. DDS is sent to developers . Developers follow the layed out patterns in the document.

It includes tools a developer needs while developing like compiler , interpreter , debugger , etc . It also includes in which high level languages like C, JavaScript , Python,etc  he/she should code .

**Phase 5:Testing**
We can say it’s a subset of coding . In the real world we follow TDD -  Test Driven Development , it means we test every piece of code that we have written . Same process here is also followed.

Here each piece of function is tested rigorously . We perform tests on each and every function and part of the application . This helps us to identify bugs , unexpected errors at an early stage . 

_If you have testing skills as a developer then you have an edge over other developers so it’s recommended to learn this skill too to get high chances of your resume getting shortlisted._

**Phase 6: Deployment & Maintenance**
After testing (removing each and every bug), your application is ready to be deployed for the public.

_Note: Before deploying there is a staging environment where Testers test applications under heavy load but we are not going into much details right now ._

Regular feedback is taken from the public - who are using their application to spot any bug or error that is not spotted in the testing phase . Afterwards the team analyzes the problem and solves the bug and redeploy it .This process of feedback & resolving bugs continues .

Our newly deployed application is also monitored . It helps us to get insight out how much load we are getting on our application and what should be our next task to manage this load much more efficiently .

This whole process of SDLC repeatedly  _goes-on-and-on_  - forever till the application gets outdated -  adding new features , resolving new bugs , etc.

Here we have only discussed what SDLC is , it’s benefits and phases . But it’s not the end . There are different models/methodologies we follow in SDLC for eg Agile, Iterative, Waterfall Model, etc . Each of these models have their pros and cons. We will discuss this in the next blog.

Thanks for reading,
Written with  ❤️ & passion 🔥 by _Rishabh Raghwendra_