Skip to content

Software Development Lifecycle (SDLC)

What is the SDLC?

  • A structured methodology that outlines the steps involved in developing software.
  • Provides guidance for creating a software application, from initial planning to maintenance.

SDLC Phases:

  1. Planning (Feasibility Stage):

    • Encompasses project and product management aspects.
    • Resource allocation, project scheduling, cost estimation.
    • Key Question: Is this project feasible?
    • Requirements Definition:

    • Determines what the application should do and its requirements.

    • Example: A social media app needs friend connection functionality.
    • Focus: Defining the initial prototype idea.
    • Design & Prototyping:

    • Establishes how the application will work.

    • Programming language, communication methods, architecture.
    • Outlining user interfaces and network requirements.
    • Key Deliverable: Architecture Design Review (ARD) document, created by engineers and developers to ensure alignment across teams.
    • Software Development:

    • Building the program, writing code, and creating documentation.

    • Testing:

    • Ensuring components work individually and together.

    • Functionality testing, integration testing, performance testing.
    • Goal: Identify and fix bugs and performance issues.
    • Deployment:

    • Making the application available to users.

    • Operations & Maintenance:

    • Responding to issues and bugs reported by users.

    • Planning future features and releases.
    • Ongoing support and updates.

DevOps Metrics and Frameworks:

  • CALMS Framework: Assesses a company's ability to adopt DevOps processes. Culture, Automation, Lean, Measurement, Sharing.
  • Key Metrics:
    • MTTP (Mean Time to Production): Time between code commit and deployment. How long does it take for a code change to reach production?
    • Deployment Frequency: How often are releases deployed?
    • Average Lead Time: Time to develop, build, test, and deploy a new feature.
    • Deployment Speed: Time to deploy a new release into production.
    • Deployment Agility: Combined measure of deployment speed and frequency.
    • Production Failure Rate: How often do failures occur in production?
    • MTTR (Mean Time to Recover): Time to recover after a failure. How quickly can we restore service after an outage?

SDLC Models:

  • Waterfall, Agile, etc., are examples of different SDLC models or methodologies. They provide different approaches to managing the phases of the SDLC.