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:
- 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.
- Planning. You're actually putting more thought into it, doing the initial research, hopefully consolidating the idea into something manageable.
- 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.
- 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.
- 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.
- 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).
- 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.