When developing a program, either a tool or a game, you may want to classify your project so you and other people can see how far you are from finishing the project/how advanced your project is. Any software development team/dude use a metric to refer to the quality of their product and/or matching estimated dates in order to advance, and while most of them differs from each other, there are common elements that are easily identifiable.
Here i'm going to quote the phases, what they really mean and put some examples. I do this for the sole purpose that everyone is on date when saying if their program is Beta or such... And last: This is just a summary, is not totally accurate, but it gives you the idea.
These are the phases of a programming project. This can apply to any program, not just games.
1.- Idea (initial phase)
When you have an idea with some contextual help, but nothing more.
Ideas can exist either with 'Wireframes' (sketchs made on paper or computer about how the program is going to look when finished) or just be all inside your head. The idea doesn't just limit itself to the program/game context, but the usage of new algoritms, codes and such. Planning means everything and takes time, that's why most game companies create revamps of their games (CoD; AC; Tekken or SSF...) so they won't be stuck here.
If you have an idea and nothing tangible related to the construction process (code), you are here.
2.- Technical Demostration (Prototype)
When you manage to create something, with the sole purpose to show how it should work and look.
If you managed to jump from an idea to a functional demostration, congrats, you just made a Tech Demo!. A tech demo doesn't need to work as expected with any kind of input or variable, it just need to work in order to show how good the program/game will look or how useful an algoritm is. The name says it all. Tech Demos are important beyond the sole purpose of demostration, because it will determine the 'course' the development process will take, based on how it should work and such.
If you have a working program without any real functionality behind it (like having bunch of placeholders), you are here.
3.- Alpha phase
Where you start the actual developing on the target enviorment. This phase just assume you have an idea, and a technical demo to work over.
Given you only have a tech demo, you need to add assets (sounds, graphics, music...) and proper functionality in order to advance in the project. This phase is the longest phase of all, for very simple reasons: You will always find something to fix, and always find something to add (last one depends on how good your planning is). The target environment means where the program/game should work on the first place (testing on a proper console instead of PC), so if you're making, let's say, a program on PC that is intended to work on another platform, you're gonna have a fun time testing.
If you're developing a program/game, but you are still adding assets and fixing stuff, you are here.
4.- Beta phase
When the program/game has all the planned assets, but there's a lot of glitches/bugs to fix.
Having all the planned features means that your program/game survived to death traps and is close to finish more than ever! However, there's still a long way to go for this: Glitches.
Funny fact: Most AAA games belongs here, for a very simple reason: Hunting down glitches requires time and resources (like launching a BETA test), and development teams always works with limited time and budget constraints. So instead of risking themselves of falling on a development hell (when the game is 'in progress', but no progress is being made), they release the game to overthrow them later with bugfixes, the famous Day 1 Patch.
If your program/game has all the planned features, but is haunted by many paranormal glitches, you are here.
5.- Initial Release (Gold Master)
The initial release of the program/game to the public as a finished work.
If you consider your program to be completely finished, then congrats, you made a complete program/game and is ready to release it to the public. There isn't too much to say here other than this is the main goal.
If your game has all the planned features, and most (if not, all) glitches are fixed, you are here.
When the program/game is being tracked in order to fix small glitches or add new features.
On plain software development, maintenance means track the interaction client-software in order to see if it succeeded on the main goal: Satisfy the client and have his approval. And if it fails or there are remaining details that developers didn't consider on development, fix or add the remaining attributes. Sometimes, even when you finished the game, you're unsure about how people will react to certain design choices you made during development, and you perhaps want to 'fix' that, because having the approval of everyone is good for your health.
If you track what people say about your program/game to see what to fix and what to add, you are here.
And well, that's all! I hope you learned something today. USE LABELS CORRECTLY!
If you think your program is on BETA stage, it isn't.
Tech Demo -> Working prototype to show
Alpha -> Active developing, but there are assets to add and bugs to fix
Beta -> Same as Alpha, but has all the planned assets
Initial release (Gold Master) -> Game open to the public
Maintenance -> Follow the people's reviews to see what to do