When software is released before it is ready, and users of the software are made to find all of its bugs and shortcomings, they’re made to feel as though they’re walking in a minefield. It’s important to release software as quickly as possible, in order to minimize feedback loops, but what is released should work so that users do not lose confidence. Each new release should be more stable than the last, and should incrementally add new functionality. If the system is constantly shifting such that things that work one day fail the next, eventually users will demand a different system altogether, and the project will fail.
“Software undergoes beta testing shortly before it’s released. Beta is Latin for ‘still doesn’t work.'” – Anonymous