What is agile software development?

Today, the concept of prototyping has been extended across the whole lifestyle for developing website functionality or software applications where it is known as agile software development. The goal of agile development is to be able to create stable release more frequently than traditional development methodologies ie. new functionality will be introduced through several release each month rather than a more significant release every few weeks, months or even years. The approach is sometimes known as ‘permanent beta’. Another difference with agile development is the emphasis on face-to-face communication to define requirements rather than detailed requirements specifications.

Scrum

Scrum is a methodology that supports agile software development. Scrum involves stakeholders including the scrum master who is effectively a project manager, the product owner who represents the stakeholders such as the business owners and customers and the scrum team which includes the developers.

Scrum is based on focused sprints of 15-30 day period where the team creates an increment of potentially releasable software. Potential functionality for each sprint are agreed at a sprint planning meeting from product backlog a prioritised set of high-level requirements.

The sprint planning meeting is itself iterative with the product owner stating their requirements from the product backlog and the technical team then determining how much of this they can commit to complete during the forthcoming sprint. The term ‘scrum’ refers to a daily project status meeting during the sprint.

Agile Manifesto

The principles of agile development are encapsulated in the Agile Manifesto which was agreed in 2001 by proponents of previous rapid development methodologies including the Dynamic System Development Methodology and Extreme Programming. The Agile Manifesto is useful in illustrating the principles of agile programming it contrasts with traditional approaches. The text of the manifesto is:

We are uncovering better ways of developing software by doing it and helping other do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value items on the left more.

Adapted from

Chaffey, D. and Ellis-Chadwick, F., 2012. Digital marketing: strategy, implementation and practice (Vol. 5). Harlow: Pearson.