The Two Kinds of Features in Software

My biggest pet peeve is when when I'm talking to someone about a product, and they recommend a feature in the form of: "It would be cool if..." When I hear that, I usually just smile and let the person finish, then I tell him this: There are two kinds of features in software: useful and non-existent. Although it's a nice side effect, "cool" features are not the kinds of things people really need. Above all else, a feature should be useful, otherwise it shouldn't be built at all. If a feature in your product has lost it's usefulness, it should be removed. A UX designer named Jon Bolt discussed introducing new "features" as adding complexity, whereas most of us think of it as adding functionality. When we start piling on features, the product gets more and more complicated, so it's important to make sure every addition is worth the added complexity. Here are some traits of a useful feature:

Ties directly back to your customer's bottom line

This one is my favorite. In many ways, return on investment (ROI) is the ultimate measure of usefulness. If you put $1 into a machine and get $2 back, it's very clear that the machine is useful. This is a great metric for the usefulness of an entire product, but it's also important to fine-tune this metric to individual features, at least for internal auditing.

Significantly decreases the time it takes to do a repetitive task

The two magic words here are "significantly" and "repetitive." Additional features add complexity, so we need to get the most bang for our buck. Trying to decrease the time spent on every task is usually a design headache and leads to clutter.

Gives the answer to a pressing question

Very plainly: if you're directly solving the customer's problem, you're providing value. Keep doing that.

Saves lives

This is a pretty obvious one, but I didn't want to leave it out. If you're in the business of saving human lives, every improvement toward that goal is useful. We can only hope that builders in that field of work take useful features even more seriously than the rest of us. Let me know if you think I left any useful feature traits out!