More on Scrummerfall

A couple of comments have led me to think that I didn’t explain what it is.  Let’s review waterfall phases:

  • Requirements specifications
  • Design
  • Implementation
  • Integration
  • Testing
  • Deployment

Each of these has a gated exit, such that to exit one phase, you need to meet certain criteria.  For example, to leave “Design” phase, you have to have your detailed design with estimates signed off by developers, analysts, and the customer.  You cannot enter Implementation until you have finished design.

Scrummerfall still uses a phase-based methodology, but uses iterations for the “Design” and “Implementation” phases.  Testing is done as unit tests during development, but QA is not involved until the actual Testing phase later.

Scrummerfall is easier to introduce in companies heavily invested in waterfall, as it’s only one group (developers) that are actually changing how they work.

Scrummerfall also makes two assumptions that become more invalid and costly the larger the projects are:

  • Requirements don’t change after Design
  • Integration, Testing, and Deployment are best done at the end

Now just because Agile doesn’t have gated phases for these activities doesn’t mean they don’t happen.  Design and requirements gathering still happen, as do release planning, testing, deployment, etc.  The difference is that all of these activities happen each iteration.

This is very tough in fixed-bid projects, which assume that requirements, cost, and deadline don’t change.  There are alternatives to fixed-bid projects, which I won’t cover here, that provide the best of both fixed-bid and time-and-materials projects.

With Agile, you don’t do a “Testing” iteration and a “Design” iteration.  That’s lipstick on a pig, you’re still doing waterfall. 

So how do you avoid Scrummerfall if you’re trying to introduce Agile into your organization?  The trick is to sell the right ideas to all of the folks involved.  If it’s only developers leading Agile adoption, chances are you won’t get too far past TDD, continuous integration, pair programming, and the rest of the engineering-specific XP practices.

Get buy-in from an analyst, a PM, a tester, your customer, and your developers.  You won’t have to convert all of the analysts and PMs, just the ones working on your project.  Remember, each person needs to see tangible business value from the changes you are proposing.  I tend to target management for Scrum and developers on XP, because although it’s easy to get everyone to agree on values and principles, the concrete practices vary widely between the different roles.

For the record