The main point of making software is to produce things people want, right? But sometimes saying “no” is important.
I’ve noticed a trend when trolling Atlassian’s bug/feature tracker. There are features requests in there that some users (paying customers!) have been demanding for several years. My favorite example is a feature request to allow admins to disable comments on Confluence wiki posts. The response from the Atlassian employee is fairly sublime, and worthy of reproducing in its entirety:
After much discussion we’ve concluded we won’t be implementing this feature request. Our goal is to continue to simplify the product, by focusing on building for the majority of our customers. Whilst the ability to disable comments on a specific page or blog is a completely valid feature request, we believe it just crosses the line in terms of adding an extra level of complexity to the product and is a use case that isn’t catering for the majority of our customers.
This is a very diplomatic way of saying “Yes, that is a good idea, but no, we won’t build it”. Think about the focus it takes to say this. Some customers will consider this a “must have”, and so Atlassian is almost certainly leaving money on the table. But in the long-term, they’re not adding complexity they don’t want to support. Plus, they may not want to even have clients who can’t live without this feature, thus avoiding the need to fire them.