For an IT product manager, the proliferation of hardware platforms can be either a blessing or a curse. The enlightened development team sees the multitude of options as an opportunity to reach more customers with their product. Customers expect consistency when using a product, regardless of the platform. The key to successful implementation across multiple platforms is mastering system agnostic requirements.
What is a system agnostic requirement? It is a requirement that captures the business need as it applies to the software but avoids addressing specific system attributes. One of the best approaches to diverse platform implementation that I have seen comes from Netflix. Whether it’s through the web, PlayStation®3, Xbox 360, Roku, iPhone, Android phone, TV or Blu-ray Disc player apps, Netflix has created a consistent experience that a user can easily use. It wasn’t easy to make all of those apps. If a business analyst had to elicit requirements for each implementation, the company may have never finished building any apps at all.
Enter system agnostic requirements. Most non-functional requirements are easy to master as system agnostic. For example:A video must begin playing within three seconds of selection. Each user’s account must be secure.
These make no mention of the specific platform, but the requirements can be met.
Functional requirements are trickier. Many requirements are written for personal computers, so the development team expects the user to click a button with a mouse. A requirement may be:A user can click a button to add a video to the instant queue.
This requirement isn’t system agnostic. It assumes that the user has a mouse and the author of the requirement has tread on design by pronouncing a button to be present. On most of Netflix’s apps, no mouse is available. A user can’t click. It may seem I’m being picky, but this requirement would give the user a terrible experience when implemented on anything other than a PC. This requirement may be better:A user can add a video to the instant queue.
The development team can decide how to best implement this, whether it’s by mouse click, remote control selection, touch screen input, or (not yet implemented) voice commands.
Process requirements also benefit from being system agnostic:After selecting a video, the user can choose to resume playing from the last time point watched or play from the beginning.
This looks like a great system agnostic requirement. That’s because it is. If it were system specific, the development team may save the position of every video on the system running the app, rather than in the cloud. It doesn’t matter which app I use to watch a video; for a consistent experience I expect Netflix to know how far I’ve watched in any given show.
System agnostic requirements are reusable across multiple platforms, so they save time in drafting requirements for each app. And your development team will have enough conciseness to turn out great software.