Monday, April 18, 2005

What makes a requirements document

A Slashdot reader asked what made a good requirements document. The following response was more true to what I've experienced. I thought I would share.
  1. Talk to the various stakeholders. Hold meetings. Get everyone's input on what's the Right Thing To Do.
  2. To the degree these ideas are not the Wrong Thing, do them, even if they're less efficient than you'd like, or are less fun to code. You're going to be giving them a prostate exam with a cheese grater in a couple of steps, so soothe their egos proactively by letting their ideas make it into the final product.
  3. Take the draft to your dev team. Circulate copies, have everyone read it, then have a short meeting--one hour, tops--not to discuss how to do things, but which parts of the design will require a lot of experimentation and fiddling.
  4. If your dev team doesn't already have someone fluent in Corporate Weaselspeak, then get one.
  5. Give your translator this sentence: "We will use our magic powers to accomplish this part of the design document." Have him turn it into a five-page monstrosity that lets every stakeholder think these difficult parts are going to be done their way, without really committing your dev team to anything.
  6. Take the weaselized design doc back to the stakeholders. Your Corporate Weasel's job is to make the stakeholders sign off on it.
  7. The easy and routine parts of the job get done the way the stakeholders want, assuming their way isn't completely braindamaged. The hard parts of the job will be solved by your development team's magic powers. It's right there in the design document.
  8. Bring the project to completion. As you're doing the hard part, write This Is How It Really Works documentation for engineers who are coming after you.
  9. When your project is ready for handoff, make sure to praise the (easy, routine) parts for which you used Marketing's ideas of how the software ought to be written.
  10. Gloss over the fact that you did the hard part via magic powers. The other stakeholders probably don't care. You're giving them a beautiful bullet point for their end-of-year performance eval. That's what they care about at this point.
  11. Move on to the next project. ...

Is all this weasel office politics? Damn straight. On the other hand, it's weasel office politics meant to shield your development team from unnecessary weasel office politics. As much as we hate weasel office politics, sometimes it's necessary.

1 comment:

Anonymous said...

some how i think the occupation listed as "juggler" is misleading. true you are an accomplished juggler but of more things than just small inanimate or flaming things.i think you should amend the occupation to read "father,husband, juggler,ect..." although Father encompasses all the above.your talents are not limited to one small word. ......GOD BLESS!