Software Development Life Cycle Models

Before diving into the details of agile, scrum, and their implementation in The Data Mine, it is worth noting the history of software development life cycle (SDLC) models and why Agile is preferred for many projects.

About

SDLC models were developed as strategies and structured processes for the enablement of high quality, low cost software, in the shortest time frame possible. Their primary focus is delivering timely software that meets the wants, needs, and expectations of the end user.

Typically, SDLC models typically consist of the following steps:

  1. Planning and Requirement Analysis

  2. Defining Requirements

  3. Designing the Product Architecture

  4. Building or Developing the Product

  5. Testing the Product

  6. Deployment in the Market and Maintenance

Common SDLC Models

Waterfall

The Waterfall model is a sequential SDLC that relies on stages for software development. Each of the stages (analysis, design, coding, testing, deployment), are followed in a strict order with teams ensuring that each stage is complete before moving to the next. Each successive stage relies on information of the previous.

Software is often developed slowly and at a high cost in this model, but it may be ideal for projects with strict regulations, budgets, and timelines (governmental or healthcare projects).

Waterfall Model
Figure 1. Waterfall Model

V Model

The V Model stands for verification and validation model. Similar to Waterfall, The V Model follows a stage by stage process, but it prioritizes testing at each stage.

This model is one of the most time consuming and expensive, but it is best at ensuring exceptional quality control. The V Model is appropriate for projects where failures and downtime are unacceptable like medical and aviation software.

V Model
Figure 2. V Model

Spiral Model

The Spiral Model prioritizes flexibility, risk assessment, and consumer involvement. With four main phases of development (determine objectives, risk analysis, development, plan next iteration), the spiral model loops around after each completed cycle consisting of the four phases.

This model is great for research and development projects because of the ability to plan for future iterations, but it does limit projects with teams with minimal risk management experience.

Spiral Model
Figure 3. Spiral Model

DevOps Model

The DevOps model emerged as groups found value in development and operations teams working together to expedite software lifecyle. Specifically, development and operations teams will work together through planning, development, building, testing, release, deployment, operations, and monitoring.

This model is great for projects with larger teams or for groups within a larger corporate ecosystem. Communication is constant throughout development and operations teams.

DevOps Model
Figure 4. DevOps Model

Agile

Agile is the most common SDLC model. With focus on an iterative and incremental approach to software development, Agile uses short 2-4 week cycles for their development and releases updates on software at the end of each sprint.

Agile is great for accommodating projects that are changing regularly and need early consumer feedback.

Within agile, there are common subtypes that assist with implementation. Those subtypes include scrum, extreme programming, and kanban.

Scrum Model
Figure 5. Scrum Model