Sometimes when you’re involved in developing software, a developer offers you a feature or an option “for free”. Most typically, this is part of a framework, plugin, or library that offers this functionality anyway: they view it as easier to leave in than to take out.

So, why not? Everyone loves something for free, don’t they?

Paradox of choice

We all like choice. Imagine you need some jam, and you head down to the shop to get some. But when you get there, they only have one flavor and one brand – you’d probably be disappointed, and wishing they had more.

Strangely though, if there is too much choice, most people can’t decide what to pick. A now-famous experiment with jam took place in a grocery store in 2000. On one day, there were six types of jam for people to sample and buy if they wished; on another day, 24 types of jam to sample and buy. Although more people sampled the jam when there were 24 types, people were 10 times as likely to buy when there were only six choices.

By adding more choices to a software product, you increase the mental effort to use that product. Despite first appearances, that option you got for “free” is making your software harder to use.

Death by preferences

Linked to the paradox of choice is an excess of preferences. If there’s more than one way something can work, it’s easy not make a decision and just include it as another preference. Often, this is driven from a lack of clarity about what problems people have and how they can be solved, or a lack of clear vision about what your product is and isn’t for.

Including more preferences outsources these decisions to your users though – and for most users these are decisions they don’t want to make. They just want stuff that works.

If you’re responsible for maintaining that software in the future, more preferences means more testing, more combinations, and more things to go wrong.

Innovation is about leaving things out

Whatever software we’re developing and whoever it’s for, we want to focus on the most important stuff – the stuff that really helps people achieve things in their life and work. This takes an understanding of what they’re trying to achieve – and why – and a focus on helping them solve those problems.

More choices and more deviations from that focus diminish your ability to concentrate on innovative solutions and products.

"People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things.” Steve Jobs

“…that was music designed by leaving things out – that can be a form of innovation, knowing what to leave out” Brian Eno

Everything competes with everything else

If you’re building great software, you have to be great at saying no. When you’re in charge of deciding what should be in software – whether it’s internal or external – it’s tempting to add something for free, but everything you add competes for attention with everything else you already have (or will ever have in the future).

So when you’re offered that “free” feature or option, think really hard about whether that’s something you really need, and practice just saying no.