The Curse of Extra Offerings

A friend of mine gave me a useful insight: the more options & customizations you offer, the more they’ll demand.

We were working on a payment system, and we faced an edge case where the refund amount could become negative 🗿 Our first assumption was to do MAX(refund, 0) thus allowing only positive values. I decided to ask the stakeholders, just to make sure it was ok. However, the way I asked opened a door for customization… they responded: “It’s okay to have negative refunds (meaning the customer needs to pay an extra amount to complete the cancellation) and we’ve already had some cases in the past! So yes, allow the negative values!”

So, we needed to add the functionality… we compared some ways to do it, and chose the one we (the dev team) thought was the simplest, one that didn’t require refactoring or changing the whole system. After implementing it, the business-minded one among us asked why we did it. We explained how we tried to make it as simple as possible, but he had a simpler way: don’t do it.

He didn’t mean opposing the stakeholders’ idea, but rather to change the business rules a bit so negative refunds don’t even appear. He talked with them, and they agreed.

🏖 No new database tables, no new pages in the dashboard, no new documentation about how our “simple” refund system works, no headaches for employees, and no unforeseen bugs, just by deciding not to do something.

The moral of the story here is, just because you (& your team) can implement things and just because you can offer different levels of customization, doesn’t mean you should. No stakeholder will reject a customization or an option; we all like extra options! Suggesting them will create a lot of new tasks in your project management app, and delay the launch unnecessarily.

I’m not encouraging you to slack off, but focus on delivering the product with a strong core, something that satisfies the stakeholders, and then start working on special features - only if needed.

(Originally posted on my Telegram Channel @UnscriptedCTO)