#!$% Features

Some would say features are the life blood of an application. They’re not.

Features are bloat. Features cause bugs and require maintenance. Features get in the way of value. Delete features, build something that matters.

Way back in the day, I had a product. It allowed tagging inventory with a location in the warehouse and made pick lists. I kept getting feature requests. “Can you download the image from Amazon so we know the product is the right product?” Simple enough.

Well, it turns out people that create “Universal Product Codes” (UPCs) for their product suck at it. So, a CD that was Creed was also a vacuum cleaner was also a bar of soap. These people are stupid. I was even more stupid for trying to be smart with it.

And thus, I destroyed the feature. People got mad, but they also stopped putting vacuum cleaners in inventory and cussing me out for that.


Value is a tricky thing. What is value and how do you provide it without feature bloat? Well, let’s start by defining a few things:

Feature bloat: features that exist for marketing purposes but serve no purpose for the majority of users.

Value: a tangible asset.

When we write software, we often forget who our users are and their needs; instead think about what we need or want. Sometimes, we only think about what would be “cool.” For example, Microsoft Word. Who needs all those features? It’s just bloat. Until you need to use Mail Merge to send off wedding invitations or you want to write something half-professional, like a resume. You quickly realize Microsoft Word is for professionals.

Then you realize Google Docs gets you most of the way there and you don’t need all those features. So, you use Google Docs until you need Word.

Like I said, value is a tricky thing. Companies like Microsoft know some people use Google Docs too. They don’t care, those people aren’t their customer, right now. They will be though, just give it time …

Windows 10 is free, did you know that? It doesn’t require activation or a key. It will just run and slightly annoy you to purchase every so often and show you ads. They know some people won’t purchase until they have to. That’s ok, because they want people to use their product and be familiar with it. They want people to buy it, eventually. It just doesn’t need to be right now.

When we build products, we have to take away features. The only thing we should be adding is value, but that requires knowing our customers. Which is a whole ‘nother post…