Monday, September 11, 2006

Requirements for Product Upgrades

A common mistake when specifying the requirements for a product upgrade is to detail each of the incremental enhancements developers should implement. While such a specification is important, it does not constitute requirements and bypasses an essential prerequisite.

Imagine you have a mature software product that is popular in the marketplace but has a key weakness: customers have difficulty using it the first time. A competitor has included a wizard-based user interface to overcome this problem. Wikipedia defines "wizard" as follows:
A wizard is an interactive computer program which acts as an interface to lead a user through a complex task, using step-by-step dialogs.
So you have a pretty straightforward solution to the problem, and you can document this solution by simply specifying what the wizard will do. But it's not a product manager's job to do so. This activity is a design activity, not a requirements activity.

A product manager should document the problem being solved, not the solution to that problem. In this case, the problem is that it takes too long for a customer to use the product for the first time. The requirement, accordingly, should be a learnability constraint. That constraint should already be included as a requirement for the existing product; the upgrade merely tightens the constraint (specifies a smaller amount of time to use the product the first time).

Often, a product upgrade does not add new requirements. Rather, it simply tightens existing nonfunctional requirements. If you find your product manager specifying a lot of new requirements for a product upgrade, she probably is shirking her responsibilities.

No comments :