In my three years of doing business analysis for Cobalt, I’ve seen over a thousand CRM software requirements for our Certification Dynamics and Membership Dynamics customers. Many are like this one: “Allow contacts to update personal information: phone number, email address, etc.”
Oh, et cetera.
You are the bane of my business analyst existence. “Etc.” leaves gray area in a requirement that at best can cause unnecessary discussion of an otherwise straightforward requirement, and at worst can lead to significant scope increase on a project – bad news!
Go With What You’ve Got
There are several fair and worthy reasons to use “etc.” in a requirement. At the time of writing the requirement, the goal could be to just get down enough information to get started; to make a rough sketch. You may not actually know exactly what you want, but have a pretty good idea. If you have a pretty good idea of what you want, there’s no reason to be held up on the details – especially if you are using an agile process. So you use et cetera. And by et cetera, you mean “other items with similar characteristics,” or “you know what I mean.”
You know what? I’m with you. I do know what you mean. The problem is, code doesn’t.
So at some point, it’s time to get down to the nitty-gritty and root out the murky depths of “etc.” If you and your team can do this before the requirements get into the documentation phase, you will save time and money on your project – woo!
So, here is some advice for how to do that: Go with what you’ve got. The requirement above could be rephrased like this: Allow contacts to update personal information: phone number, email address.
Great! We will spend about two minutes establishing where this information will be displayed and then the requirement is ready for development. Of course, you could realize after the fact that you want more information to be available for update – such as home address, LinkedIn profile, and job title. That’s OK! That’s what the agile development process is specifically designed to address. Go ahead and tell us that and we’ll add that information to the profile page during the next iteration.
This approach saves time because we get the first version of the page in front of you sooner. It’s usually easier to see what’s missing from a page when you can actually look at it and play with its features than when you have to imagine it. Oftentimes, people imagine what they want on a page, have lengthy discussions about it, and then when the page is actually in front of them, they realize they left out something important. You can cut out the first time-consuming discussion by just going with what you’ve got at first and making incremental changes.