Monday, December 18, 2006

Backwards Compatibility Requirements

When your company upgrades a product, you and your product manager may concern yourselves with backwards compatibility.

Backwards compatibility refers to the extent to which the upgraded product works with existing ways of using the product. The upgrade may introduce new features and new ways of interacting with the product. But if a user can interact with the new version in the exact same manner and achieve the exact same results as with the old version, then it is fully backwards compatible.

However, backwards compatibility is not an end in itself. It avoids the following problems associated with existing users' lack of familiarity:
  • Relearning/retraining. To use a product that isn't backwards compatible efficiently, a user may undergo a punitive learning curve to get up to speed.
  • Mistakes. A user unfamiliar with the new interface may be more likely to make mistakes while using the product, causing possible physical, psychological, or monetary damage.
  • Fear of upgrading. Even if upgrading would be worth it from a cost/benefit perspective, users may be reluctant to buy or use the new version.
Your product manager should generally avoid making backwards compability a requirement. Instead, the requirements should include measurable constraints on the learning curve and the probability of destructive mistakes. The testing team should create and execute tests that ensure the upgrade meets these constraints before release.

Some degree of backwards compatibility will likely be a part of satisfying these requirements, but designers may find superior ways of satisfying them. For example, a designer may conceive of a new user interface that is so much simpler that it's easier to learn the new way of using the product than it is to use it the old way.

Armed with metrics showing that the learning curve and risk of destructive mistakes are minimal, your sales team has a powerful way of overcoming the fear of upgrading, regardless of whether the upgrade is backwards compatible.

No comments :