Monday, July 21, 2008

Benefits Traceability

One of the goals of creating user stories is that each story produces a customer benefit. After all, if the customer doesn't benefit, why do it? This covers stories from features customers want to stories that make support more efficient (the benefit to the customer being that support will respond in a more timely manner). When you get into it, though, sometimes it's hard to remember whether a change will really apply to that story.

Enter benefits traceability. Much like a standard requirements to design to test cases traceability matrix, a benefit trace is intended to help direct you from customer benefit to actual code change.

For example, let's take a story that will result in us changing the scheduler in use in the OS (this is a particularly low-level change). And let's trace that back to the customer benefit that is, we hope, why we're doing the story in the first place:
  • The change: Switch to a faster scheduler
  • A faster scheduler will be able to schedule rebuild operations more quickly
  • Faster rebuild operations give us the ability to remove data from degraded hardware more quickly and get it on to safer (i.e., non-degraded) parts of the storage system.
  • Less time spent on degraded hardware lowers our risk that the hardware will die completely or that another piece of hardware will die while before the rebuild is complete.
  • Less time performing rebuilds makes our exposure to (inevitable) hardware loss much lower
  • Lower exposure to hardware loss makes our system safer
  • The Benefit: The mean time to data loss increases, and our customers' data is safer.
Without the benefit trace, we might have pushed the story off. After all, who really cares about the scheduler? And now we know: this change will make our customers safer, and that's a very important thing in an enterprise archive product.

So sure, Extreme Programming doesn't really have the concept of a formal traceability matrix, but it does have the idea of understanding why you're doing things. So be sure you understand not only the action, but the benefit, and why the action gives you the benefit.

No comments:

Post a Comment