When Are Lean Software Requirements Too Lean?
Tenet number two of the Agile Manifesto is frequently quoted to those of us in the business of requirements: "Working software over comprehensive documentation." But what if there's a point of diminishing returns when trimming down documentation? When is lean too lean?
The idea of working software over comprehensive documentation does not preclude the use of any documentation whatsoever. I cringe when I hear people say, "We don't have to write anything down—we're agile!" What we really should be saying is, "We are writing less down, so we'd better make it good." Having the right requirements is critical to the success of a project.
Look at it from the perspective of the person who helps write requirements and acceptance criteria. Doesn't the team want the right criteria? Sure. If the code you're working on is part of an existing, complicated system, doesn't it make sense to have some context around your story to make sure you've got your bases covered?
It only makes sense that lighter documentation with less maintenance required fits in better with lean development methodologies. If your organization is moving to agile from, for example, Rational Unified Process and has mammoth documentation (read: a maintenance nightmare), don't throw it all away in favor of index cards and markers. For the people writing up the new documentation, having the old standby handy as a guide to provide context is helpful for doing the job well.
I'm not advocating using previous documentation as a crutch or an excuse to resist changing the way requirements are written—far from it—but until you've settled on what format the new, lean documentation will take, don't completely discount the usefulness of old requirements. Each individual uses the tools he needs for the job. For those of us responsible for requirements, sometimes that's the old documentation. If nothing else, it makes for great conversation starters: "We originally stated that we would handle situation 'abc' with 'xyz.' Is this still a concern?"
Keep in mind that everyone works differently and embraces agile at his own pace. Remember: "Individuals and interactions over processes and tools." Don't let your process stomp all over your individuals. Allow them to use the tools they need as you coach them into their evolving role. After all, the tools are less important than the individuals.