What the Heck is Agile?

Agile is an iterative approach to project management and software development that helps teams deliver value faster and with fewer headaches”.

Agile teams break down projects to work in “small, consumable increments”

Agile methodologies include Scrum, Extreme Programming and the Dynamic Systems Development Method.

Agile values are differentiated to traditional software development by focusing on:

Individuals & interactions over process & tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

The Principles Behind the Agile Manifesto

When Agile was first formulated by a group of visionaries, it was founded on the following 12 principles:

Prioritise customer satisfaction through early and continuous delivery of valuable software

Allow for change even during the later stages of development, in order to cater for the customer’s competitive advantage.

Frequent development and a shorter timescale in delivering working software.

Collaboration between business people and developers on a daily basis

Create an environment and build projects around motivated individuals that are supported

Face to face conversation is the most efficient and effective method that a development team should use to convey information

The primary measure of progress is working software

The developers, sponsors and users should maintain a sustainable level of development and progress.

Enhance agility through continuous attention to technical excellence

Simplicity, the art of maximising the amount of work not done, is essential

Self organising teams produce the best architectures, requirements and designs

Teams should regularly reflect on ways to become more effective and work to adjust their behaviour accordingly .

Agile Breaks Project into Iterations

Agile Terminology

The absence of standardised terminology allows interchangeable use of terms, depending on what is preferred. This can occur without disrupting the ability to conduct effective coordination with other groups within the organisation.

Agile Breaks Project into Iterations

Agile consists of 4 steps to help teams become organised and effectively work through a complex project.

‍Step 1: MAKE A LIST

Create a to do list for the project by making a list of user stories that the customer would like to see. Shift the focus of the team from writing about requirements to talking about needs. Place user stories in the backlogs:

Product Backlog

Collects all the work flowing to the team

The product owner will prioritise the tasks, signalling to the team which is most important

2. Iteration Backlog

From the product backlog, the team will pull the work they plan to do and forward it to the iteration backlog

This is not done by the team manager or stakeholders, but arranged by the team itself.

Agile works best when the team is self-organising

Step 2: SIZE THINGS UP

Assign an approximate effort to each work items

2.1 Estimating User Stories

Once a user story has been written, the team then needs to estimate how much effort it will require to implement – which is helpful in planning an iteration

Estimation Are:

Best guesses

Based on current information

Refined as we go and gain more information

Estimation Challenges:

Too much detail or precision

Designing while estimating

A reluctance to commit

2.2 Steps to a Team Estimation

Start with one user story and place it on a scale – EASY to DIFFICULT

Place the other user stories to the left or right of the first user story, depending on whether they are more or less difficult to implement

Take the time to rearrange the user stories as necessary

Arrange the user stories into columns and assign each column points/score (of relative level of difficulty)

Step 3: SET SOME PRIORITIES

Based on the customer’s list of prioritised tasks, start with the most important first.

Step 4: START WORKING

Work your way down the list and begin delivering value, building, iterating and receiving feedback from the customer along the way.

To track the progress of work, place user stories on a Kanban board and move them along each column as and when progress is made.