Agile development

Learning Objectives

Understand Agile development using SCRUM, KANBAN & SCRUMBAN.

Lesson

Agile is a set of principles you can read more about in the principles behind the Agile Manifesto. Some of the core principles include:

SCRUM

SCRUM is an agile framework that software development teams use to organise and coordinate their work. A SCRUM master faciliates all the development process and helps to remove any impediments the team may face.

SCRUM starts with sprint planning. A sprint is a fixed period of time for development work (typically 2 weeks). For us our sprint will last 3-4 days. In sprint planning the team breaks up the work into tasks. Often the tasks are scored by complexity or challenge factor. Low scoring tasks are of low complexity and easy to complete, high scoring tasks are harder, or might require reading of documentation etc.

Each task should be assigned to a developer. It is their responsibility to deliver that task. The amount and rate at which tasks are complete is the 'burn rate'. For SCRUM masters the burn rate gives them a good measure for the capacity of their team.

SCRUM also recommends 15 minute daily standups (think of a rugby scrum!) where each member of the team answers 3 questions:

KANBAN

KANBAN is another agile framework. Tasks are represented visually on a 'kanban' board, allowing team members to see the state of every piece of work at any time.

Kanban is not bound by sprints. Instead tasks are added to a backlog. Tasks are then picked from the backlog and placed in different columns depending upon that tasks current status. The benefit of this system is the visibility it gives the team as to where every task is at anyone time. This originated in Japanese car manufacturing, and has been used by developers for many years now.

SCRUMBAN

Combine the 2 methods above and you get SCRUMBAN. Sprints with a KANBAN board. This is the approach you are most likely to see in your workplace, people often refer to the approach as SCRUM even though it's offically a combination of 2 frameworks.

Assignment