Published on 5 March 2010
This post thumbnail

The decision came down yesterday: our latest Agile/Scrum project will have to produce some rigid waterfall SDLC artifacts. We've enjoyed a "bureaucracy break" for awhile, choosing things like simple wiki pages and working code to manage and communicate designs, test plans, sprint backlogs, and the like. But now we'll have to use some (verbose and redundant) standardized Word document templates for requirements/SRS, designs, code reviews, test plans, test cases, etc.

It isn't the case that waterfall is "all bad" and agile is "all good"; rather, it's easy to forget the motivation for each. First, keep the paying customer happy, then place the emphasis on elegance and "the simplest thing that could possibly work", and then let form follow function. Whether the deliverable is a wiki page, Word document, Visio graph, UML diagram, EA model, xUnit, script, or code, pick the best tool for the job. But don't, for example, use outdated templates simply for standardization's sake. The mindset that emphasizes style over substance is the same one that measures lines of code rather than capability: increasing bulk without adding value.

I sometimes have to combine waterfall and Agile techniques to keep multiple stakeholders and competing interests satisfied. And it doesn't have to degrade to "agilefall" or "wagile"; there are ways to successfully blend the two. For example, go ahead and develop a high level multi-sprint plan and stuff it in Microsoft Project if forced to. But only define sprint goals and high level content in advance. Don't pretend you can predict detailed tasks six months in advance; rather, plan each sprint as you get to it and fluidly adjust the backlog as needed. Go ahead and write that big spec and design document (to satisfy a contract or pre-paying customer) before starting your first sprint; just use a lightweight change control process to quickly include new discoveries.

I suppose "agiley waterfalling" is like running a chute: you plot out your course and pretend you know exactly how you'll do it. But the details of the run will be a wild blend of surprises and adjustments, with some boofs along the way.