Prioritizing Features

In building software, the actual coding is rarely the hardest part. Often deciding what features to build is very difficult. There is a huge wasteland full of code that never got to the point where it was actually usable before people gave up on creating it. Getting your code to the point where it is being used by real users clears a significant hurdle and gives you a much greater chance of success.

Arranging the order of your features so you can quickly get to a usable state with the smallest set of useful capabilities without building anything unnecessary may sound simple. It isn’t.

A problem solving technique I like to use is to imagine a magic black box that can do anything and describe how I’d use it to fix a particular problem. Often the magic black box helps suggest a solution or a different way of thinking about the problem that can suggest a non-magical solution.

In the video below, I’m going to use the magic black box approach to solve the problem of getting to your release date and discovering that some of the features you’ve built aren’t the bare minimal features you need to create a usable product.