The Agile Drupalist

  • 0
1024 512 Adrian

At Pop Digital 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 developing in Drupal 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 project.

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

  1. Information Discovery
  2. Requirements 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 Stage Information Discovery
Drupal tasks using Waterfall Documenting the project plan, business requirements, timeline, risk analysis, scope definition.
Drupal tasks using Agile Brainstorming, high-level requirements (i.e. vision, mission statement), elevator pitch, product box, affinity diagramming.
Project Stage Functional Analysis & Information Architecture
Drupal tasks using Waterfall Documenting the functional, non-functional (quality of service), and user requirements.
Drupal tasks using Agile Wireframes, paper prototypes, site map.
Project Stage Design
Drupal tasks using Waterfall Umm. Probably best to avoid Waterfall during design – it’s too subjective.
Drupal tasks using Agile Creating design layouts and visual mockups.
Project Stage Development
Drupal tasks using Waterfall Building the initial architecture and infrastructure. Maybe some of the groundwork for the high-level functional requirements.
Drupal tasks using Agile Building out all of the site features, modules, functionality.
Project Stage Content Creation
Drupal tasks using Waterfall Deciding at a high level what kind of content is going to be added to the site.
Drupal tasks using Agile Adding the actual content during sprints as features are developed.
Project Stage Quality Assurance
Drupal tasks using Waterfall Matching finished site or site components with the functional requirements and overarching architecture. Regression testing.
Drupal tasks using Agile Each story should go through its own set of QA tests to satisfy the Definition of Done before being accepted.
Project Stage Deployment/Launch
Drupal tasks using Waterfall Checklist for launch.
Drupal tasks using Agile Not as effective.
Project Stage Maintenance
Drupal tasks using Waterfall No preference.
Drupal tasks using Agile No preference.

In general, if the project is fixed scope and budget, then you are probably 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.

  • 0
Author

Adrian

Adrian, or AJ, is the founder and Director of Technology of Pop Digital. He has spoken at tech conferences around the world, and published numerous articles about Agile methodologies, UX design, Information Architecture, and Web Development.

All stories by: Adrian