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:¶
-
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.