Product Development How a New Program Gets Born
New programs start in the sandbox, a programmer's play area. Once the programs compile and run they should be copied (graduate) to the test environment.
In the test environment, programmers test the programs for correctness and errors. Programs spend the bulk of their embryonic life here, where programmers add functionality and do rudimentary tests. Once programs pass basic tests they graduate to the QA environment.
In the QA environment, programmers and beta testers throw everything they have at the program in order to break it. If they succeed in breaking the program (i.e. it generates a wrong answer or fails completely and returns an error) then the program gets sent back to the test environment. Once the program passes the battery of QA tests, it graduates to the production environment.
The production environment contains the final product. Here, end-users can download the programs and use them. All programs are complete and functional and can serve as a backup (last known good version).