Agile Trainings

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 - which are also used for general project management - and why Agile is preferred for many projects.

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, models typically consist of the following steps:

  1. Planning and Requirement Analysis

  2. Defining Requirements

  3. Designing the Product Architecture or Major Project Steps

  4. Building or Developing the Product

  5. Testing the Product

  6. Deployment in the Market and Maintenance

Common Models

Waterfall

The Waterfall model is a sequential project map 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.

Projects are 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 project 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. Specifically, Agile follows this manifesto:

  1. Individuals and interactions over processes and tools

  2. Working software over comprehensive documentation

  3. Customer collaboration over contract negotiation

  4. Responding to change over following a plan

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

In this module, we will review the key components of Scrum and Agile and see how The Data Mine implements these strategies.

Scrum Model
Figure 5. Scrum Model