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

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 2. Scrum Model