These terms are tossed around with gay abandon and, as a result, cause some confusion, particularly in the minds of Sales and Marketing folks.
Here are my definitions:
Product Release | This is when the product has ready to be deployed. For Development (ie Engineering and Testing), their task is complete and they can roll onto the next development cycle. |
Product Launch | Product Launch is a marketing announcement. This is the bright lights, drums, trumpets and dancing elephants moment. This is when you want the market or your customer base to know about your new release and to seed your lead generation process |
Product Availability or General Availability (or GA) | This is when a customer can use the product. |
Product Deployment | This is when it is activated for the customer. Whether a particular release is actually given to anyone or deployed is a decision made by Product Management, not of Development. Agile + continuous deployment means that this decision can be so implemented that it may by-pass Product Management, if due process is weak. |
Pre-release | This is a term that is used in two scenarios I think: a) By sales to demonstrate new capability, but to set expectations that this product isn't quite ready for use, but available for demonstration (ie for customer consideration of adoption).< b) By product management to encourage potential beta customers to step forward as beta candidates |
Some nuances
There is a difference between GA and Product Deployment is when a B2B vendor needs to ask permission from the customer before the software can be deployed or activated. For example, the new functionality may require the customer to do something (eg all users might have to log off or there might be down time) or the customer's staff may need training or the deployment might need to fit around the business cycle of the customer's environment (eg ecommerce customers dislike new functionality or surprises during the Christmas season for example).A product may be announced before it's available. This is done to seed the market & to generate enquiries into the sales team. It may be done to spoil the market - eg pre-announce functionality to steal the limelight so that you look like a thought leader and competitors appear to be second to market. Big SaaS providers (think of Salesforce for example) forward announce deployments and their release dates in order to seed their ecosystem of customers and partners with this news.
A product may be announced after it's been available and deployed to beta customers - this allows for the generation of success stories in order to encourage adoption either by the existing customer base or to generate confidence & interest from prospects.
In B2C products, product release = product deployment
Apple famously make Product Announcements on one day with GA on the next day globally. This requires incredible planning (and draconian secrecy) to implement effectively. This can do this because Apple provide single-vendor products - they don't have complex ecosystem of 3rd parties around them (in general). Their secrecy about their product releases is legendary. Indeed, the tech press have taken to tracking shipping consignments from Foxconn factories in the Far East to California to guess product ship dates!After all, customers don’t really care about releases; they care about availability. Sales and marketing folks don’t care about releases; they care about launches.
Launches must be aligned with the rhythms of your market, not the rhythms of your internal teams. Product marketers should align availability with customer demand.
You can do limited availability any time of the year but broad adoption takes place when the market is ready, not when development is ready.