It is a pretty exciting time for technologists. There is no shortage of good ideas to go work on. We are kids in a technological candy shop. It sounds like an enviable position.

Unfortunately, having too many good ideas at a company is almost as perilous a position as having too few. It creates a form of the Tragedy of the Commons where every investment seems reasonable when evaluated on its own, but nonetheless yields an ineffective overall investment. Years ago an executive at Yahoo wrote the Peanut Butter Manifesto which detailed the consequences of spreading investment too thin.

At the individual level, it is not enough to work on good ideas. You must only work on the best ideas. It is not enough to ask “is this good” you must also ask “is there something better?” As painful as ruthless prioritization is, it is not as painful as failing to do it.

At the organizational level the best solution I have found is to always staff from the inside out. You must fully fund the core and if you can’t do that then shut it all down. If you have space beyond that you can continue to fund things fully, one at a time, in accordance with your portfolio of goals. When you can’t fully staff another team then you stop.

This gets significantly more complicated when you consider future growth. Fully funding a team this year can backfire if they succeed and you can’t afford to fund the required growth in the future. If your portfolio contains more successes than failures that can leave you in a place where you are uniformly starving successful projects. I suspect most people can relate to being on a team that isn’t getting the staff it deserves for one reason or another. That is why the judgment to wind an effort down should not be that the team is failing – that would be easy — but rather that their success is being outpaced by the potential of other opportunities. At the company level we must have the discipline to shut down good efforts that are doing well but are not the most important things.

On a personal note, when I was writing software full time I found this applied to my personal time as well. If I wasn’t willing to commit significant time to something I was better off not working on it at all. This is a classic machine scheduling problem. When you have 10 things to work on, each doesn’t make progress at 1/10th the speed; they make progress at a far lower rate because it costs so much energy to mentally switch between them.

Ruthless prioritization leads us from a place where every person is working on a good idea relatively far apart to all of us working together on a much smaller number of ideas that really matter.