Skip to main content

Command Palette

Search for a command to run...

SDLC (Software Development Life Cycle)

Updated
4 min readView as Markdown
SDLC (Software Development Life Cycle)
S

Skilled in managing carrier-grade ISP infrastructure, enterprise environments, and server operations. Enthusiastic about optimizing high-performance networks and exploring emerging technologies. Committed to continuous learning and driven to leverage cloud solutions and automation tools to enhance innovation and efficiency.

SDLC (Software Development Life Cycle) is a structured approach that guides developers through the process of designing, developing, testing, and deploying software efficiently and with high quality.
There are several ways to implement SDLC—let’s explore some of the commonly used models.

Popular SDLC Models:

  • Waterfall – Step-by-step, linear approach.

  • Agile – Iterative, flexible, with continuous feedback.

  • Spiral – Combines design and prototyping in stages.

Phases of Waterfall Model:

  1. Planning – Project goals and resources are defined.

  2. Requirement Analysis (SRS) – Gather and document what the software must do.

  3. Designing (DDS) – Create system architecture and technical design.

  4. Implementation – Actual coding based on the design.

  5. Testing – Ensure the software works as expected (debugging, verification).

  6. Deployment & Maintenance – Release and support the software.

🏗️ Analogy: Like Building a House

  • You can’t change the foundation once you start building walls.

  • Each step depends on completing the previous one.


⚠️ Disadvantages:

  • Monolithic: Large, tightly coupled applications.

  • Single Point of Failure: One issue can impact the entire project.

  • Slow & Risky Updates: Pushing changes late is difficult and unsafe.

Agile Model – Move Fast, Deliver Often

Agile is a modern SDLC approach that breaks large projects into small, manageable chunks (called iterations), focusing on speed, collaboration, and flexibility.


🔁 Agile Workflow:

  1. Break into Iterations – Divide the project into small, functional parts.

  2. Release – Deliver working software quickly.

  3. Get Feedback – Gather input from users or stakeholders.

  4. Enhance – Improve based on feedback.

  5. Re-release – Continuously deliver improved versions.


Advantages:

  • Frequent Delivery – Faster time-to-market.

  • Client Collaboration – Regular communication and feedback.

  • Flexible to Change – Easy to adapt to new requirements.

  • Time-Saving – Focused efforts, quicker results.


⚠️ Disadvantages:

  • Less Documentation – Can lead to confusion later.

  • Maintenance Challenges – Frequent changes may affect long-term stability.


Ways to Implement Agile

Agile is not just one method — it’s a mindset supported by various frameworks and practices. Here are popular ways to implement Agile in real-world projects:


🔹 1. Scrum

  • Time-boxed Sprints (2–4 weeks)

  • Roles: Product Owner, Scrum Master, Development Team

  • Events: Daily Stand-ups, Sprint Planning, Sprint Review, Retrospective


🔹 2. Kanban

  • Visual board with tasks in To Do → In Progress → Done

  • Continuous delivery, no fixed sprints

  • Focus on limiting work in progress (WIP)


🔹 3. Extreme Programming (XP)

  • Emphasizes technical practices

  • Key practices: Pair Programming, Test-Driven Development (TDD), Continuous Integration


🔹 4. Lean Development

  • Inspired by Toyota

  • Focuses on eliminating waste, improving flow, and delivering fast

  • Prioritizes value to the customer


🔹 5. Crystal Methodology

  • People-centric, adaptable to team size and project criticality

  • Encourages team communication and minimal bureaucracy


what is Devops?


DevOps = Development + Operations
It's a culture that brings developers and IT operations teams together.

Goal: Accelerate delivery

Streamlined the software development and deployment process by automating repetitive tasks. Implemented CI/CD pipelines, which helped cut deployment time from 2 weeks to just 1 week, ensuring faster and more reliable releases.


What a DevOps Engineer does:

  1. Automates processes

    • Builds scripts and tools to automate testing, building, and deployment.
  2. Manages infrastructure

    • Uses tools like Terraform or Ansible to create and maintain servers.
  3. Sets up CI/CD pipelines

    • Ensures code moves from development to production quickly and safely.
  4. Monitors systems

    • Uses tools like Prometheus, Grafana, or Datadog to track performance and catch issues.
  5. Collaborates with teams

    • Works with developers, testers, and operations to ensure smooth workflows.
  6. Ensures security & compliance

    • Implements policies and scans to keep systems secure.
  7. Handles cloud platforms

    • Manages services on AWS, Azure, or Google Cloud.

list of commonly used DevOps tools and technologies, categorized by function:


🛠️ CI/CD (Continuous Integration / Delivery)

  • Jenkins

  • GitLab CI/CD

  • GitHub Actions

  • CircleCI

  • ArgoCD


📦 Containerization & Orchestration

  • Docker – Package applications into containers

  • Kubernetes – Orchestrate and manage container clusters

  • Helm – Kubernetes package manager


📁 Version Control

  • Git

  • GitHub / GitLab / Bitbucket


⚙️ Infrastructure as Code (IaC)

  • Terraform

  • Ansible

  • Pulumi

  • CloudFormation (AWS)


☁️ Cloud Platforms

  • Amazon Web Services (AWS)

  • Microsoft Azure

  • Google Cloud Platform (GCP)


🔍 Monitoring & Logging

  • Prometheus + Grafana – Monitoring and visualization

  • ELK Stack (Elasticsearch, Logstash, Kibana)

  • Datadog / New Relic / Splunk


🔐 Security & Secrets Management

  • Vault (HashiCorp)

  • AWS Secrets Manager

  • SonarQube (for code quality & security scanning)

More from this blog

Sumeet Tanpure

30 posts

As a network/system engineer with over half a decade of experience, I'm constantly driven to stay ahead of the curve in new technologies.