Agile Approach

Agile is a term used to describe approaches to software development emphasizing incremental delivery, team collaboration, continual planning, and continual learning. The term “Agile” was coined in 2001 in the Agile Manifesto. The manifesto set out to establish principles to guide a better approach to software development. At its core, the manifesto declares 4 value statements representing the foundation of the agile movement. As written, the manifesto states…

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

This does not imply the items on the right side of these statements aren’t important or needed; rather, items on the left are simply more valued.

Agile methods and practices

It’s important to understand that agile is not a “thing” … you don’t “do Agile”. Rather, agile is a mindset. A mindset that drives an approach to software development. There’s not one approach here that works for all situations, rather the term “Agile” has come to represent a variety of methods and practices that align with the value statements in the manifesto.

Agile methods (often called frameworks) are comprehensive approaches to phases of the software development lifecycle – planning, execution, and delivery. They prescribe a method for accomplishing work, with clear guidance and principles.

Scrum is the most common agile framework (and the one most people start with). Agile practices on the other hand, are techniques applied during phases of the software development lifecycle. Planning Poker for example, is a collaborative estimation practice designed to encourage team members to share their understanding of what “done” means. The process is quite fun, and has proven to help foster teamwork and better estimates. Continuous Integration (also known as CI) is a common agile engineering practice where code changes are integrated into the main branch frequently. An automated build verifies changes, leading to a reduction in integration debt and a continually shippable main branch. These practices (like all agile practices) carry the “Agile” label, because they are consistent with the principles in the agile manifesto.

© 2018 |