Project management methodologies#

Why choose a project management methodology?#

Without a design approach, programmers resort to designing as we go, typing in code, trying what works, and making it up as we go along. When trying to collaborate to make software with others this can result in lots of wasted time, software that only the author understands, components built by colleagues that don’t work together, or code that the programmer thinks is nice but that doesn’t meet the user’s requirements.

- The Alan Turing Institute

Traditional versus Agile#

The traditional approach (Waterfall) argues that the elements of design should occur in order: first requirements capture, then functional design, then architectural design. This approach is based on the idea that if a mistake is made in the design, then programming effort is wasted, so significant effort is spent in trying to ensure that requirements are well understood and that the design is correct before programming starts.

- The Alan Turing Institute

Agile project management is an iterative approach to delivering a project throughout its life cycle. Iterative or agile life cycles are composed of several iterations or incremental steps towards the completion of a project. Iterative approaches are frequently used in software development projects to promote velocity and adaptability since the benefit of iteration is that you can adjust as you go along rather than following a linear path. One of the aims of an agile or iterative approach is to release benefits throughout the process rather than only at the end.

- Association for Project Management (APM)

Traditional x Agile chart

- Figure from Association for Project Management

The Agile Manifesto#

We are uncovering better ways of developing software by doing it and helping others do it.

The Agile principles:

  • Individuals and interactions over processes and tools

  • Working software over comprehensive documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

- Manifesto for Agile Software Development

Agile is not absence of methodology

The Agile movement is not anti-methodology, in fact, many of us want to restore credibility to the word methodology. We want to restore a balance. We embrace modelling, but not in order to file some diagram in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan, but recognize the limits of planning in a turbulent environment.

- Jim Highsmith from The Alan Turing Institute

Elements of an Agile Process#

  • Ongoing design

  • Iterative development

  • Continuous delivery

  • Self-organising teams

Agile methodologies#

There are several methodologies that can be used to manage an agile project, including:

  • DAD (disciplined agile delivery)

  • DSDM (dynamic systems development method)

  • Kanban

  • Lean

  • LeSS (large-scale Scrum)

  • RAD (rapid application development)

  • SAFe (scaled agile framework enterprise)

  • Scaled agile

  • Scrum

  • Scrum of scrums

  • XP (eXtreme Programming)