Agile Development with Drupal 7

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

methods.

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.