Skip to content

Instantly share code, notes, and snippets.

Created July 24, 2012 14:14
What would you like to do?
The 80/20 Rule
I've been saying that to friends, family, and colleagues for a while now, and I think maybe I should just write it down and refer to it instead of rehashing it every time. In the last few dozen explanations, it hasn't actually changed, so I think it's pretty stable. Of course, the community will have something to say, and that's expected!

There are more or less seven states to a new (software) project:

  1. Figment. That's when it's just an idea, and maybe you've written something down on a paper napkin, or discussed it over coffee with a friend.
  2. Planning. You're actually putting more thought into it, doing the initial research, hopefully consolidating the idea into something manageable.
  3. Prototype. Not necessarily code. Sometimes a prototype can just be rectangles of paper under magnets on a whiteboard, and a few arrows here and there to represent dynamics. Also known (in the case of code) as pre-alpha.
  4. Alpha. Finally! Code. You've probably pulled a directory structure out of thin air and the code doesn't actually do anything remotely productive yet.
  5. Beta. The project has most of its original main features completed, even though there's still a lot of bugs. You've taken features out of the codebase and told yourself you'll implement them later.
  6. Stable. The project has gotten enough XP and evolves into a product. There's still bugs and quirks, but the main features are there and you can finally release it to the wider public (although if you're open-source, this is more likely to happen on 4 or 5).
  7. Future. This is rumored to be the hardest part of the journey. This has two parts: provide support for the now-released product, and continue development on new & more advanced features.

These are general states. You might find that 1-3 can be collapsed, or that there's a bunch of extras in-between 6 and 7. You might also not agree on some of the descriptions I've given. That's fine. What's important is the actual rule:

When going from one state to the other, there is a global 80% loss rate.

In other words, for every 1000 things I've thought of, 200 got to be planned, 40 were prototyped, 8 made it to alpha, and 1.6 got to beta. I've had exactly one project reach state 7, and it's discontinued.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment