# Day 3 - SDLC with DevOps

## **Why Learn SDLC?**

SDLC stands for **Software Development Life Cycle**.  
Everyone in IT—developers, testers, DevOps engineers—must understand SDLC because:

* Every organization follows a **standard process**
    
* Whether it’s a startup, MNC, or unicorn
    
* SDLC defines **how software is planned, designed, developed, tested, and delivered**
    

If you work in IT, SDLC knowledge is mandatory.

---

# **What is SDLC?**

SDLC is a **process/culture/standard** followed by the software industry to:

1. **Design**
    
2. **Develop**
    
3. **Test**
    

software in a structured and predictable way.

The **end goal** of SDLC:

> **Deliver a high-quality product that meets customer expectations.**

Without design → you cannot develop.  
Without testing → product will not have quality.

So SDLC ensures quality delivery.

---

# **Example Organization:** [**example.com**](http://example.com)

Assume we work at [**example.com**](http://example.com) (an e-commerce platform).  
They currently sell:

* Men’s clothing
    
* Women’s clothing
    

Now, they want to introduce a **Kids section**.  
To add this new feature, the company goes through the **SDLC cycle**.

---

# **SDLC Phases**

SDLC typically follows these phases:

1. **Planning**
    
2. **Requirement Gathering**
    
3. **Design**
    
4. **Build / Development**
    
5. **Testing**
    
6. **Deployment**
    

This is a **circular process**, repeated for every new feature.

---

# **1) Planning Phase**

This is where the idea is evaluated.

Example:  
Should we add a Kids section?  
Will customers benefit from it?  
How many are interested in ages 1–4, 6–12, etc.?

People involved:

* Business Analyst (BA)
    
* Product Owner (PO)
    
* Senior team members
    

Goal:

* Understand whether the feature is useful
    
* Collect inputs from existing users
    
* Stop the idea early if it is not needed
    

Planning + requirement gathering is **one of the most important steps**.

---

# **2) Requirement Definition Phase**

Once planning is done, requirements are documented.

This documentation is called:

### **SRS – Software Requirement Specification**

It contains:

* What customers want
    
* Scope
    
* Functional requirements
    
* Data collected during planning
    

This document becomes the foundation for design.

---

# **3) Design Phase**

Two types of design happen:

### **HLD – High Level Design**

Done by architects/senior engineers.  
Includes:

* System architecture
    
* Scalability
    
* High availability
    
* Database design
    
* Replicas
    
* Load expectations
    

### **LLD – Low Level Design**

Done by senior developers/architects.  
Includes:

* Modules
    
* Functions
    
* Internal logic
    
* Database calls
    
* Input/output flow
    

When HLD + LLD are ready → developers can start coding.

---

# **4) Build / Development Phase**

Developers begin writing code based on the documents.

Steps:

* Developer reads Jira stories / requirements
    
* Writes code in Java, Python, etc.
    
* Gets code reviewed by peers
    
* Pushes code to **Git** (source code repository)
    

Git is a common place to store and share application code.

---

# **5) Testing Phase**

Once code is in Git:

* It is deployed on a testing/staging server
    
* The **QA/QE team** performs testing
    
* They check whether the feature works as expected
    

Goal:

> Ensure product quality before it reaches customers.

---

# **6) Deployment Phase**

After testing is successful:

* The application is promoted to **production servers**
    
* The customer starts using the new feature
    

---

# ⭐ **Where Does DevOps Fit into SDLC?**

DevOps becomes important in these phases:

### **Build → Test → Deployment**

These are DevOps-centric areas because:

* Developers write code
    
* Testers test code
    
* But **DevOps automates everything**
    

DevOps engineers ensure:

✔ Build happens automatically  
✔ Testing triggers automatically  
✔ Deployment is automated  
✔ Zero manual intervention  
✔ Faster, reliable delivery

DevOps does **not** manually build, test, or deploy.  
Instead, DevOps automates all these steps to improve:

* Speed
    
* Efficiency
    
* Reliability
    

This is why DevOps is critical for modern SDLC.

---

# **SDLC + Project Management**

SDLC can be implemented using different project management models:

* Waterfall
    
* Iterative
    
* Agile (most common today)
    

In Agile:

* Work happens in **sprints**
    
* You don’t wait for entire planning/design to finish
    
* Small parts are developed and released quickly
    

DevOps works extremely well with Agile because both focus on **fast and continuous delivery**.

---

# ⭐ **Conclusion**

As a DevOps engineer, your primary responsibility in SDLC is:

> **Automate Build, Testing, and Deployment to improve delivery speed and reduce manual work.**

SDLC is the foundation of how software is created, and DevOps enhances this by bringing automation and efficiency.
