The Agile Drupalist

December 19
blog author

Appno Blogger

Appnovation Coop

At Appnovation we work with clients using both Waterfall and Agile methodologies, which presents unique challenges when using Drupal as the chosen web technology. Ok, ok you got me... Agile isn’t a methodology, it’s a concept or philosophy. In which case we use Scrum or Kanban as methodologies when working in Agile. But the interesting thing about Drupal development is that it lends itself quite well to a hybrid framework - a merging of both Waterfall and Agile practices.

I’ll apologize right now that I’m not going to be explaining Waterfall or Agile in any detail in this article - for this Wikipedia is your best friend (and Google of course). Instead I’m going to jump right in and discuss where each practice can most effectively be employed during the development lifecycle on a Drupal development project.

The following points are based on a lifecycle that progresses along the following path:

  1. Information Discovery
  2. Functional Analysis & Information Architecture
  3. Design
  4. Development
  5. Content Creation (i.e. adding content to the site)
  6. Quality Assurance
  7. Deployment/Launch
  8. Maintenance
Project StageInformation Discovery
Drupal tasks using WaterfallDocumenting the project plan, business requirements, timeline, risk analysis, scope definition.
Drupal tasks using AgileBrainstorming, high-level requirements (i.e. vision, mission statement), elevator pitch, product box, affinity diagramming.
Project StageFunctional Analysis & Information Architecture
Drupal tasks using WaterfallDocumenting the functional, non-functional (quality of service), and user requirements.
Drupal tasks using AgileWireframes, paper prototypes, site map.
Project StageDesign
Drupal tasks using WaterfallUmm. Probably best to avoid Waterfall during design - it’s too subjective.
Drupal tasks using AgileCreating design layouts and visual mockups.
Project StageDevelopment
Drupal tasks using WaterfallBuilding the initial architecture and infrastructure. Maybe some of the groundwork for the high-level functional requirements.
Drupal tasks using AgileBuilding out all of the site features, modules, functionality.
Project StageContent Creation
Drupal tasks using WaterfallDeciding at a high level what kind of content is going to be added to the site.
Drupal tasks using AgileAdding the actual content during sprints as features are developed.
Project StageQuality Assurance
Drupal tasks using WaterfallMatching finished site or site components with the functional requirements and overarching architecture. Regression testing.
Drupal tasks using AgileEach story should go through its own set of QA tests to satisfy the Definition of Done before being accepted.
Project StageDeployment/Launch
Drupal tasks using WaterfallChecklist for launch.
Drupal tasks using AgileNot as effective.
Project StageMaintenance
Drupal tasks using WaterfallNo preference.
Drupal tasks using AgileNo preference.

In general, if the project is on a fixed time and budget, then you are better off being more Waterfall. If the project has a fair amount of uncertainty and the end goal isn’t clear at the start, Agile can often help you get to a better result. Agile is better at dealing with changing requirements and adding features later on in the process. Having said that, however, you still need to be careful. A changed requirement that involves changing a Content Type that has a trickle down effect on the entire site architecture can be a huge headache.

Of course, the type of methodology you adopt may depend significantly on your client. Some clients may request Agile without really understanding what Scrum or Kanban really are. In this case a so-called “Agile-fall” or “Scrum-fall” methodology might be appropriate. The Project Manager can lay out the project plan in a Waterfall type strategy, but manage the team with user stories (along with story points, velocity, sprints, etc.).

Hopefully this article gives you some insight and recommendations for helping your next Drupal project be the best one yet! Happy Drupalling.