Software Development Life Cycle (SDLC) - Day 2

Jul 7, 2024

Day 2: Software Development Life Cycle (SDLC)

Introduction

  • Welcome and introduction by Abhishek
  • Recap of Day 1: What is DevOps, why DevOps, DevOps interview intro
  • Playlist available: DevOps Zero to Hero

Overview of Software Development Life Cycle (SDLC)

  • SDLC: Software Development Life Cycle
  • Importance of SDLC for all roles in IT: developers, testers, DevOps engineers
  • SDLC is a standard process followed by the software industry to design, develop, and test high-quality software products

Importance of SDLC

  • Ensures high-quality product delivery
  • Aligns with organizational standards
  • Involves phases: Design, Development, Testing
  • Goal: To meet customer expectations and deliver a quality product

SDLC Phases

  1. Planning
    • Gathering requirements
    • Input from CTO, Business Analysts, Product Owners
    • Customer feedback collection
  2. Defining Requirements
    • Documenting requirements (Software Requirement Specification - SRS)
  3. Designing
    • High-Level Design (HLD): Overall system design, scalability, availability
    • Low-Level Design (LLD): Detailed function and module design, specific technologies
  4. Building (Developing)
    • Writing code based on design documents
    • Code review and pushing to source code repository (e.g., Git)
  5. Testing
    • Quality Assurance (QA) team tests the application
    • Ensures code quality and functionality
  6. Deployment
    • Deploying the application to production
    • Delivering the product to customers

DevOps and SDLC

  • DevOps engineers focus on automating and improving efficiency in the Building, Testing, and Deployment phases
  • Automation leads to faster and more reliable processes
  • DevOps is about facilitating collaboration and efficiency in delivering software

Automation in Building, Testing, and Deployment

  • Building: Automating code integration and build processes
  • Testing: Automating test execution
  • Deployment: Automating the release process to production environments

Project Management Models

  • Several models: Waterfall, Iterative, Agile
  • Most common: Agile
    • Short sprints, iterative processing

Conclusion

  • Understanding SDLC is crucial for every role in IT
  • Key focus for DevOps engineers is on automation in building, testing, and deploying
  • Importance of teamwork and following standards
  • Encouragement to ask questions and engage in learning community