Agile software development was introduced in the late 1990s and came into its own in 2001 with the
issue of the Agile Manifesto. Agile development methods have continued to grow in popularity in
the 21st century. In essence, agile development involves dividing software development tasks into
small, manageable units, and tracking progress with regular scheduled meetings of all parties. Agile
utilizes abbreviated work cycles, so problems are identified earlier, and can thus be solved faster.
The incremental nature of agile methods builds in more flexibility than the old-fashioned “waterfall”
software development methods.
At most enterprises, agile development is structured as series of “sprint cycles.” Virtually every aspect
of the development process, including technical requirements, design and so forth, are continually
revisited throughout the lifecycle of the project. When a team re-evaluates the direction of a project
once a week or so, you catch problems and make changes to get back on track before significant time
and resources are expended.
Agile Development in Drupal
A growing number of Drupal development projects are undertaken using agile methods today. The
advantages and flexibility of agile development are simply too great to ignore.
Flexibility — Furthermore, Drupal and agile share a couple of basic philosophical similarities that make
agile methods ideal for Drupal development projects. First, both agile and Drupal emphasize flexibility.
Agile achieves flexibility through short iterations and Drupal through always providing modularity,
extensibility and maintainability. This shared focus on flexibility means that well-designed Drupal
projects applying agile methodologies can complete website development projects in record time.
Continuous Quality Improvement — CQI is another key principle at the bedrock of both Drupal and
agile development methods. CQI is built into Drupal as on open-source CMS. Drupal has thousands
of developers working on improving it — developing mobile, providing support for social media and
developing other useful features. Quality control efforts can be much more closely monitored (and
adjusted as necessary) with the short analysis cycles and frequent reassessments required with agile
Reusable Code — Avoiding reinventing the wheel is a big part of agile development, which means taking
advantage of reusable code as much as possible. Drupal has a huge library of modules that can be used
to add various features. The needs of almost any project can be met with Drupal core and the more than
16,000 available add-on modules.
Version Control — Version control is another important part of an agile development process. Version
control makes reverting back to earlier versions simple if major problems crop up with new code.
Version control is also important for keeping track of developer changes and prevents one team
member from overwriting another’s work. Git, an open source version control software program, makes
version control a snap with Drupal.