Day 2 of 90 Days of DevOps Challenge: From Waterfalls to Agility - Understanding the Evolution of SDLC Models

Vaishnavi DVaishnavi D
6 min read

What is SDLC?

The Software Development Life Cycle (SDLC) is a systematic process that guides how software is planned, developed, tested, deployed, and maintained. It ensures that the software product is delivered with high quality, within budget, and on time.

SDLC acts as a blueprint for software development, promoting clarity, structure, and efficiency throughout the project lifecycle.

Why is SDLC Important?

  • Ensures a structured and methodical development approach.

  • Helps avoid costly mistakes by planning.

  • Improves collaboration between teams.

  • Enhances product quality through defined testing and feedback loops.

Facilitates better project management and resource allocation.


Phases of SDLC

1. Requirement Gathering and Analysis

In this phase, all stakeholders (clients, managers, developers) come together to understand what the software should do. Functional and non-functional requirements are identified and documented.
Goal: Define the scope and ensure clarity before development starts.

2. System Design

The technical team uses gathered requirements and designs the software architecture, data flow, UI/UX, and tech stack. High-level (HLD) and low-level design (LLD) documents are often created.
Goal: Translate business needs into a blueprint for developers.

3. Implementation

Developers begin writing code according to the design specifications. Each component or module is built individually and integrated later.
Goal: Convert design into a functional software product.

4. Testing

After development, the software undergoes rigorous testing to find bugs, verify functionality, ensure performance, and meet the defined requirements. This can include unit tests, integration tests, system tests, and user acceptance tests (UAT).
Goal: Ensure the software is bug-free, reliable, and meets quality standards.

5. Deployment

Once the software passes all tests, it is deployed to a production environment where end-users can access it. This could be a one-time release or a phased rollout.
Goal: Make the software live and available for use.

6. Maintenance and Support

After deployment, ongoing maintenance is needed to fix bugs, improve performance, handle user feedback, and update features.
Goal: Keep the software relevant, secure, and functioning optimally.


SDLC Through the DevOps Lens

In DevOps, the SDLC doesn’t end at deployment. It’s enhanced with:

  • Continuous Integration/Deployment (CI/CD)

  • Automated testing

  • Infrastructure as Code (IaC)

  • Monitoring and feedback loops

DevOps focuses on optimizing and automating every SDLC phase, creating faster and more reliable software delivery.

SDLC Models

To implement SDLC effectively, different models are followed depending on the project type, timeline, and complexity. Two major models are:

  • Waterfall Model (Linear, sequential)

  • Agile Model (Iterative, flexible)

Waterfall Model: The Traditional Approach

The Waterfall Model is one of the earliest and most traditional models of the Software Development Life Cycle (SDLC). It is called "waterfall" because the development process flows sequentially downward through distinct phases like water cascading down a series of steps.

It is a linear, sequential model. Each phase must be fully completed before moving on to the next. There is no going back, which means changes are difficult to accommodate once a phase is done.

Characteristics of the Waterfall Model

  • Linear & Sequential: Each phase has a clear beginning and end.

  • Rigid Structure: Once a phase is completed, it cannot be revisited.

  • Heavy Documentation: Each phase generates documents used to guide the next.


Advantages of the Waterfall Model

  • Simple and easy to manage.

  • Clearly defined stages and deliverables.

  • Works well for small projects with clear and fixed requirements.

  • Progress is easy to measure.


Disadvantages of the Waterfall Model

  • Inflexible to changes: Requirements can't be altered once development begins.

  • Late testing phase: Bugs are often discovered too late in the cycle.

  • High risk: If a mistake is made early (e.g., during requirements), it's hard and expensive to fix later.

  • Not ideal for complex or evolving projects.

Why Agile Was Introduced

The Waterfall Model lacks the speed and adaptability required in modern DevOps environments, where quick feedback, continuous integration, and incremental delivery are key. This limitation led to the birth of Agile methodologies.

Agile Model: The Modern Approach

The Agile Model is an iterative and flexible approach to software development that focuses on customer collaboration, quick delivery, and adapting to change. Unlike the rigid Waterfall Model, Agile breaks the project into small, manageable units called iterations or sprints, typically lasting 1 to 4 weeks.

Each sprint delivers a working piece of software, allowing for continuous feedback, faster releases, and adaptability.

Agile Development Cycle

  1. Product Backlog Creation
    A list of all desired features, enhancements, and bug fixes—prioritized by business value.

  2. Sprint Planning
    The team selects a subset of tasks (user stories) from the backlog to complete in the upcoming sprint.

  3. Sprint Execution
    Developers and designers work collaboratively to build features during the sprint.

  4. Daily Stand-ups
    A short daily meeting to sync up, discuss progress, blockers, and next steps.

  5. Sprint Review & Demo
    At the end of the sprint, the team presents the working software to stakeholders for feedback.

  6. Sprint Retrospective
    The team reflects on what went well, what didn’t, and how to improve in the next sprint.

  7. Repeat the Cycle
    The process continues with the next sprint, building on feedback and previous work.


Advantages of the Agile Model

  • Flexibility & Adaptability: Easily accommodate changing requirements.

  • Early & Continuous Delivery: Working software is delivered regularly, increasing value.

  • Customer Involvement: Clients are part of the process, reducing the risk of misalignment.

  • Faster Detection of Issues: Regular testing and feedback help catch bugs early.

  • Improved Team Collaboration: Agile encourages communication and shared ownership.


Disadvantages of the Agile Model

  • Requires High Involvement: Clients must be available throughout the development process.

  • Unpredictable Timelines: It’s harder to estimate exact delivery dates or costs.

  • Documentation May Suffer: Focus on working code may lead to poor or missing documentation.

  • Can Be Chaotic Without Discipline: Without clear leadership and team experience, Agile can lead to scope creep or mismanagement.


Agile’s Role in the DevOps Journey

Agile set the stage for DevOps by encouraging iteration, collaboration, and responsiveness. DevOps builds on Agile principles and adds automation, continuous integration/delivery (CI/CD), and strong collaboration between development and operations teams to streamline the entire software lifecycle.

  • A flexible, iterative approach where software is developed in small increments (called sprints).

  • Encourages continuous feedback, collaboration, and adaptability.


Final Thoughts

Waterfall and Agile each have their strengths. Waterfall suits fixed, well-defined projects, while Agile thrives in fast-changing, collaborative environments. In DevOps, Agile is a natural fit due to its focus on continuous delivery and improvement. Throughout my 90-days of DevOps challenge, I experienced how Agile principles fuel speed and reliability, whether through automation or collaboration, proving that DevOps is more than a process, it's a culture.

Thanks for reading! If you found this helpful, feel free to drop a comment, share it with others, or follow along for tomorrow’s update!

13
Subscribe to my newsletter

Read articles from Vaishnavi D directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vaishnavi D
Vaishnavi D