Imagine you are working on developing a new product for your customers. Your customers have some feature requirements, so you write them down in a chart:

Customer Foo Feature plugh Support quux Frobulator xyzzy Viewer
Customer A ☑️
Customer B ☑️ ☑️ ☑️
Customer C ☑️ ☑️ ☑️
Customer D ☑️ ☑️

Awesome! You certainly want to know what your customers actually need before working on your product!

Which feature(s) should you start on first?

Targeting Top Features First

You might be tempted to look at that chart and say “it’s obvious!”

Obviously you should work on these features first:

  • “Foo Feature”
  • “xyzzy Viewer” (stretch goal)

These are the most commonly requested features.

The NxM Problem

The problem here is that, while you are working on the features that “the most customers request”, you are actually building a product that none of your customers will actually want! Each customer needs their specific combination of features to find the product useful - not just the most popular features in isolation.

Instead, you should focus on one customer first and get them using the product. For example, focusing on Customer B or C would allow you to build several features that work together to solve real problems.

The sooner you actually have a customer, the sooner you can be sure you are building something people actually will use and want.

That doesn’t mean you shouldn’t implement the other features eventually. On the contrary, you must keep those features in mind as you build as to not paint yourself into a corner.

If you are specifically targeting a migration, then you should strongly consider migrating your biggest and most difficult customer first. The one that will stretch your product in the most dimensions (deployment scale, RPS, config complexity, etc.).

Conclusion

This is a hard thing to search for, so I’m hoping “the NxM problem” will be a little easier to describe to someone now. The name refers to the N customers × M features matrix that product teams often face when prioritizing development work.

If you know of a different name for this phenomenon or other references I could link to, please drop me via the comment email link.


Comment via email