El ciclo de vida del lanzamiento de software es el proceso de desarrollo, prueba y distribución de un producto de software (por ejemplo, un sistema operativo ). Por lo general, consta de varias etapas, como pre-alfa, alfa, beta y versión candidata, antes de que la versión final, u "oro", se lance al público.
Pre-alfa se refiere a las primeras etapas de desarrollo, cuando el software aún se está diseñando y construyendo. La prueba alfa es la primera fase de la prueba formal, durante la cual el software se prueba internamente utilizando técnicas de caja blanca . La prueba beta es la siguiente fase, en la que el software es probado por un grupo más grande de usuarios, generalmente fuera de la organización que lo desarrolló. La fase beta se centra en reducir los impactos en los usuarios y puede incluir pruebas de usabilidad.
Después de la prueba beta, el software puede pasar por una o más fases de lanzamiento candidato, en las que se perfecciona y se prueba más, antes de que se lance la versión final.
Parte del software, particularmente en las industrias de Internet y tecnología, se lanza en un estado beta perpetuo, lo que significa que se actualiza y mejora continuamente y nunca se considera un producto completamente completo. Este enfoque permite un proceso de desarrollo más ágil y permite que los usuarios lancen y utilicen el software en una fase más temprana del ciclo de desarrollo.
Pre-alfa se refiere a 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 , desarrollo de software y pruebas unitarias . En el desarrollo típico de código abierto , existen varios tipos de versiones pre-alfa. Las versiones de Milestone incluyen conjuntos específicos de funciones y se lanzan tan pronto como se completa la función. [ cita necesaria ]
La fase alfa del ciclo de vida del lanzamiento es la primera fase de prueba del software (alfa es la primera letra del alfabeto griego , utilizada como el número 1). En esta fase, los desarrolladores generalmente prueban el software utilizando técnicas de caja blanca . Luego , otro equipo de pruebas realiza una validación adicional utilizando técnicas de caja negra o caja gris . Pasar a pruebas de caja negra dentro de la organización se conoce como versión alfa . [1] [2]
El desarrollador no prueba exhaustivamente el software Alpha antes de lanzarlo a los clientes. El software Alpha puede contener errores graves y cualquier inestabilidad resultante podría provocar fallos o pérdida de datos. [3] Es posible que el software Alpha no contenga todas las funciones previstas para la versión final. [4] En general, la disponibilidad externa de software alfa es poco común para el software propietario , mientras que el software de código abierto a menudo tiene versiones alfa disponibles públicamente. La fase alfa generalmente termina con una congelación de funciones , lo que indica que no se agregarán más funciones al software. En este momento, se dice que el software tiene todas las funciones. Se lleva a cabo una prueba beta después de las pruebas de aceptación en las instalaciones del proveedor (la prueba alfa) e inmediatamente antes del lanzamiento general del software como producto. [5]
Una versión de funciones completas (FC) de un software tiene todas sus funciones principales o planificadas implementadas, pero aún no es definitiva debido a errores , problemas de rendimiento o estabilidad . [6] Esto ocurre al final de las pruebas alfa en desarrollo .
Por lo general, el software con funciones completas aún debe someterse a pruebas beta y corrección de errores , así como a mejoras en el rendimiento o la estabilidad antes de que pueda pasar al estado de candidato de lanzamiento y, finalmente, de oro.
Beta, que lleva el nombre de la segunda letra del alfabeto griego , es la fase de desarrollo de software que sigue a la alfa. Una fase beta generalmente comienza cuando el software tiene todas las funciones pero es probable que contenga varios errores conocidos o desconocidos. [7] El software en la fase beta generalmente tendrá muchos más errores que el software completo y problemas de velocidad o rendimiento, y aún puede causar fallas o pérdida de datos. El objetivo de las pruebas beta es reducir el impacto en los usuarios, incorporando a menudo pruebas de usabilidad . El proceso de entregar una versión beta a los usuarios se denomina lanzamiento beta y suele ser la primera vez que el software está disponible fuera de la organización que lo desarrolló. Las versiones beta de software pueden ser abiertas o cerradas, dependiendo de si están disponibles abiertamente o solo para una audiencia limitada. El software de la versión Beta suele ser útil para demostraciones y vistas previas dentro de una organización y para clientes potenciales. Algunos desarrolladores se refieren a esta etapa como vista previa , versión preliminar , prototipo , vista previa técnica o vista previa de tecnología ( TP ), [8] o acceso temprano .
Los probadores beta son personas que informan activamente problemas con el software beta. Suelen ser clientes o representantes de posibles clientes de la organización que desarrolla el software. Los probadores beta tienden a ofrecer sus servicios de forma gratuita, pero a menudo reciben versiones del producto que prueban, descuentos en la versión de lanzamiento u otros incentivos. [9] [10]
Parte del software se mantiene en la llamada versión beta perpetua , donde continuamente se agregan nuevas funciones al software sin establecer una versión final "estable". A medida que Internet ha facilitado la distribución rápida y económica de software, las empresas han comenzado a adoptar un enfoque más flexible respecto del uso de la palabra beta . [11]
Los desarrolladores pueden lanzar una beta cerrada o una beta abierta ; Las versiones beta cerradas se lanzan a un grupo restringido de personas para una prueba de usuario mediante invitación, mientras que los probadores beta abiertos pertenecen a un grupo más grande o a cualquier persona interesada. La versión beta privada podría ser adecuada para el software que es capaz de ofrecer valor pero que no está listo para ser utilizado por todos debido a problemas de escala, falta de documentación o aún faltan funciones vitales. Los evaluadores informan de cualquier error que encuentran y, a veces, sugieren funciones adicionales que creen que deberían estar disponibles en la versión final.
Las versiones beta abiertas tienen el doble propósito de demostrar un producto a consumidores potenciales, y las pruebas entre una amplia base de usuarios probablemente saquen a la luz errores oscuros que un equipo de pruebas mucho más pequeño podría no encontrar.
Una versión candidata ( RC ), también conocida como prueba gamma o "opción plateada", es una versión beta con el potencial de ser un producto estable, que está listo para lanzarse a menos que surjan errores importantes . En esta etapa de estabilización del producto, todas las características del producto han sido diseñadas, codificadas y probadas a través de uno o más ciclos beta sin errores conocidos de gran importancia. Una versión se denomina código completo cuando el equipo de desarrollo acepta que no se agregará ningún código fuente completamente nuevo a esta versión. Aún podría haber cambios en el código fuente para corregir defectos, cambios en la documentación y los archivos de datos, y código periférico para casos de prueba o utilidades. Los probadores beta, si se seleccionan de forma privada, a menudo recibirán crédito por utilizar la versión candidata como si fuera un producto terminado. Las pruebas beta se llevan a cabo en la ubicación de un cliente y para probar el software desde la perspectiva del usuario. [ cita necesaria ]
También llamada versión de producción , la versión estable es la última versión candidata ( RC ) que ha pasado todas las etapas de verificación y pruebas. Cualquier error restante conocido se considera aceptable. Esta versión pasa a producción .
Algunos productos de software (por ejemplo, distribuciones de Linux como Debian ) también tienen versiones de soporte a largo plazo ( LTS ) que se basan en versiones completas que ya han sido probadas y reciben solo actualizaciones de seguridad. Esto permite a los desarrolladores dedicar más tiempo al desarrollo de productos en lugar de actualizar el código o encontrar y corregir errores recién introducidos debido a suposiciones obsoletas sobre el sistema, el lenguaje o las bibliotecas subyacentes utilizados. [ cita necesaria ]
Una vez lanzado, el software se conoce generalmente como "versión estable". El término formal a menudo depende del método de publicación: medios físicos, publicación en línea o una aplicación web. [12]
El término "lanzamiento a fabricación" (RTM), también conocido como "opción de oro", es un término que se utiliza cuando un producto de software está listo para ser entregado. Esta compilación puede estar firmada digitalmente, lo que permite al usuario final verificar la integridad y autenticidad de la compra del software. Se envía una copia de la compilación RTM conocida como " gold master " o GM [13] para duplicación masiva o replicación en disco, si corresponde. La terminología proviene de la industria de grabación de audio, específicamente del proceso de masterización . RTM precede a la disponibilidad general (GA) cuando el producto se lanza al público. Una compilación maestra dorada (GM) suele ser la compilación final de un software en las etapas beta para desarrolladores. Normalmente, para iOS , es la versión final antes de un lanzamiento importante; sin embargo, ha habido algunas excepciones.
RTM se utiliza normalmente en ciertos contextos minoristas de software de producción en masa, a diferencia de una producción o proyecto de software especializado en una producción y distribución comercial o gubernamental, donde el software se vende como parte de un paquete en una venta de hardware informático relacionado y, por lo general, donde En última instancia, el software y el hardware relacionado deben estar disponibles y vendidos de forma masiva/pública en tiendas minoristas para indicar que el software ha alcanzado un nivel de calidad definido y está listo para la distribución minorista masiva. RTM también podría significar en otros contextos que el software ha sido entregado o liberado a un cliente para su instalación o distribución a las computadoras o máquinas del usuario final del hardware relacionado. El término no define el mecanismo o volumen de entrega; sólo afirma que la calidad es suficiente para la distribución masiva. El producto final de la organización de ingeniería suele ser un medio maestro de oro que se utiliza para duplicar o producir la imagen para la web.
La disponibilidad general ( GA ) es la etapa de marketing en la que se han completado todas las actividades de comercialización necesarias y un producto de software está disponible para su compra, dependiendo, sin embargo, del idioma, la región y la disponibilidad electrónica o de medios. [14] Las actividades de comercialización podrían incluir pruebas de seguridad y cumplimiento, así como localización y disponibilidad mundial. El tiempo entre RTM y GA puede tardar desde días hasta meses antes de que se pueda declarar una versión disponible de forma generalizada, debido al tiempo necesario para completar todas las actividades de comercialización requeridas por GA. En esta etapa, el software ya está "activo".
Lanzamiento a la Web ( RTW ) o lanzamiento web es un medio de entrega de software que utiliza Internet para su distribución. El fabricante no produce ningún medio físico en este tipo de mecanismo de liberación. Los lanzamientos web se han vuelto más comunes a medida que creció el uso de Internet. [ cita necesaria ]
Durante su vida útil, el software a veces está sujeto a versiones de servicio, parches o paquetes de servicio , a veces también llamados "versiones provisionales" o "versiones de mantenimiento" (MR). Por ejemplo, Microsoft lanzó tres paquetes de servicios principales para las ediciones de 32 bits de Windows XP y dos paquetes de servicios para las ediciones de 64 bits . [15] Dichos lanzamientos de servicios contienen una colección de actualizaciones, correcciones y mejoras, entregadas en forma de un único paquete instalable. También pueden implementar nuevas funciones. Parte del software se lanza con la expectativa de recibir soporte técnico regular. Las clases de software que generalmente implican un soporte prolongado como norma incluyen suites antivirus y juegos en línea multijugador masivo . Siguiendo con este ejemplo de Windows XP, Microsoft sí ofreció actualizaciones pagas durante cinco años más después del final del soporte extendido. Esto significa que el soporte finalizó el 8 de abril de 2019. [16]
Cuando el software ya no se vende ni se brinda soporte, se dice que el producto ha llegado al final de su vida útil, que será descontinuado, retirado, obsoleto, abandonado u obsoleto, pero la lealtad del usuario puede continuar existiendo por algún tiempo, incluso mucho después de su finalización. La plataforma está obsoleta, por ejemplo, Common Desktop Environment [17] y Sinclair ZX Spectrum . [18]
Después de la fecha de finalización de su vida útil, el desarrollador generalmente no implementará ninguna característica nueva, no corregirá defectos, errores o vulnerabilidades existentes (ya sea que se conozcan antes de esa fecha o no), ni brindará soporte para el producto. Si el desarrollador lo desea, puede publicar el código fuente, de modo que la plataforma vuelva a funcionar y sea mantenida por voluntarios, y si no, se le puede aplicar ingeniería inversa más adelante cuando se convierta en abandonware .
El uso de la terminología de prueba "alfa/beta" se originó en IBM . [ cita necesaria ] Las personas involucradas con IBM utilizaron terminologías similares para el desarrollo de software de IBM desde al menos la década de 1950 (y probablemente antes). La prueba "A" era la verificación de un nuevo producto antes del anuncio público. La prueba "B" fue la verificación antes de liberar el producto a fabricar. La prueba "C" fue la prueba final antes de la disponibilidad general del producto. A medida que el software se convirtió en una parte importante de las ofertas de IBM, la terminología de prueba alfa se utilizó para indicar la prueba previa al anuncio y la prueba beta se utilizó para mostrar la preparación del producto para su disponibilidad general. Martin Belsky, gerente de algunos de los proyectos de software anteriores de IBM, afirmó haber inventado la terminología. IBM abandonó la terminología alfa/beta durante la década de 1960, pero para entonces ya había recibido bastante atención. El uso de "prueba beta" para referirse a las pruebas realizadas por los clientes no se hacía en IBM. Más bien, IBM utilizó el término "prueba de campo".
Posteriormente se desarrollaron importantes versiones beta públicas, y los primeros clientes compraron una "edición pionera" del procesador de textos WordVision para IBM PC por 49,95 dólares. En 1984, Stephen Manes escribió que "en un brillante golpe de marketing, Bruce y James Program Publishers lograron que la gente pagara por el privilegio de probar el producto". [19] En septiembre de 2000, se lanzó una versión en caja del sistema operativo Mac OS X Public Beta de Apple . [20] Entre septiembre de 2005 y mayo de 2006, Microsoft lanzó avances tecnológicos comunitarios ( CTP ) para Windows Vista . [21] De 2009 a 2011, Minecraft estuvo en versión beta pública.
En febrero de 2005, ZDNet publicó un artículo sobre el fenómeno de que una versión beta a menudo permanece durante años y se utiliza como si estuviera en el nivel de producción. [22] Observó que Gmail y Google News , por ejemplo, habían estado en fase beta durante mucho tiempo aunque se utilizaban ampliamente; Google News dejó la versión beta en enero de 2006, seguido por Google Apps (ahora llamado Google Workspace ), incluido Gmail, en julio de 2009. [12] Desde la introducción de Windows 8 , Microsoft ha llamado al software de prelanzamiento una vista previa en lugar de una versión beta . Todas las compilaciones preliminares publicadas a través del programa Windows Insider lanzado en 2014 se denominan "compilaciones Insider Preview". "Beta" también puede indicar algo más parecido a un candidato de lanzamiento, o como una forma de demostración por tiempo limitado o técnica de marketing. [23]
El software Alpha generalmente apenas se ejecuta y le faltan funciones importantes como jugabilidad y niveles completos.