An Introduction To: Agile Software Development

Claire Donald’s 5-Minute Beginner’s Guide to Agile Software Development

SheCanCode
SheCanCode
5 min readNov 30, 2017

--

So what is Agile? According to the Agile Alliance, Agile is: “The ability to create and respond to change in order to succeed in an uncertain and turbulent environment.” This is especially important when building software as it is inherently unpredictable. Creating software is a bespoke process and not a commodity skill. Therefore methods that allow quick feedback are vital.

Agile Software Development is an umbrella term which is used to describe a set of methods and practises to deliver frequent value to customers. At the core of Agile, self-organising and cross-functional teams use practices appropriate to their context to create solutions through collaboration.

Image: Taukir Hasan

A Short History of Agile

During the late 1990’s a variety of different software development methodologies began to increase in popularity, each having its own set of ideas. However, each of approaches had common overlaps emphasising:

  • Collaboration between the development team and business stakeholders
  • Frequent delivery of business value
  • Small, self-organizing teams
  • Innovative ways to create, test and deploy code

The term “Agile” was applied to this collection of methodologies 21 years ago in 2001 when 17 software development practitioners co-located in Utah to debate and share their various approaches to software development to create the Agile Manifesto

In his video, Ken Schwaber, co-creator of Scrum and an original member of the group signing the Agile Manifesto discusses how it came about:

A Short History of Agile

During the late 1990’s a variety of different software development methodologies began to increase in popularity, each having its own set of ideas. However, each of approaches had common overlaps emphasising:

  • Collaboration between the development team and business stakeholders
  • Frequent delivery of business value
  • Small, self-organizing teams
  • Innovative ways to create, test and deploy code

The Agile Manifesto resulted in an agreed set of 4 values and 12 principles between the group, which form the basis of Agile Software Development and are still in common use today.

Glossary — Key Agile Concepts

Image: LeanKit

Kanban

Kanban is Japanese for “visual signal” or “card.” Kanban helps you harness the power of visual information by using sticky notes on a whiteboard to create a “picture” of your work. Seeing how your work flows within your team’s process lets you not only communicate status but also give and receive context for the work.

How Kanban Works:

  • Visualize Work
  • Limit Work in Process
  • Focus on Flow
  • Continuous Improvement

A simple free tool to get started with your own Kanban Board is Trello.

For more information regarding Kanban and its application have a look at LeanKit or Everyday Kanban.

Image: Scrum Framework Poster

Scrum

Scrum is a simple framework for effective team collaboration on complex software projects. The Framework is based off The Scrum Guide which Scrum co-creators Ken Schwaber and Jeff Sutherland have written to explain Scrum clearly and succinctly.

Image: Scrum.org

Sprint

A sprint, also known as an iteration, is a short (ideally two to four week) period in which the development team implements and delivers a “done” product increment. A new Sprint starts immediately after the conclusion of the previous Sprint.

Image: Atlassian Support

Backlog

A backlog is a list of features or technical tasks which the team maintains. The backlog is the primary point of entry for knowledge about requirements, and the single authoritative source defining the work to be done. The backlog is expected to change throughout the project’s duration as the team gains knowledge.

Image: Better Projects

User Stories

In consultation with the customer the team divides up the work to be done into small pieces called ‘user stories’. Each story should be independent and is expected to produce a contribution of value to the overall product.

Find Out More

Learn more about Agile Software Delivery by:

1: Watching the following Videos:

2: Reading these articles and books

3: Attending a certified training course

  1. Search for a local Meetup and hear from an Agile expert
  2. Approach an Agile Coach in your organisation to learn more

Let me know if you would like to find out more!

Claire Donald is a Project & Program Manager with over 15 years’ experience delivering IT infrastructure and application projects using traditional, agile and continuous delivery methods. She has a high tolerance for ambiguity and has worked within fast paced and high pressure environments, taking an entrepreneurial approach. Claire is currently completing an Executive MBA with Surrey Business School.

Follow Claire: LinkedIn | Twitter

--

--

SheCanCode
SheCanCode

SheCanCode’s Community Mission is to work together to help attract, engage and encourage more women to enter, remain, and excel in the tech industry.