Del mismo modo que los humanos atraviesan diferentes etapas en su vida, los productos de software también lo hacen. Esto a menudo se denomina ciclo de vida de lanzamiento de software.
Existen periodos de tiempo definidos asociados a las distintas fases del ciclo de vida o “etapas de desarrollo” dentro de las aplicaciones, pero puede ser difícil predecir cuándo termina una fase y comienza la siguiente. Cada fase tiene su propio conjunto de tareas y requerimientos entre departamentos, por lo que es importante que los responsables de producto comprendan cada fase para poder guiar con éxito a la empresa a través del ciclo de vida de lanzamiento del software.
A medida que avancemos en este artículo, añadiré comentarios sobre mi experiencia vendiendo e integrando BankerBox, una empresa de FinTech SaaS para banqueros de inversión, en SS&C Intralinks junto con mi cofundador, en las distintas fases del SRLC.
¿Qué es un ciclo de vida de lanzamiento de software (SRLC)?
El ciclo de vida de lanzamiento de software (SRLC) es un conjunto de hitos que describen las distintas etapas en el ciclo de vida de una pieza de software o la línea de tiempo de lanzamientos secuenciales, desde su concepción hasta su lanzamiento completamente desarrollado. La duración de este ciclo de vida varía en función de diversos factores, como el tipo de producto, su uso previsto y los estándares generales de seguridad, cumplimiento y la industria.
Por ejemplo, las aplicaciones de software suelen tener un ciclo de vida más corto que la mayoría de otros productos porque las nuevas funciones y mejoras se lanzan con frecuencia de manera ágil para responder a las demandas cambiantes del mercado y nuevas tendencias tecnológicas.
Es similar al Ciclo de Vida del Desarrollo de Software (SDLC), que es una estructura utilizada para el desarrollo de productos de software. La diferencia entre estos dos ciclos de vida es que el SDLC describe únicamente el proceso de desarrollo de software y el diseño de software, mientras que el ciclo de vida de lanzamiento describe no solo su desarrollo sino también su usabilidad, pruebas y distribución.
Los lanzamientos de software deben ser cuidadosamente planificados y probados (idealmente por un equipo de pruebas) para asegurar que no causen más problemas de los que solucionan. Un ciclo de vida de lanzamiento de software establece un plan claro para lograr un proceso de lanzamiento exitoso mediante una adecuada planificación, pruebas y corrección de errores.
Las empresas deben emplear el ciclo de vida de lanzamiento de software para planificar cuándo y cómo actualizarán su aplicación web o aplicaciones con el tiempo. Implementar buenas prácticas de gestión de lanzamientos les permite mantener un producto robusto que continúe satisfaciendo tanto las necesidades de sus usuarios, la funcionalidad central, como los estándares de la industria (esto también es algo en lo que la IA en la gestión de lanzamientos puede ayudar). Esto les permite mantener un producto robusto que seguirá cumpliendo tanto con las necesidades de sus usuarios, la funcionalidad esencial y los estándares de la industria.
Las 6 etapas del ciclo de vida de lanzamiento de software
Existen diferentes etapas en los ciclos de vida de lanzamiento de software que pueden utilizarse dependiendo del tipo de sistema que se esté desarrollando y las necesidades del equipo de desarrollo.
Las “etapas” marcan hitos en el desarrollo de un producto y permiten al equipo de desarrollo y a los gestores de proyectos monitorear el progreso. También permiten a los equipos de desarrollo seguir tendencias en las aplicaciones y aplicaciones web y verificar que se están haciendo mejoras a través de las iteraciones con el paso del tiempo. Por lo general, se distinguen las siguientes seis fases:
1. Versión Pre-Alfa
La primera etapa en el Ciclo de Vida de Lanzamiento de Software es la Pre-Alfa. Esta etapa del proceso está completamente enfocada en el desarrollo del producto más que en su mercadotecnia y lanzamiento público. Incluye cada acción realizada durante el desarrollo inicial antes del testeo. Las fases más comunes de la pre-alfa son análisis, diseño, desarrollo y pruebas unitarias.
Una gran parte de la versión pre-alfa consiste en identificar cómo debe evolucionar la aplicación de software para prepararse para lanzamientos más amplios, como la versión alfa o beta. El equipo de desarrollo debe establecer fuertes pruebas de software, usabilidad y automatización para garantizar transiciones estables entre las distintas fases del ciclo de vida de lanzamiento de software.
Con la solución SaaS que mi cofundador y yo integramos en SS&C Intralinks, ya habíamos verificado y completado la fase Pre-Alfa. Teníamos una aplicación funcional que estaba diseñada, arquitectada y desarrollada. Sin embargo, es importante señalar que la definición que una pequeña empresa de software tiene de los pasos de Análisis, Diseño, Desarrollo y Pruebas Unitarias puede diferir completamente del enfoque y el nivel de rigor que tiene una gran empresa para estos pasos.
4 fases para iniciar la versión pre-alfa
Análisis: es la etapa inicial en el ciclo de vida de lanzamiento de software o SRLC que consiste en estudiar el problema y los requerimientos de un sistema en detalle. Incluye analizar los requerimientos del usuario, la funcionalidad crítica, identificar el área problemática, preparar informes de viabilidad y crear el SRS (Software Requirement Specification).
Diseño: en esta etapa, los equipos de desarrollo crean una solución para el problema identificado en la etapa de análisis. Esta fase implica redactar un documento de diseño de alto nivel y prototipos que expliquen cómo implementar el producto de software. El documento de diseño resalta los pasos básicos que deben seguirse para construir la aplicación web.
Si estás trabajando en diseños o flujos de interfaz de usuario (UI), estas herramientas de prototipado de diseño responsivo pueden ayudarte a probar ideas rápidamente antes de pasar al desarrollo. El documento de diseño resalta los pasos básicos que deben seguirse para construir la aplicación web.
Desarrollo: esta es la fase de codificación real donde un equipo de desarrollo convierte las especificaciones de requisitos en un producto de software real. Una vez finalizada la codificación, los desarrolladores realizan pruebas y solucionan errores lo antes posible.
Pruebas unitarias: esto lo realizan los desarrolladores antes de entregar su módulo al equipo de desarrollo de QA (Aseguramiento de la Calidad) para un proceso de pruebas adicional. En esta fase, los desarrolladores revisan cada línea del código fuente para asegurarse de que el código funciona correctamente antes de integrarlo en toda la aplicación.
2. Versión Alfa
La etapa alfa representa la primera letra del alfabeto griego, y también es un nombre clave para la fase de desarrollo que ocurre antes de lanzar un producto. Los desarrolladores de software utilizan el término “alfa” o “versión alfa” para describir software que está en su primera fase de pruebas.
Las pruebas alfa son realizadas por empleados internos o desarrolladores dentro de la organización. Este tipo de prueba se realiza en las instalaciones del desarrollador, pero no en las del cliente. La prueba alfa se lleva a cabo después de la finalización de las pruebas del sistema y antes de las pruebas beta. Esta prueba se realiza para detectar errores o defectos relacionados con la usabilidad, funcionalidad y consistencia.
En este tipo de prueba, un grupo de personas llamadas 'probadores' realizan operaciones similares a las de los usuarios finales y luego informan sobre cualquier problema que encuentren. El propósito principal de la prueba alfa es asegurarse de que todos los módulos estén integrados correctamente y funcionen como se espera.
Cuando pasamos por la etapa Alfa en BankerBox, contactamos a colegas en producto, software y, en nuestro caso (al construir una solución para bancos), a varios banqueros de inversión y contactos en alta finanza.
El software alfa tiene todas las funcionalidades previstas, pero probablemente contiene errores. El objetivo de las pruebas alfa es mejorar un producto detectando problemas antes de pasar a la fase beta e incorporando cualquier ajuste de última hora sugerido en los comentarios de la etapa alfa.
3. Versión Beta
La etapa beta, llamada así por la segunda letra del alfabeto griego, es el nombre código utilizado para señalar que un producto de software ha pasado a su segunda fase de pruebas y está listo para el uso externo de clientes o usuarios, a menudo denominados "probadores beta". Algunas organizaciones llaman a esta fase la de “Adoptador temprano”.
Una vez que se publica una versión beta, generalmente se somete a pruebas más exhaustivas que en la fase alfa. Esto permite a las empresas evaluar cómo funcionará su software en condiciones reales.
Una vez que SS&C Intralinks adquirió BankerBox, rápidamente establecimos algunos puntos clave de integración entre nuestro software y los sistemas más amplios de la empresa (autenticación, servidores en la nube, etc.). Luego hicimos demostraciones y nos asociamos con varios clientes de la empresa para invitarlos a “probar en beta” esta solución en vivo en una operación de Fusiones y Adquisiciones (M&A).
Esto fue una excelente manera de obtener opiniones, desarrollar una relación con el cliente y encontrar áreas en las que el software necesitaba evolucionar para cumplir con los requisitos y el “nivel” para ser Candidato a Lanzamiento (RC) o Disponibilidad General (GA).
En este tipo de prueba, los clientes ofrecen comentarios valiosos sobre si el producto o la aplicación cumple con sus expectativas respecto a funcionalidad, usabilidad, rendimiento, fiabilidad, escalabilidad, etc. Las opiniones de los usuarios finales ayudan a mejorar la experiencia de usuario y a corregir problemas de operación antes del lanzamiento del producto en producción. Hay dos tipos de fase beta:
- Beta abierta: Durante esta fase, cualquier persona que desee participar en el proceso de pruebas beta puede hacerlo. Esto ayuda a los desarrolladores a identificar y corregir errores en su producto rápida y fácilmente, ya que los comentarios de múltiples usuarios pueden arrojar luz sobre los problemas.
- Beta cerrada: En esta fase, hay un mercado objetivo específico con grupos concretos de personas que actúan como probadores. El mercado objetivo ayuda a enfocar la prueba de software en áreas específicas de interés y asegura que todo funcione según las necesidades de los consumidores a quienes se dirige.
4. Candidato a Lanzamiento
Un candidato a lanzamiento (RC) es una versión preliminar del software que se está preparando para su lanzamiento final al público (en la fase RC). A veces se le llama “Disponibilidad Controlada”. Aunque puede incluir todas las funciones y características previstas y funcionar como se espera, todavía está sujeta a cambios, incluso radicales, en función de los comentarios recibidos.
Es posible que los desarrolladores publiquen varios candidatos a lanzamiento antes de lanzar el producto final para garantizar que el programa no se bloquee bajo carga pesada, no tenga fugas de memoria significativas, etc.
5. Disponibilidad General
La disponibilidad general (GA, por sus siglas en inglés) indica que un producto o servicio ha sido puesto a la venta para la mayoría de los clientes (normalmente a nivel global), generalmente a través de canales comerciales. En la ingeniería de software, esta expresión suele referirse a una aplicación web o app que está disponible para todos los usuarios previstos. Durante esta fase, cualquier actualización o trabajo de desarrollo adicional en el producto se enfoca en mejorar sus funcionalidades y rendimiento para hacerlo más atractivo para los clientes.
Una vez que BankerBox, ahora “Deal Marketing” bajo el nuevo nombre de marca, alcanzó la Disponibilidad General, pudimos escalarlo a clientes en toda Norteamérica y obtener un valioso feedback, cifras de uso, escalabilidad, etc. para validar el encaje producto-mercado, antes de pasar a la etapa final del ciclo de vida de lanzamiento del software, el lanzamiento a producción.
6. Lanzamiento a Producción
Una versión estable es una versión de un paquete de software que ha sido probada y verificada. Es la versión más reciente (y, a veces, última) de un programa considerada segura para el uso público. Este tipo de lanzamiento también se denomina lanzamiento “Estable”.
A medida que una aplicación de software o web entra en esta fase, puede indicar al resto de la organización y al mercado el nivel de preparación que tiene tu producto. En SS&C Intralinks, como líder en la organización de producto, vinculé iniciativas clave interfuncionales a estas fases.
En la fase de Lanzamiento a Producción pudimos definir una estrategia de oferta, realizar un lanzamiento completo de marketing y ventas, y crear el soporte necesario en atención al cliente, ingeniería de fiabilidad del sitio y otros departamentos clave para que el producto tuviera éxito.
Esto se considera un producto completo bajo la mayoría de estándares, aunque puede tener algunos pequeños inconvenientes que se consideran aceptables. En algunos casos, como Linux, existen dos tipos de versiones estables: LTS (soporte a largo plazo) y versiones regulares estables.
- Lanzamientos Estables Regulares: son el tipo de lanzamiento más habitual que verás. Son fáciles de instalar (cuando hablamos de software de sistema operativo) y, como indica su nombre, son estables. Si buscas probar software en un entorno de producción, este es el tipo de versión que usualmente utilizas. Las aplicaciones web a menudo se refieren a los lanzamientos estables regulares como “mayores”.
- Lanzamientos LTS (soporte a largo plazo): están especialmente diseñados para un uso prolongado en entornos de producción. Estas versiones tienen un ciclo de vida más largo que las versiones estables estándar (el intervalo medio entre lanzamientos LTS es de tres años). Esto significa que han sido probadas exhaustivamente y se consideran más seguras que las versiones estables regulares.
Reflexiones finales
Comprender las distintas fases del ciclo de vida de lanzamiento del software para un producto es una gran manera para que un gerente de producto establezca comparaciones y vincule las actividades interfuncionales y orientadas al cliente a las distintas etapas del SRLC. Esto permite segmentar el producto de manera clara dentro del conjunto más amplio de objetivos, estrategias e iniciativas de la empresa.
Aprovechar estas etapas como puntos “detonantes” me permitió integrar exitosamente mi producto en una gran empresa y coordinar los distintos movimientos para garantizar el éxito en el mercado.
Una vez completadas las etapas del SRLC, el producto ha atravesado sus ciclos de ventas y crecimiento, y la organización detecta señales de que el producto está finalizando su etapa, se inicia el ciclo de vida de mantenimiento, que incluye:
- corregir errores reportados por el cliente durante la fase de despliegue,
- añadir nuevas funcionalidades, o
- modificaciones a funcionalidades existentes según lo solicitado por el cliente de acuerdo con cambios en sus necesidades y avances tecnológicos.
Finalmente, en algún momento, todos los productos de software llegan al final de su vida útil, cuando ya no reciben soporte por parte de sus desarrolladores.
Para aprender más sobre gestión de producto y buenas prácticas en desarrollo de productos, ¡asegúrate de suscribirte! Hasta la próxima.
Lecturas relacionadas:
- 6 etapas del ciclo de vida del desarrollo de software (SDLC)
- Cómo redactar notas de lanzamiento de software efectivas que encanten a los usuarios
Lista relacionada de herramientas: Herramientas para la gestión de lanzamientos de software
También vale la pena consultar:
