Mod 3 > Week 2 > Day 3

Overview of the day

Today we look at the primary differences between the Waterfall and Agile software development methodologies.


Lesson

Learning Objectives

Lean software development

Lean has its roots in manufacturing and is a set of techniques for cutting waste and doing things 'just in time'.

Let's consider things which waste time:

Lean software development aims to remove unnecessary work whilst delivering fast and to a high quality.

README - https://agility.im/wp-content/uploads/2020/03/AIM_FactSheet_7-wastes-software-development_V1.1_02.pdf

Sequential software development methodologies

Waterfall methodology

The Waterfall methodology uses a sequential approach to software development. Each stage of the SDLC is completed and signed off before the next stage commences.

V-model

The V-model extends the Waterfall model by focussing on the relationships between each phase of the development life cycle and its associated phase of testing. Test artefacts are produced during requirements analysis (for user acceptance and system testing) and design (for integration and unit testing).

V Model

Iterative software development methodologies

The timeline below shows how early iterative software development methodologies evolved into Agile.

timeline of agile methodologies

Spiral

The Spiral model is an risk-driven, iterative development process.

The Spiral model has four phases:

A project repeatedly passes through these phases in iterations named 'Spirals'.

Unified Process (UP) / Rational Unified Process (RUP)

The Unified Process (sometimes known as the Rational Unified Process) is an iterative development methodology where development is organised in short, timeboxed iterations enabling adaptation to accommodate change. It is UML model (Use Case) driven.

Each iteration consists of the following 4 phases:

Agile methodologies

The Agile manifesto

The four core values of Agile software development as stated by the Agile Manifesto are:

The 12 principles of Agile include "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software".

Scrum

Scrum is an Agile methodology. Scrum teams are made up of 3 key roles:

Scrum teams deliver software in a series of Sprints, typically between 1 and 4 weeks long. The product owner prioritises the backlog of tickets and works with the development to determine the goals of each sprint.

The Scrum team meets once a day for a 15 minute standup (Daily Scrum). Here they ask the questions:

At the end of a sprint, the Scrum team invites the key stakeholders to a sprint review where the software is demo'd and feedback given. After this, the team run a retrospective to look at how they can improve in future sprints.

Kanban

'Kanban' is made up of two Japanese words, 'kan' which means sign and 'ban' which means board.

Teams use a Kanban board to visualize the status of their tasks. Popular Kanban boards include, Trello and Jira.

Example Kanban board

Extreme Programming (XP)

XP is a lightweight methodology focussed on the coding activity in the SDLC. It describes a better way to programme that takes the pressure off developers and results in higher quality software.

There are 4 key values in XP:

Example XP practices include:

Pair programming

Photo by Parabol on Unsplash.

Test Driven Development (TDD)

Test driven development describes a methodology where tests are written before the code is written. This helps focus on the purpose of a feature as well as resulting in higher test coverage.

DevOps

The term DevOps combines the terms 'Developers' and 'Operations'. DevOps focusses on the collaboration between developers and the operations team across the whole service lifecycle with the aim of rapid delivery of high-quality, robust software.

DevOps relies heavily on automation (CI/CD).

What methodology to choose?!

Assignment

You will be tasked to complete a Code Wars Kata using the XP technique of pair programming. Once the Kata is complete, discuss how you felt about working with someone else, was the Kata faster to solve? Did it take some pressure off? Did you enjoy it?

Research the advantages and disadvantages of Waterfall and Agile methodologies and what kinds of projects each one is suitable for.

Research the similarities and differences between Agile and Waterfall methodologies and update your portfolio to include this information.

Update your portfolio to explain what software methodologies you use at work.

Additional resources

attendance log main|prev|next