YAGNI: Ask about actual scenarios even if the features seem reasonable.

Reasonable feature requests

It's difficult in software development to shift the focus to problems and goals instead of features, features, features. As I've written about before, it's ideal to focus on the value first, and match the features to the value.

Sometimes we encounter feature requests that seem reasonable enough that we don't feel the need to back track to discover the value. This happens for many reasons:

  • We've encountered similar requests in the past, maybe with other projects, and it seems natural to add it to the current project.
  • We make assumptions about the value of the feature and the feature seems reasonable to attain the value.
  • We assume what scenarios would prompt the request and assume these situations exist.
  • Sometimes this all happens subconsciously!

Ask anyways

However, I've been surprised how many times:

  • What was needed in a past project wasn't actually needed and all of the sudden it's being added to yet another project under the assumption that it was of value historically. This becomes a self-perpetuating problem!
  • What was of value in a past project isn't of value in a current project.
  • The value isn't what we assume it to is, the problem we think we are solving isn't the same as past problems or the goals aren't the same as past goals.
  • The situations we assume exist probably don't, and even if they do, they may not be the same magnitude of a problem as in the past and thus might not require the same type of solution.
  • Past solutions (features) may not have been ideal.

Just ask!

Just this week I encountered a request that upon further inspection was prompted by a subset of the problems in a past project. Subconciously, I almost implemented the feature with the full set of problems in mind from the past. By inquiring about situations that prompted the request, we were able to create a solution that was a subset of the past solution! This reduced the time and money necessary to deliver value to the customer.

TLDR: Even if a feature seems reasonable, ask about the situations that prompted it. I've often been pleasantly surprised :)

comments powered by Disqus