(un)features

Jason Fried from 37signals gave a great talk at startup school last month. At one point he said "software has no edges." He took a normal, everyday bottle of water and pointed out 3 features:

  1. The bottle held the water.
  2. The lightweight plastic made it easy to carry, and you can tell how full it was by picking it up.
  3. The clear bottle let you see how much was left and what was in it.

If you added a funnel to help pour the water, that might be useful in 5% of cases, but it would look a little funny. Then imagine you attach a paper towel to each funnel for when you spill. Your simple water bottle is now a monstrosity.

The clear edges of physical products make it much harder for feature creep to happen. But in software feature creep happens, and happens a lot.

A proposal to fight feature creep

How do you fight feature creep in software? Here's an idea: do not put each new feature request or idea on a to-do list. Instead, put them on an (un)features list.

An (un)features list is a list of features you've consciously decided not to implement. It's a well maintained list of things that might seem cool, but would detract from the core product. You thought about implementing each one, but after careful consideration decided it should be an (un)feature and not a feature. Your (un)features list will also include features you built, but were only used by 1% of your customers. You can "deadpool" these features to the (un)features list. Your (un)features list should get as much thought, if not more, than your features list. It should almost certainly be bigger.

When you have an idea or receive a feature request, there's a physical, OCD-like urge to do something with it. Now, instead of building it or putting it on a todo list, you can simply write it down on your (un)features list, and be done with it. Then maybe your water bottles will look more like water bottles.

This blog is powered by software with an (un)features list.

Notes

  1. Feel free to move an (un)feature to your features list if you change your mind about it.

Links

Edit: 01/05/2010 Features are a great way to make money.



Posted 12/11/2009

Was this essay useful to you? Yes | No
Powered by
brecksblog Posts: What can a Programmer learn from Rock Climbing? Look for a Line Backpack the World with Zero Planning The Economy Explained Ruby You Can't Predict the Future Critical Thinking Kids are Neat How is Intelligence Distributed? Recommendations Are Far From Good Nature Verse Nurture Circle of Competence What Percentage of the Brain Does What The Recency Effect The Ovarian Lottery & Other Side Projects Happiness is in Mediocristan What I Want Orbits The Do You Know Game and Why We Need Celebrities Design Matters, a lot Competition and Specialization Simple, but not easy Flip Flopping The Churn Rate of Data Culture and Complexity The Invention of Free Will Why is it best to do one thing really, really well? The Hidden Benefits of Automation Metrics for Programmers HackerNews Data: Visits as a Function of Karma Don't talk about what you will do, talk about what you have done Why it's worth it to buy the book The Least You Can Do Four Tips to Improve Communication Network Effects If you can explain something logically, you can explain it simply With Computers: Don't Repeat Yourself. With People: DO Repeat Yourself When forced to wait, wait! How to Buy Low, Sell High Flee the Bubble Checklist for New Products Diversification in Startups Thoughts on Setting Goals Problems Worth Solving Make Something 40% of Your Customers Must Have SEO Made Easy: LUMPS Don't Flip the Bozo Bit (un)features Get Stuff Done By Setting Arbitrary Constraints Why You Shouldn't Save Blogging for Old Age 6 Specific Ways to Find Programming Mentors Orders of Magnitude The Many Worlds Law Twelve Tips to Master Programming Faster What's Linear Algebra? Fiction or Nonfiction? Experience is What You Get I'm Back Check out my roommates' companies:
Jellyfish Art makes great Jellyfish tanks
30 Words makes great language guides