# Ciclo de vida del lanzamiento de software

El ciclo de vida del lanzamiento de software, en ingeniería de software, es el conjunto de estados del progreso de los proyecto de creación de aplicaciones informáticas, para poder identificar cuánto se ha avanzado y cuánto queda hasta el final. Cada versión importante de un producto pasa generalmente a través de una etapa en la que se agregan las nuevas características (etapa alfa), después una etapa donde se eliminan errores activamente (etapa beta), y finalmente una etapa en donde se han quitado todos los errores importantes (etapa estable). Las etapas intermedias pueden también ser reconocidas. Las etapas se pueden anunciar y regular formalmente por los desarrolladores del producto, pero los términos se utilizan a veces de manera informal para describir el estado de un producto. Normalmente muchas compañías usan nombres comunes en clave (por ejemplo el proyecto de Microsoft para Cluster fue llamado hasta su lanzamiento como Team Wolf) para las versiones antes del lanzamiento de un producto, aunque el producto y las características no sean secretas.
Pero si nos estamos refiriendo a los dispositivos electrónicos, el software es una carpeta llena de instrucciones que el dispositivo debe de ejecutar para su buen funcionamiento, los desarrolladores suelen hacer nuevas versiones al menos cada año para garantizar este buen funcionamiento del dispositivo.

## Pre-Alfa

Pre-alfa son todas las actividades realizadas durante el proyecto de software antes de las pruebas formales. Estas actividades pueden incluir análisis de requisitos, diseño de software, el proceso para el desarrollo de software y pruebas unitarias. En el desarrollo típico de código abierto, existen varios tipos de versiones pre-alfa.

## Alfa

Es la primera versión del programa, completa o prácticamente completa, la cual es enviada a los verificadores para probarla.
Algunos equipos de desarrollo utilizan el término alfa informalmente para referirse a una fase donde un producto todavía es inestable, aguarda todavía a que se eliminen los errores o a la puesta en práctica completa de toda su funcionalidad, pero satisface la mayoría de los requisitos.
El nombre se deriva de alfa, la primera letra en el alfabeto griego.

## Beta

Una beta representa generalmente la primera versión completa de un programa informático o de otro producto, que es posible que sea inestable pero útil para que sea considerada como una versión preliminar (preview) o como una preliminar técnica (technical preview [TP]). Esta etapa comienza a menudo cuando los desarrolladores anuncian una congelación de las características del producto, indicando que no serán agregadas más características a esta versión y que solamente se harán pequeñas ediciones o se corregirán errores. Las versiones beta están en un paso intermedio en el ciclo de desarrollo completo. Los desarrolladores las lanzan a un grupo de probadores de betas o beta testers (a veces el público en general) para una prueba de usuario. Los probadores divulgan cualquier error que encuentran y características, a veces de menor importancia, que quisieran ver en la versión final.
Cuando una versión beta llega a estar disponible para el público en general, a menudo es extensamente probada por los tecnológicamente expertos o familiarizados con versiones anteriores, como si el producto estuviera acabado. Generalmente los desarrolladores de las versiones betas del software gratuito o de código abierto los lanzan al público en general, mientras que las versiones beta propietarias van a un grupo relativamente pequeño de probadores. En febrero de 2005, ZDNet publicó un artículo acerca del fenómeno reciente de las versiones beta que permanecían a menudo por años y que eran utilizada como si estuvieran en nivel de producción. Gmail, igual que las Google Noticias, por ejemplo, estuvieron en beta por un período de tiempo muy largo (cinco años). Esta técnica puede también permitir a un desarrollador retrasar el ofrecimiento de apoyo total o la responsabilidad de ediciones restantes. Los receptores de betas altamente propietarias pueden tener que firmar un acuerdo de no revelación. Como esta es la segunda etapa en el ciclo de desarrollo que sigue la etapa de alfa, esta se nombra como la siguiente letra griega beta.

## Versión candidata a definitiva (RC)

Una versión candidata a definitiva, candidata a versión final o candidata para el lanzamiento (del inglés), comprende un producto preparado para publicarse como versión definitiva.
Considerada muy estable y relativamente libre de errores con una calidad adecuada para una distribución amplia y usada por usuarios finales.

## Versión de disponibilidad general (RTM)

La versión de disponibilidad general (también llamada dorada) de un producto es su versión final. Normalmente es casi idéntica a la versión candidata final, con sólo correcciones de última hora. Esta versión es considerada muy estable y relativamente libre de errores con una calidad adecuada para una distribución amplia y usada por usuarios finales. En versiones comerciales, puede estar también firmada (usado para que los usuarios finales verifiquen que el código no ha sido cambiado desde su salida). La expresión de que un producto sea dorado significa que el código ha sido completado y que está siendo producido masivamente y estará en venta próximamente.
El término dorado se refiere anecdóticamente al uso del disco maestro de oro que fue frecuentemente usado para enviar la versión final a los fabricantes que lo usan para producir las copias de venta al detalle. Esto puede ser una herencia de la producción musical. En algunos casos, sin embargo, el disco maestro está realmente hecho de oro, tanto por apariencia estética como por resistencia a la corrosión.
Microsoft y otros usan el término distribución a fabricantes (RTM o release to manufacturing) para referirse a esta versión (para productos comerciales como Windows 7, se referirían a ella como "la compilación 7600 es la elegida como Windows 7 RTM"), y distribución a web (RTW o release to Web) para productos libremente descargables.

## Estable/inestable

En la programación de código abierto los números de las versiones, o los términos estable e inestable, normalmente distinguen las fases del desarrollo. En el pasado, el núcleo Linux usaba el número de versión para denotar si una versión era estable o inestable. En efecto, las versiones estaban formada por cuatro números, separados por un punto. Una cifra impar en el segundo número de la versión indicaba una versión inestable. Hoy en día ya no se usa esta convención, y todas las versiones son estables independientemente del número de versión. En la práctica el uso de números pares e impares para indicar la estabilidad de un producto ha sido usado por otros muchos proyectos de software libre.
Este concepto también se aplica al software empaquetado en algunas distribuciones Linux como Debian, de modo que existe una rama o conjunto de paquetes considerados estables y otra rama considerada inestable. Esta última rama aporta versiones de programas más recientes que la estable pero que no están tan probados y no se ejecuta.