I've found a few techniques which work well to reduce the overhead of incremental support requests.
Your goal should be to keep your customers reasonably happy while focusing as much engineering and PM time on feature work that will apply to the broadest possible audience and deliver the largest ROI to your customers.
In practice, this means convincing many customers to put off (perhaps indefinitely) most of those customized requests in exchange for fewer, more generalized, and ultimately more valuable feature work you'll deliver down the road.
Getting your customers on board is hard. But here are a few a few techniques I've had success with many times.
- Generalize wherever possible so the 80% will care too. You can often take "custom" requests from top customers and generalize them into something that applies to a wider customer base. If you have to do something for your largest customer, try really hard to figure out how to make it add value for everyone else. If your top dog customer pushes back on generalizing, it often helps to point out that features built for one customer never work as well as features built for everyone, that have more eyeballs ensuring quality, more users asking for improvements, etc. Smart customers often won't want custom features -- as long as you gently educate them about why custom features are bad for them too.
- Know your customer directly, and especially their decisionmakers. You should be in regular, real-time (calls and ideally visits) contact with your top customers. Don't wait until they call support to complain! You should know what keeps them up at night. You should know their top business problems, not just their team's minor gripes with your product this week. Get to know the decisionmakers who actually drive upgrades and cause churn at that customer-- and understand how their needs might be different (and more important!) than the employees using your tech every day. Know how you can help make your champion look smart and get him/her promoted!
- Solve problems, not support tickets. Uplevel the discussion with the customer. Understand why they're asking for a particular feature or report or change. See if they've tried other ways to solve the problem. Understand the business process that led to the support ticket. Understand if this is a really big deal or only a minor annoyance. If you have a feature in the roadmap that may address the problem, show them a demo or screenshot, ask for their feedback, whatever you can do to align this incremental custom request with a larger and more generalized thing.
- Code as last resort. As technology experts, sometimes we always think that technology is the solution. Often it's not. The answer to the customer's problem might not require changing the product. It might be a blog post, or help video, or FAQ, or other cheaper artifact. It might be training a customer yourself about how to use an advanced feature. Or training your support team. Your development team will love you when you take work off their plate, and your customers will love you if you deliver faster solutions that don't require a product release.
- Don't say "no". Instead, ask "what first?". Saying "no" to individual requests is a bummer for the customer. Humans hate being told "no". Instead, bring the customer into your world where there's no yes or no, only priorities. Deal with requests in bulk, not one at a time. Seeing the full list helps the customer understand why you can't do everything at once and it delays reckoning with the lower-priority items that may never need to get built.
- Include your roadmap in any prioritization discussion with the customer. Never have a prioritization discussion with a customer about incremental requests without throwing your whole roadmap into it. Help the customer internalize that if they get 10 minor incremental fixes, then it'll add months of delays to get that cool feature they've been drooling to get since they signed up a year ago! Don't be rude or act like you're changing the subject, but realize that most customers need-- and appreciate-- help getting out of the weeds so they can focus on more important business problems that take longer to solve.
- Don't say "no". Instead, let your customers prioritize.
Get the largest possible list of requests and the largest possible group of stakeholders together and ask them to prioritize the list rather than you doing it. This forces different people at the same customer to work together and come to consensus. And it means you're not the bad guy when Dave in IT gets his feature on top and Bill in Finance gets the bottom. That doesn't mean that all of Dave's asks get in the product, but it at least lets you focus on the top few things and defer worrying about the rest for a while. For very important customers, invite your stakeholders to a conf call or in-person meeting and facilitate. These meetings are magic; they often lead to fast consensus because no one wants to beat up on their co-workers in public like they beat up on you 1:1! - Get your customers together! If you can, get your customers together in one place (physically or virtually) for an "advisor's group" and get them to prioritize your roadmap and any incremental improvements. In other words, take the "one customer" prioritization ideas above and scale them out to your top strategic customers. Groups of senior decisionmakers often do a great job at helping you identify the most important things, and they don't want to look dumb in front of their peers by focusing on little things. Plus, each individual customer may want to make your company their servant, but the group overall more than anything wants you to be successful and to stay in business, otherwise everyone loses. Some industries are too competitive or too busy to make this work, but when it works it's magic. Your customers become a team of cheerleaders rooting for your success. Hint: if it's in-person, you'll need to pay for hotel & dinner. Don't be cheap!
- Always show progress. If you can't deliver all 10 things the customer asks for, deliver 1 this quarter and tell them about it. Deliver 1 next month and tell them about it. And so on. Any time you have good news about anything they want moving through the release, let them know. Humans love progress bars vastly more than a spinning wait cursor or blank screen. Be a progress bar!
- Prove that you understand how important the problem is, even if you can't solve it yet. How you communicate with and relate with a customer often matters as much as what and when you deliver. An enterprise customer has often made a career-risking bet on your product. The biggest fear of your customer isn't that you'll be late. It's that you'll ignore them and *never* solve the problems your sales guy said you would-- just like every other enterprise software company since the dawn of time. If you can't solve the problem right now, at least spend the time with the customer so that they know that you understand the problem and really care about will solving it in the future. SaaS is not about today's tech, it's about the promise of a better future. Make them believe!
Of course, you'll do all these things above and you'll still get railroaded into custom work. It happens. The key is to reduce the amount and impact of that custom work on the rest of your business. Good luck!