Agile Software Development

https://en.wikipedia.org/wiki/Agile_software_development

The modern IT Agile movement started in the 1990’s with practices adopted from incremental (1957) and adaptive (1974) software development practices, combined with lean thinking and lean practices from the manufacturing industry (1980’s).

These practices were tailored for the operation of small software development teams (not support), which branched into new frameworks and methodologies such as unified process, DSDM, Scrum, Crystal Clear, Feature-Driven Development, Pragmatic Programming and Extreme Programming (XP)

In 2001, The Agile Manifesto (https://agilemanifesto.org/) was signed and published online by 17 software professionals who had helped create these frameworks and methodologies. Whilst each signatory practiced agile differently, the manifesto served as a common ground on which they all could align upon a common purpose, ‘pleasing customers through working software’.

The Agile Manifesto is comprised of 4 values and 12 principles, which all agile development frameworks and methodologies aim to align with. Due the origin and purpose of the manifesto the overarching theme is to provide working software quickly and reliably.


The benefits of Agile Software Development

  • Customer-centric
  • Faster feedback cycle
  • Early and predictable delivery
  • Flexible prioritisation
  • Predictable resource costs
  • Less cost and risk to deliver value
  • Increased team empowerment

The limitations of Agile Software Development

  • Requires leadership and dependent teams to adapt to the agile teams way of working, but not does explain how.
  • Does not always include an end-to-end lifecycle i.e. from the customer to the customer.
  • Inadvertently caused a divergence within IT:
    • Traditional IT – focused on low-cost
    • Agile IT – focused on high-velocity
  • Designed for software development, however not all software applications are well-suited for agile software development.