← All posts

My Thoughts on Removing a Feature Used by 8% of Customers

By Alvin Hartono

I recently came across a story about a developer who made a bold decision: they removed a feature from their SaaS product that was being used by about 8% of their customer base. The kicker? It was a feature that was causing them a ton of headaches in terms of maintenance and development. This got me thinking about the delicate balance between serving existing users, managing technical debt, and focusing on future growth.

The Context: A Maintenance Nightmare

Let’s dive into the specifics. This feature, while used by a seemingly significant portion of the user base (340 monthly active users), had become a major pain point. The codebase was described as "spaghetti," and every update risked breaking it. The developer estimated that they were spending over 12 hours each month just keeping the feature afloat, with no real possibility of improvement without a complete rewrite. Sound familiar to anyone? I know I’ve been there.

The Decision: Pulling the Plug

Faced with this situation, the developer decided to kill the feature. Now, this isn't a decision to be taken lightly. Removing functionality, even if it's problematic, can lead to user churn and negative feedback. However, their reasoning was sound: the cost of maintaining the feature far outweighed the benefits, especially considering the limited usage and the potential for instability.

The Execution: A Masterclass in Damage Control

What impressed me most was the way they handled the removal process. This wasn’t a sudden, unannounced change. They gave users a 60-day heads-up, explaining the reasons behind the decision. They also offered to help users migrate to alternative solutions and provided export tools to ensure nobody lost their data. Furthermore, they personally reached out to the heaviest users to address their concerns directly. That's how you handle a tough situation with grace and professionalism.

My Take: A Necessary Evil?

So, what do I think about all this? Honestly, I think it was a smart move. Here’s why:

* Prioritizing Core Functionality: Every SaaS product has limited resources. By removing a feature that was consuming a disproportionate amount of time and energy, the developer freed up resources to focus on improving core functionality and developing new features that would benefit a larger segment of the user base. It's about strategic allocation. Where can your team make the biggest impact? * Reducing Technical Debt: Technical debt is like a credit card with an ever-increasing interest rate. The longer you leave it unaddressed, the more it will cost you in the long run. By removing the problematic feature, the developer effectively paid off a chunk of their technical debt, reducing the risk of future problems and improving the overall stability of the product. Trust me, technical debt can sink a company if you let it get out of hand. * Focusing on Scalability: A codebase riddled with spaghetti code is a nightmare to scale. By removing the problematic feature, the developer made it easier to maintain and scale the product in the future. This is crucial for long-term growth. Can you imagine trying to onboard new developers into that mess? Good luck.

What I Would Do Differently (Maybe)

While I agree with the developer's decision, there are a few things I might have considered doing differently:

* Usage Analysis: Before pulling the plug, I would have conducted a more in-depth analysis of how users were actually using the feature. Were there specific use cases that could be salvaged? Could the feature be simplified or streamlined to reduce the maintenance burden without completely removing it? Sometimes, a compromise is possible. * Phased Rollout: Instead of a 60-day notice, I might have considered a phased rollout. Perhaps start by limiting access to the feature for new users, while still allowing existing users to continue using it for a limited time. This would give users more time to adjust and find alternatives, while also gradually reducing the maintenance burden. * Open-Source Option: If the feature was truly valuable to a subset of users, I might have considered open-sourcing it. This would allow the community to maintain and improve the feature, while freeing up the developer's resources. This isn’t always feasible, but it’s worth considering if there’s a dedicated group of users who are passionate about the feature. * 'Sunset' Branding: I would have named it something like "Sunset Feature" internally and externally so that it can be easily identified and tracked. This would have made the communication clearer and more transparent to both the team and users.

The Angry Emails: An Inevitable Consequence

The developer mentioned that they received six angry emails after removing the feature. This is an inevitable consequence of any major change. You can't please everyone. The key is to respond to these emails with empathy and understanding, explaining the reasons behind the decision and offering support to help users find alternatives. Remember, even angry customers are valuable. They care enough to complain, which means they're still invested in your product to some degree.

The Bigger Picture: Prioritization and Focus

This story highlights the importance of prioritization and focus in SaaS development. It's easy to get caught up in building new features and chasing shiny objects, but it's equally important to maintain a healthy codebase and focus on the core functionality that provides the most value to the majority of users. Sometimes, that means making tough decisions, like removing a feature that's no longer serving its purpose. Remember, you're building a business, not a museum of features.

Actionable Takeaways

So, what can you learn from this? Here are a few actionable takeaways:

1. Don't be afraid to kill features: If a feature is causing more problems than it's worth, don't be afraid to remove it. Just make sure you do it thoughtfully and respectfully. 2. Prioritize technical debt: Address technical debt early and often. The longer you wait, the more it will cost you. 3. Focus on core functionality: Focus on building and improving the core functionality that provides the most value to the majority of users. 4. Communicate clearly: Be transparent with your users about any major changes. Explain the reasons behind the decision and offer support to help them adjust. 5. Track feature usage religiously: Don't wait until a feature becomes a massive problem. Track its usage from day one. Understand what features are used, by whom, and how often. Use this data to inform your roadmap and make informed decisions about feature pruning. 6. Get feedback before building: Instead of building a feature and hoping people will use it, get feedback from your users *before* you start coding. Use surveys, interviews, and user testing to validate your ideas and ensure you're building something that people actually want.

Ultimately, the decision to remove a feature is a strategic one that should be based on a careful analysis of the costs and benefits. There's no one-size-fits-all answer. But if you're facing a similar situation, remember that sometimes, less is more. Cutting out the dead weight can free you up to focus on what really matters: building a sustainable and successful SaaS business.

Keep reading