Using a Wiki for Requirements Management?

Zaffiro picture Zaffiro · May 11, 2009 · Viewed 7.8k times · Source

I have been looking for a collaborative tool for developing functional specifications. I am looking for the ability to:

  • Have multiple users contribute to the specification.
  • Provide some form of traceability, which could be done manually if needed.
  • Provide users with the ability to add comments and notes.
  • Upload and display Visio documents
  • Upload and display mockup screens using Balsamiq Mockup.

My initial impression is that using a wiki could be a good tool for this task. Does anyone have experience with using a wiki for creating functional specifications? What would be the pros and cons to using a tool like this as opposed to a requirements management tool?

Your input is greatly appreciated!

Answer

Bill Karwin picture Bill Karwin · May 11, 2009

It's possible to do what you describe, to develop requirements in a collaborative way, in spite of using a wiki. Nothing about the wiki paradigm assists in this process.

I managed a wiki on the Zend Framework project to track proposals for components. They're still using it. Proposals are different from functional specifications, but the usage is similar enough to your question that I think this is relevant.

A wiki doesn't take care of itself. Unless you have someone responsible for managing it and making sure there is some structure and consistency, it quickly becomes a mess. The real-world analogy would be to hand each of your team a blank sheet of paper and tell them to write up their part of the requirements. Problems with this are:

  • Every contributor has to make up their own document structure, and write about different things in a different order. So it's impossible to compare one page to another.
  • There's no "index page" to organize all the disparate contributions. No one wants a page to "fall through the cracks," but in a wiki that's the default destiny of any page as soon as it's written.
  • There's no feedback loop to make sure the writing actually gets done.

The way to make it work is to apply some process to the project, and use the wiki in accordance with that process.

  • Give people the ability to create a new page in the wiki, but only through an interface that automatically links the new page into the right index.
  • Define a lifecycle for documents, so they are sure to be drafted, reviewed, and approved at the appropriate stages.
  • Provide a template for a new page. Provide the section headings that you need in each of these pages, and make part of the review process a confirmation that head section has been filled out adequately.