¿Qué es un lanzamiento en ingeniería de software?
En ingeniería de software, un lanzamiento comprende un software nuevo o modificado y el proceso de creación. Un lanzamiento constituye una versión totalmente funcional del software y representa el clímax de los procesos de desarrollo e ingeniería de software. Las versiones alfa y beta del software suelen preceder al lanzamiento.
Si bien los lanzamientos de las versiones alfa y beta también pueden llamarse publicaciones alfa o beta, en el uso de forma singular, el lanzamiento suele referirse a la versión final de software. Además, los lanzamientos pueden denominarse versiones o compilaciones.
La mayoría de las organizaciones identifican los lanzamientos con un conjunto singular de números o letras que se actualizan secuencialmente. Tal proceso de nomenclatura se denomina versionado de software. No hay reglas para todo el sector sobre cómo cambian estos identificadores singulares entre un lanzamiento y otro, sino que cada empresa sigue su propio estándar interno de forma constante.
¿Qué es el proceso de gestión de lanzamientos?
Para mejorar la calidad, velocidad y eficiencia del desarrollo o la actualización de software, las organizaciones se centran en la gestión de lanzamientos. Se trata del proceso de planificación, programación y gestión de una compilación de software a lo largo de las etapas de desarrollo, prueba, implementación y respaldo del lanzamiento. Las técnicas, como el desarrollo ágil, la entrega continua, las DevOps y la automatización del lanzamiento, contribuyeron a optimizar la gestión de lanzamientos.La velocidad de este proceso aceleró recientemente, al punto de que, hace varios años, Amazon pasó el listón de 50 millones de implementaciones de código al año, más de una por segundo.
La gestión de lanzamientos es una disciplina relativamente nueva en la ingeniería de software, pero crece a paso ligero gracias a las veloces innovaciones en tecnología. Como disciplina, se remite tanto a la gestión de proyectos tradicional y centrada en los negocios como al conocimiento técnico del ciclo de vida del desarrollo de sistemas (SDLC) y la Biblioteca de Infraestructura de TI, un conjunto de prácticas establecidas para la gestión de servicios de TI.
Los objetivos y beneficios de la gestión de lanzamientos
Ejecutada de manera efectiva, la gestión de lanzamientos aumenta la cantidad de lanzamientos exitosos en una organización y reduce los problemas de calidad. La productividad, comunicación y coordinación mejoran, y la organización puede entregar software más rápido y reducir el riesgo al mismo tiempo.
Estas mejoras implican que el equipo puede producir software de calidad reiteradamente con tiempos de comercialización más cortos, lo cual permite a la empresa tener una mayor respuesta al entorno operativo.
La gestión de lanzamientos también ayuda a estandarizar y optimizar el proceso de desarrollo y operaciones. El equipo implementa controles de lanzamiento auditables. De esta manera, crea un repositorio para todos los lanzamientos a lo largo del ciclo de vida. Contar con un proceso único y bien documentado que debe seguirse para todos los lanzamientos aumenta la madurez de la organización. El aumento de la estandarización y el enfoque en el producto permiten a los equipos obtener lecciones más útiles de la experiencia y aplicarlas en los lanzamientos futuros.
Los departamentos de operaciones aprecian una mayor coordinación con los desarrolladores, ya que da lugar a menos sorpresas. Ahora podrán evitar sentir que un lanzamiento es "una papa caliente" que se pasa desde el desarrollo, la cual deja al equipo de operaciones con la tarea de "combatir incendios" y "colocar parches y esperar lo mejor", como resultado de los cortos plazos de trabajo. También hay más oportunidades de resolver problemas de configuración entre los entornos de desarrollo y operaciones.
En resumen, la gestión de lanzamientos elimina los obstáculos del equipo en varias funciones de una organización de TI. Como resultado, puede mejorar la entrega del producto de forma holística.
Breve historia de la gestión de lanzamientos
El auge de la gestión de lanzamientos proviene del cambio en la ingeniería de software de las ofertas basadas en proyectos a las ofertas basadas en productos. Según el paradigma de desarrollo basado en proyectos, los desarrolladores de software abordan cada lanzamiento como un proyecto, no como un producto. El software desarrollado por completo marcaba en gran medida el final de la función de los desarrolladores.
Sin embargo, con el tiempo, el proceso de desarrollo de software se fue asemejando más al ciclo del producto, donde los productos se respaldan, mejoran y relanzan repetidamente durante el transcurso de una larga vida útil. Según este marco, el lanzamiento no era el objetivo final del desarrollo, sino un punto de transición hacia el respaldo y la revisión.
A partir de este aumento de complejidad, surgió una mayor necesidad de coordinar las fases. Por este motivo, las prácticas de gestión de lanzamientos actuales están inspiradas, en parte, en los principios de la gestión de proyectos centrada en el negocio, que se extiende al respaldo postventa y el desarrollo posterior.
La gestión de lanzamientos forma parte de una disciplina más amplia de TI denominada gestión de cambios, que se ocupa de la turbulencia inherente al desarrollo de software, donde los requisitos de las partes interesadas parecen ser interminablemente fluidos y el panorama de cumplimiento y regulación atraviesa cambios constantes. Para navegar por este entorno, los procesos de ingeniería de software deben estar bien sincronizados, y la gestión de lanzamientos contribuye a lograr este propósito. Nota: La gestión de cambios no debe confundirse con el cambio organizativo, que conlleva la remodelación de la cultura, la rotación de personal y la reestructuración interna de las organizaciones.
Para desarrollar un proceso de gestión de cambios, le resultará útil contar con formas estándar de proponer cambios en el proyecto y registrar dichos cambios a medida que se aprueban y aplican. Para impulsar la iniciativa, descargue las siguientes plantillas gratuitas de propuesta de cambio y registro de gestión de cambios.
Plantilla de propuesta de cambio
Una propuesta de cambio describe el tipo y la escala del cambio. Por lo general, es el primer paso en el proceso de gestión de cambios. Describa por qué se necesita el cambio, cuáles son los resultados e impactos esperados, cuánto tiempo y recursos se necesitan, junto con todo otro factor que deba revisarse. En esta plantilla, también se incluye un espacio para agregar información descriptiva, así como secciones para calcular los costos y los beneficios.
Descargar plantilla de Excel
Registro de gestión de cambios
Un registro de gestión de cambios es un documento que realiza un seguimiento de quién solicitó qué cambio y cuándo, el estado de la solicitud de cambio, su prioridad y la información de la resolución. Si necesita un registro más detallado, puede incluir otros detalles, como el tipo de cambio y su impacto. Esta plantilla de registro está diseñada para realizar un seguimiento de la información vital a fin de que las solicitudes de cambio se puedan priorizar, abordar y consultar con facilidad más adelante.
Descargar plantilla de Excel
Descripción general de cómo funciona la gestión de lanzamientos
No todo el software es creado de manera igual. Según la funcionalidad y aplicación del programa, el proceso de ingeniería de software varía en rigor e intensidad.
Por ejemplo, el software diseñado para uso aeronáutico se somete a rigurosas pruebas. Deberá crear una extensa documentación e implementar varias correcciones si no cumple con las rigurosas tolerancias de rendimiento. Los requisitos funcionales y las métricas de calidad son estrictos, y el software tiene que pasar por muchas capas de aprobación antes de siquiera acercarse a un avión.
Un proceso disciplinado de gestión de lanzamientos ayudará a garantizar que el software se desarrolle, pruebe y entregue de acuerdo con las condiciones de las partes interesadas principales. El equipo revisará el software para observar si hace lo que se supone que debe hacer y si está listo a tiempo.
La gestión de lanzamientos combina los siguientes elementos en un repositorio central:
- Los imperativos comerciales de dar a los clientes lo que necesitan cuando lo necesitan.
- Las tareas técnicas de aseguramiento de la calidad y cumplimiento.
- La gestión de artefactos de software.
Desde el repositorio, los artefactos se lanzan a un entorno de producción del cliente para llevar a cabo la implementación de las aplicaciones. Por lo tanto, la gestión de lanzamientos puede interpretarse como el pegamento que mantiene unidas tareas interconectadas pero distintas, las cuales componen la ingeniería de software: diseño, desarrollo, pruebas, implementación, mantenimiento, y requisitos de los negocios y los clientes.
Un lanzamiento comprende más que las funciones vitales de la ingeniería de software. Si bien los desarrolladores obviamente interpretan un lanzamiento como la entrega exitosa de un producto terminado, existen varias actividades comerciales de respaldo que también intervienen, como la capacitación del personal de ventas y atención al cliente, y las iniciativas de publicidad y marketing para el nuevo lanzamiento. Estas actividades deben realizarse en sincronía al ritmo del lanzamiento, lo cual agrega complejidad al proceso de gestión de lanzamientos.
Además, la gestión de lanzamientos no incluye solo el software con diseño nuevo. El software modificado debe atravesar el mismo proceso para garantizar que las partes interesadas obtengan lo que quieren.
El lanzamiento real se puede hacer manualmente o, cada vez más, automatizarse, según el grado de madurez del proceso de gestión de lanzamientos. Amazon utiliza un proceso de lanzamiento automatizado para lograr un lanzamiento nuevo por segundo. Históricamente, las actualizaciones semanales, mensuales y trimestrales han sido más típicas en los equipos de desarrollo de software.
Los lanzamientos pueden adoptar muchas formas diferentes: un producto físico en una caja, una descarga desde un sitio web o servidor, una notificación push en un dispositivo desde una tienda de aplicaciones móviles, o bien una actualización fluida en una aplicación basada en la web.
Todos los grupos de ingeniería de software, ya sean grandes o pequeños o pertenezcan a cualquier sector, utilizan la gestión de lanzamientos para allanar el camino del proceso. Pueden aplicarlo al software que se utiliza internamente o se vende como producto. Los grupos de ingeniería de software tanto grandes como pequeños emplean la gestión de lanzamientos en todos los sectores, y pueden usar el software resultante para ejecutar sus propios productos o sistemas, o bien para venderlo como producto a los clientes.
Uno de los enfoques de desarrollo más propicios para la gestión de lanzamientos se denomina DevOps, un término formado por la combinación de las palabras "development" (desarrollo) y "operations" (operaciones). Como su nombre lo indica, las DevOps intentan aumentar la coordinación entre los desarrolladores y las operaciones en la ingeniería de software mediante una combinación de automatización y supervisión en todas las etapas del desarrollo de software para reducir el tiempo de comercialización y mejorar la satisfacción del cliente.
Términos clave en la gestión de lanzamientos
Para dominar la gestión de lanzamientos, deberá comprender algunos términos de uso común.
Orden de trabajo de desarrollo: una orden de trabajo para el desarrollo o la modificación de una aplicación o sistema de software.
Equipo de DevOps: dado que el objetivo de las DevOps es aumentar la coordinación entre las funciones de desarrollo y operaciones, crear un equipo separado genera un problema en el nombre. A pesar del nombre, el término suele remitir a los miembros clave del equipo, tanto de desarrollo como operaciones, quienes trabajan para coordinar ambas funciones.
Orden de trabajo de instalación: de forma parecida a una orden de trabajo de desarrollo, una orden de trabajo de instalación indica la instalación de una aplicación de software, un sistema o un componente de infraestructura.
Propietario del producto: el propietario del producto en un proyecto de desarrollo es la principal parte interesada. Por lo general, representan al negocio o a los usuarios (eventuales) del producto, y definen la visión de un producto.
Gerente de proyectos: el gerente de proyectos se encarga de la dirección de un solo producto. Son responsables de definir la hoja de ruta y la visión del producto, y de negociar las entregas. Por lo general, las responsabilidades principales de un gerente de proyectos no se extienden más allá de un solo producto o una familia de productos estrechamente relacionados.
Lanzamiento: un lanzamiento consta de una o más unidades de lanzamiento.
Gerente de lanzamientos: la función del gerente de lanzamientos es planificar, coordinar, administrar y programar todos los elementos que constituyen un lanzamiento. Todos estos elementos no tienen que originarse del mismo producto necesariamente. Por ejemplo, este gerente también debe coordinar el trabajo en cualquier otro producto que esté diseñado para integrarse a la nueva versión.
Política de lanzamientos: un conjunto de reglas sobre cómo implementar lanzamientos en el entorno operativo en vivo. Se aplican distintas políticas de lanzamiento a distintos lanzamientos, las cuales dependen de factores como el impacto y la urgencia.
Registro de lanzamientos: un registro de lanzamientos donde se documenta el historial de un lanzamiento, desde la planificación hasta el cierre del proceso de desarrollo.
Unidad de lanzamiento: este término remite a un conjunto de elementos de configuración que un equipo prueba y lanza de forma simultánea en el entorno en vivo para implementar cambios aprobados. Por su parte, un elemento de configuración es un componente de una infraestructura que está bajo gestión de configuración, el proceso de asegurarse de que los atributos y el rendimiento de un producto sean coherentes con su diseño, requisitos e información operativa.
Propietario del servicio: el propietario del servicio asume la responsabilidad de alto nivel por un servicio de TI específico. No se ocupan tanto de las operaciones diarias necesarias para prestar el servicio, ya que esa es la función de un gerente de servicios.
Gerente de calidad: el gerente de calidad se asegura de que un lanzamiento cumpla con los estándares establecidos. Es posible que los gerentes de lanzamientos respondan ante ellos.
Conceptos clave en la gestión de lanzamientos
Como señala el experto en gestión de configuraciones Salman Khwaja, a menudo, la gestión de lanzamientos se describe como una superdisciplina porque implica supervisar varias disciplinas interconectadas pero bien diferenciadas.
Una de las prácticas centrales en la gestión de lanzamientos es la gestión de código, el proceso de gestionar cambios en el código informático. Mediante el uso de módulos de código o recopilaciones de líneas de código, la gestión de código simplifica y acelera la realización de cambios en el código, así como otras actividades vinculadas al código, como el mantenimiento y la depuración. Un tipo de gestión de código que constituye un aspecto importante de la gestión de lanzamientos es el control de versiones. Remite a la gestión de código para diferentes lanzamientos del mismo software con fines de comparación y referencia. La gestión de código sigue muchos de los principios de la gestión de registros.
Para desempeñar su función de manera efectiva, un gerente de lanzamientos debe fomentar la facilitación y la colaboración, principalmente entre equipos, pero también dentro de ellos. Por lo general, los gerentes de lanzamientos son profesionales con experiencia, por lo cual es posible que se les pida que participen.
Los procesos y las políticas son fundamentales para lograr una gestión de lanzamientos eficaz. Inevitablemente, surgirán problemas y, cuando aparezcan, debe haber protocolos para abordarlos. El gerente de lanzamientos también sirve de guardián del código de producción. Debe saber cada vez que un artefacto de código sale de la organización.
Luego de una serie de lanzamientos, será posible medir métricas de productividad y rendimiento para que la eficiencia de la gestión de lanzamientos se vuelva visible. Entre las métricas comunes, se incluyen aspectos como la velocidad y la tasa de trabajo pendiente.
La gestión del ciclo de lanzamientos
La gestión de lanzamientos suele seguir una ruta definida de forma clara. Comienza con la creación de un cronograma de lanzamientos en toda la organización. Algunas empresas pueden lanzar actualizaciones de software de manera continua, mientras que otras prefieren un cronograma fijo. Después, viene el cronograma de lanzamiento del producto o solución.
Por lo general, la gestión de lanzamientos comienza en la primera etapa del ciclo de desarrollo, momento en que el gerente de lanzamientos recibe solicitudes de cambios o nuevas funciones. Tras la aprobación de la solicitud, el equipo diseña el nuevo lanzamiento y comienza la planificación. Los desarrolladores crean el nuevo software. Después del desarrollo, el lanzamiento se somete a prueba y el equipo puede introducir modificaciones antes de que se acepte el lanzamiento. A partir de entonces, el lanzamiento se traslada a la implementación, donde se vuelve disponible para su uso completo. La etapa posterior a la implementación es la etapa de respaldo, en la que los errores o las historias de usuario que el equipo documenta aquí pueden incorporarse al ciclo de desarrollo como material para un nuevo lanzamiento.
Plantilla de plan de lanzamiento simple
Utilice la plantilla que se muestra a continuación para llevar a cabo un plan de lanzamiento simple. En el caso de los proyectos particularmente complejos de alto presupuesto, puede descargar aquí el marco del plan de lanzamiento desarrollado por el Centro de Servicios de Medicaid, el cual sirve como buena referencia.
Descargar plantilla de plan de lanzamiento simple — Word
Los desafíos que la gestión de lanzamientos puede contribuir a abordar
Históricamente, muchas empresas no han contado con procesos para gestionar el ciclo de lanzamientos. Sin embargo, dado que los problemas pueden representar un golpe a los resultados económicos mediante errores y fallas que cuestan mucho tiempo y dinero (así como fiabilidad y reputación), la gestión de lanzamientos surgió como una disciplina pensada para abordar algunos desafíos comunes.
Algunas organizaciones tienen dificultades para implementar código desde el desarrollo hasta los entornos de pruebas y producción. Si bien esta dinámica puede tener menos impacto en los resultados económicos, no es menos motivo de preocupación para el personal de operaciones.
En otras ocasiones, la estructura interna de una organización puede dar lugar a conflictos entre los equipos, aunque la gestión de lanzamientos puede reducir las fricciones. Del mismo modo, cuando muchos equipos de entrega trabajan en conjunto, aumenta el riesgo de que el trabajo de un equipo afecte el trabajo de otro. Un proceso de gestión de lanzamientos eficiente puede ayudar a que las organizaciones eviten una serie de problemas.
Gestión de lanzamientos y DevOps en un mundo ágil
Las organizaciones que basan su desarrollo de software en principios populares de la metodología ágil suelen producir lanzamientos con mayor frecuencia. El enfoque ágil para el lanzamiento de software se denomina entrega continua, un método que tiene como objetivo crear código listo para la implementación en cualquier momento. Elimina casi por completo las etapas convencionales de integración y pruebas, y automatiza el proceso de lanzamiento en ciclos muy cortos.
En la entrega continua, la gestión de lanzamientos sigue actuando como el conector crítico entre el desarrollo y la producción. La gestión de lanzamientos verifica la integridad del código y se asegura de que funcione según lo planeado. Los métodos ágiles desglosan los silos que a menudo se observan en las metodologías en cascada, pero requieren una documentación exhaustiva para que los procesos sean claros.
Gutiérrez de Boeing sostiene que hay mucha confusión en torno a la entrega continua y otra práctica popular, la implementación continua. "La implementación continua es el concepto por el cual cada cambio realizado en la base de código se implementará casi inmediatamente a la producción si los resultados del proceso tienen éxito. La entrega continua conlleva que cada cambio en la base de código atraviesa el proceso hasta el punto de implementarse en entornos que no son de producción. El equipo encuentra y aborda los problemas de inmediato, no más tarde, cuando planea lanzar la base de código. La base de código siempre tiene un nivel de calidad seguro para el lanzamiento. La empresa decide el momento de lanzamiento de la base de código para la producción", explica.
Para lanzar de manera efectiva y eficiente la base de código a la producción, los gerentes de lanzamientos se apoyan en tres aspectos: la automatización, una mentalidad de DevOps y la integración continua. La automatización se relaciona principalmente con las funciones de prueba, mientras que la mentalidad de DevOps mejora en gran medida la coordinación entre el desarrollo y las operaciones (el personal de entrega e infraestructura puede ser el mismo) para allanar el camino de una transición potencialmente abrupta de una etapa a la otra.
Por su parte, la integración continua es la práctica de los desarrolladores de actualizar con frecuencia sus propias copias de trabajo desde el código a una línea principal (por lo general, una vez al día). La integración continua se basa en un estricto sistema de pruebas automatizadas, y tiende a eliminar los errores rápidamente y acelerar el proceso de cambio.
Plantilla de plan de lanzamiento ágil
La planificación de lanzamiento ágil se produce antes del primer sprint para que pueda centrarse en los objetivos, las funciones y la asignación de recursos del lanzamiento. Gracias a esta plantilla de lanzamiento ágil, podrá dar cuenta de todas sus tareas, asignar cada tarea a un sprint, y calcular la duración en función de las fechas de inicio y finalización. A su vez, puede indicar el estado de cada tarea desde el menú desplegable y definir cada objetivo correspondiente.
Plantilla de plan de prueba ágil
En los proyectos ágiles, la fase de pruebas es un proceso dinámico e iterativo destinado a garantizar el uso de la información más actualizada para definir las pruebas y evitar malentendidos sobre el alcance. Esta plantilla de plan de prueba sirve de espacio para realizar un seguimiento de las acciones, los resultados esperados, los resultados reales y si se pasó o no la prueba.
Descargar plantilla de plan de prueba ágil — Excel
La gestión de lanzamientos con la Biblioteca de Infraestructura/gestión de servicios de TI
La gestión de servicios de TI es un superconjunto de actividades que las organizaciones utilizan para diseñar, planificar, entregar, operar y controlar los servicios de TI que ofrecen. Entre estas actividades se encuentra un conjunto detallado de prácticas conocidas como Biblioteca de Infraestructura de TI (ITSM). En las organizaciones que gestionan sus operaciones de TI mediante la ITSM y, específicamente la ITIL, la gestión de lanzamientos se guía por los principios de la ITIL.
En su formato actual, conocido como ITIL 2011, la ITIL consta de cinco volúmenes. La gestión de lanzamientos se incluye en el tercero de estos volúmenes, el volumen de transición de servicios, que trata sobre la prestación de servicios para uso operativo. Como puede suponer, el proceso de gestión de lanzamientos e implementaciones tiene como objetivo "planificar, programar y controlar el movimiento de los lanzamientos en los entornos de prueba y en vivo". La gestión de cambios también se encuentra incluida en el tercer volumen.
En las organizaciones de la ITIL, los lanzamientos se producen con mucha menos frecuencia que en las organizaciones ágiles. Los procesos de lanzamiento en la ITIL se gestionan mediante sistemas de tickets de ITSM, no se hace tanto hincapié en los procesos de lanzamiento automatizados. Eso no quiere decir que sean menos efectivos. Las organizaciones que implementan prácticas de ITIL pueden hacer mucho más que aumentar la eficiencia de los procesos de lanzamiento. También pueden obtener ganancias financieras y aumentar el valor comercial de los servicios que ofrecen.
Gestión de lanzamientos empresariales
La gestión de lanzamientos empresariales (ERM) se encarga del panorama general de los lanzamientos en el nivel organizativo de las entidades con software de grandes dimensiones o complejidad, como sistemas de atención médica, grandes empresas, universidades y otras organizaciones similares. La ERM se ocupa de la coordinación de lanzamientos individuales de software y su adecuación a los planes, las estrategias y el calendario más generales de la organización.
¿Por qué es importante? Imagínese una organización que desarrolla sistemas complejos de software. Varios grupos de desarrollo trabajan en diferentes componentes de estos grandes sistemas. Esta estructura tiene sentido internamente porque permite a los desarrolladores especializarse, aumentar la concentración y construir componentes pieza por pieza. Sin embargo, en última instancia, las piezas deben converger en un único sistema integrado de manera fluida. Sin la gestión general de lanzamientos a nivel empresarial, la cartera de TI de la organización carecería de cohesión.
La ERM permite a las organizaciones implementar grandes productos de software que funcionan bien como un todo integrado, y les ayuda a hacerlo de manera eficiente. Las iniciativas de la ERM suelen requerir que muchos gerentes de lanzamientos trabajen en conjunto para que puedan sincronizar sus respectivos lanzamientos.
La gestión de lanzamientos y las áreas clave de conocimiento del PMI
En una publicación del año 2000 presentada en los seminarios y simposios anuales del Project Management Institute, Franck Aguilh habló sobre el descubrimiento emergente en las empresas de desarrollo de software de que era necesario contar con una disciplina especializada que se centrase exclusivamente en la gestión de lanzamientos. El gerente de lanzamientos desempeñaría este papel en lugar del gerente de proyectos, ya que este último tiene prioridades mucho más amplias.
Aguilh dijo que la gestión exitosa de lanzamientos es un proceso que alcanza cuatro objetivos principales: implementar a tiempo, implementar según el presupuesto, afectar mínimamente a los clientes existentes, y cumplir con los requisitos de los nuevos clientes, todo ello sin dejar de tener en cuenta las presiones competitivas y los avances tecnológicos. También describió la gestión de lanzamientos como un proceso donde intervienen varias "tareas principales" que deben ser realizadas por distintas "organizaciones".
La gestión de lanzamientos requiere la coordinación de muchos departamentos dentro de una organización, cada uno de los cuales cumple una función especializada. Las "organizaciones" de Aguilh se extienden desde las ventas y el marketing hasta la I+D, las operaciones y la ingeniería de sistemas, y el respaldo al cliente y el asesoramiento legal.
"Un lanzamiento exitoso requiere una sincronía interdepartamental", afirma Dunbeck de BitTitan. "Los desarrolladores deben revisar el código en los lugares adecuados. El aseguramiento de la calidad debe realizar controles. Las operaciones deben administrar las ramas y preparar la compilación para la implementación. Así y todo, esos son solo los componentes técnicos. Si no tiene una forma de comunicar el cambio de manera interna, sus vendedores se sorprenderán al presentar a los clientes demostraciones que tienen cambios en las funciones o en los botones. Su equipo de soporte no podrá responder las preguntas que lleguen y sus clientes no obtendrán las respuestas que necesitan si no les comunicó los cambios mediante notas sobre el lanzamiento, artículos del centro de ayuda, entre otros", enfatiza.
"La forma más sencilla de resolver estos problemas es identificar claramente a las partes interesadas en el lanzamiento e involucrarlas con frecuencia a lo largo del ciclo del proyecto. Cada organización tiene distintas preferencias para la comunicación. Algunas buenas formas de mantener a las personas al tanto son las reuniones, un canal de chat, una página Wiki o simplemente correos electrónicos. Lo importante es identificar una frecuencia y luego atenerse a ella", concluye Dunbeck.
Según la visión de Aguilh, la gestión de lanzamientos se basa parcialmente en la aplicación de los principios de gestión de proyectos a los lanzamientos de software. Incluyen las principales áreas de procesos de gestión de proyectos: inicio, planificación, ejecución, control y cierre.
Sin embargo, Aguilh también planteó nueve procesos específicos para la gestión de lanzamientos. A continuación, encontrará descripciones de estos nueve procesos, así como el orden en que se producen:
- Solicitud de producto funcional (FPR): el mecanismo para que un "grupo funcional" formalice su solicitud de incorporación de nuevas funciones al software.
- Proceso de documentación: el equipo pone en marcha protocolos de intercambio de información para el próximo lanzamiento.
- Proceso de empaque del lanzamiento: durante este proceso, el equipo toma una decisión sobre el contenido que incluirá el lanzamiento final en función de determinados factores, como la presión del mercado, el costo, los ingresos, el tiempo de desarrollo y la integración.
- Proceso de desarrollo/proceso de control de cambios: estos dos pasos se llevan a cabo en conjunto y se explican por sí solos. Durante el desarrollo, pueden usarse puertas de calidad para indicar los hitos del ciclo de desarrollo. El control de cambios continúa en pruebas de laboratorio y campo, que verifican tanto si la nueva funcionalidad se desenvuelve según lo esperado como si afectó a las funciones existentes.
- Proceso de capacitación: conlleva capacitar al personal de soporte técnico, ventas directas, marketing y telemarketing.
- Pruebas de clientes: este paso se produce mediante lanzamientos beta para los clientes.
- Proceso de notificación del cliente: la última etapa antes de la implementación implica informar a los clientes que próximamente se realizará un lanzamiento.
- Implementación: la implementación es un proceso de varias etapas que incluye la preimplementación, la implementación en sí y la posimplementación.
Aguilh sugirió que los procesos de gestión de lanzamientos se corresponden mucho con aquellos de la gestión de proyectos. Por ejemplo, la FPR y el empaque del lanzamiento son básicamente una consideración del alcance y la planificación, mientras que la calidad se corresponde con la documentación, el desarrollo, el control de cambios y la capacitación. Por su parte, la ejecución y el control se corresponden con la capacitación, las pruebas de clientes, la notificación al cliente y la implementación. Por supuesto, el cierre se correlaciona con la implementación. Por lo tanto, resulta evidente que se pueden establecer paralelismos útiles entre la gestión de proyectos y la gestión de lanzamientos, y que un gerente de lanzamientos eficaz debe poseer las mismas competencias que un gerente de proyectos.
Procesos de gestión de lanzamientos por etapas en el ciclo de vida del desarrollo de software
Hasta ahora, hemos visto cómo los procesos de gestión de lanzamientos se alinean con los procesos básicos de la gestión de proyectos. Ahora, veamos cómo los procesos de gestión de lanzamientos se alinean con las etapas del ciclo de vida del desarrollo de software (SDLC). Por lo general, el SDLC presenta seis etapas:
- Recopilación y análisis de requisitos
- Diseño
- Ejecución o codificación
- Pruebas
- Implementación
- Mantenimiento
Durante el desarrollo, los gerentes establecen una política de lanzamientos, un documento que define el alcance, los principios y los objetivos finales del proceso de gestión de lanzamientos. Utiliza los objetivos estratégicos de la organización para brindar sustento y guiar el proceso de gestión de lanzamientos. Por ejemplo, echemos un vistazo a las políticas de lanzamientos de Apache Software Foundation, que promueve proyectos de software de código abierto para el bien público.
Los gerentes de lanzamientos elaboran planes de lanzamiento en función de la política de lanzamientos. Dichos planes sirven de pautas generales para implementar varios lanzamientos.
Durante la fase de diseño, el gerente de versiones se asegura de que los activos de hardware y software que respaldarán el lanzamiento se encuentren diseñados y configurados. Luego, comienza la codificación.
Durante la ejecución, los desarrolladores crean y configuran el código. Durante las pruebas, los evaluadores someten el código a prueba en un entorno operativo. Durante la implementación, el personal implementa una versión en vivo del software, mientras que el equipo de aseguramiento de la calidad lleva a cabo una revisión de la calidad para comprobar que el lanzamiento cumple los requisitos establecidos. Si el lanzamiento pasa la revisión de calidad, se valida y se programa para la producción. Este sello de aprobación se denomina aprobación de lanzamiento. Si quedan errores, el equipo rechazará el lanzamiento. Un lanzamiento aceptado tiene un plan de implementación que abarca los detalles de la implementación, y la empresa informa a los clientes y los usuarios finales sobre el próximo lanzamiento. Es posible que sea necesario realizar capacitaciones.
Las unidades de lanzamiento se implementan en la producción para el lanzamiento completo. Algunas organizaciones prefieren verificar la ejecución en esta etapa para establecer si el lanzamiento funcionará sin problemas en vivo.
En la etapa de mantenimiento, los desarrolladores llevan a cabo una revisión de los problemas del lanzamiento y el registro que deberán resolverse para la próxima versión.
Plantilla de cronograma de gestión de lanzamientos
A fin de que el cronograma sea claro para todas las actividades de lanzamiento, elabore un cronograma de gestión de lanzamientos. Utilice esta plantilla para realizar un seguimiento de las entregas y los plazos claves, y asegurarse de que todas las personas se encuentren en sintonía.
Descargar plantilla de cronograma de gestión de lanzamientos
Implementación, lanzamiento y entrega
El término implementación a menudo se utiliza como sinónimo de lanzamiento y entrega, pero no significan exactamente lo mismo. La implementación representa la instalación o ejecución de una nueva versión de código en un servidor (funcionamiento "en vivo" del software). Tal implementación puede ocurrir en un servidor de pruebas en lugar de un servidor de producción. Un lanzamiento es la forma de software que adopta esta nueva versión. El lanzamiento está destinado a un público más allá de los desarrolladores, ya sean otras personas de la organización o clientes. Por lo general, un lanzamiento lleva un número de versión. Cuando un cliente implementa un lanzamiento, se suele describir como una instalación del software. La entrega describe el proceso de lograr que el código pase por las etapas de desarrollo, prueba e implementación.
La implementación es un punto clave tanto en el ciclo de vida del desarrollo de software como en el ciclo de gestión de lanzamientos. La implementación marca el momento en que la nueva versión de software se encuentra disponible para su uso y que el nuevo lanzamiento se pone en marcha en vivo. En palabras de Paul Jackson, profesor de la Facultad de Informática en la Universidad de Edimburgo, la implementación conlleva "sacar el software de las manos de los desarrolladores y depositarlo en manos de los usuarios". En esta etapa, es posible que los usuarios finales necesiten capacitación.
Jackson señala que la implementación suele presentar problemas: más del 50% del software encargado no se utiliza, principalmente, porque fracasa en la etapa de implementación. Si el software se topa con problemas en la implementación, los desarrolladores "retrocederán" a la versión anterior hasta que se resuelvan los problemas.
Jackson también informa que el 80% del gasto del software encargado se produce durante el despliegue y después de este. Desde luego, esto no significa necesariamente que la implementación en sí sea un fracaso. Tal resultado puede deberse a que los problemas del desarrollo recién se manifiestan en la implementación.
Así y todo, a veces, el problema está en la implementación. Quizás, el cliente simplemente no está preparado para un cambio en la experiencia del producto, algo que suelen exigir los grandes lanzamientos de sistemas. La falta de adopción de software también puede surgir como resultado de otros factores: el hardware del cliente no puede soportar el nuevo lanzamiento; el cliente tiene problemas para instalar el software; la falta de capacitación presenta un obstáculo; o la nueva instalación "rompe" el otro software preexistente del cliente.
Muchos de los problemas directamente vinculados a la implementación se pueden resolver mediante la automatización y la capacitación, por lo que el usuario final no tendrá que reflexionar en aspectos como la compatibilidad del sistema. Confiar en las prácticas recomendadas para la gestión de lanzamientos convierte a estas soluciones en un procedimiento operativo estándar.
¿Qué es un proceso de implementación de lanzamientos?
El proceso de implementación de lanzamientos se centra en lograr que el software sea operativo en un entorno en vivo. Para que esto ocurra, el software debe ser sometido a prueba y ser aceptado oficialmente por el propietario del producto u otra parte interesada del negocio. Durante el proceso de implementación, los usuarios reciben capacitación sobre la actualización del software, y los miembros del equipo realizan una evaluación o revisión del rendimiento y el resultado de la implementación.
Prácticas recomendadas para la gestión de lanzamientos
En la gestión de lanzamientos, las prácticas recomendadas son las directrices creadas y perfeccionadas por empresas que ya consiguieron implementar la ITIL. Las directrices son propiedad de la Oficina del Gabinete de Gran Bretaña, que también se encarga de publicarlas. Los procesos de gestión de lanzamientos de la ITIL se han utilizado con buenos resultados en programas espaciales, servicios de salud, bancos y empresas de entretenimiento. Las organizaciones deben modificar las directrices para que cumplan con sus propios requisitos y capacidades. Sin embargo, tenga en cuenta que se trata de un marco de referencia, no un dogma.
Aunque la gestión de lanzamientos tiene máxima importancia durante la transición del desarrollo a la producción, comienza con la planificación de lanzamientos durante el desarrollo. Por ejemplo, es buena idea establecer una junta de asesoramiento de cambios que supervise los cambios en toda la organización. También es aconsejable diseñar un único sistema de gestión de lanzamientos que se pueda usar en todo el SDLC.
De mismo modo, crear una lista de verificación del proceso de lanzamiento fomenta la transparencia y la comprensión compartida sobre el proceso de gestión de lanzamientos y cómo crea valor comercial. Como complemento al libro "Manifiesto de la lista de verificación" de Atul Gawande, utilizar una lista de verificación también facilita el control sobre el proceso de lanzamiento, sobre todo si hay que supervisar métricas. Además, siempre ayuda contar con un patrocinador sénior activo.
Harding cree que un simple error que podría haber sido cubierto por una lista de verificación fue la causa de la filtración de varios títulos de videojuegos en el sitio web de Walmart Canadá en mayo de 2018, antes de su debut oficial en una conferencia del sector. "Lo más probable es que se haya definido incorrectamente la fecha para las páginas del producto, y que nadie lo haya captado antes del lanzamiento al público. En la comunidad médica, las listas de verificación salvan vidas. La gestión de lanzamientos no es tan dramática, pero quizás salve su puesto de trabajo".
Plantilla de lista de verificación de lanzamiento de software
Para realizar un seguimiento de todas sus actividades de lanzamiento, contemple usar una lista de verificación. Esta plantilla está disponible en formatos de Word y Excel, e incluye espacios para agregar notas e información sobre los estados de marketing, desarrollo de productos, aseguramiento de la calidad, ingeniería/DevOps, experiencia del usuario, soporte técnico, servicios y tareas legales. Edite el formulario para adaptarlo a las necesidades de su proyecto.
Descargar plantilla de lista de verificación de lanzamiento de software
Algunas prácticas recomendadas no son más que sentido común. Por ejemplo, la integración continua mejora la calidad del lanzamiento final mediante la detección rápida de errores. No es una buena idea realizar un lanzamiento un viernes, ya que no deja tiempo durante la semana laboral para solucionar problemas en caso de imprevistos. A su vez, vale la pena programar un lanzamiento durante un período de poco tráfico (para ello, deberá identificar cuándo sus clientes están más activos) a fin de aplicar un mejor control de daños si las cosas salen mal. Otra opción es llevar a cabo una implementación por etapas, donde las funciones estén disponibles solo para un pequeño número de usuarios a la vez. Desde luego, es necesario realizar una copia de seguridad de las bases de datos antes de los lanzamientos.
Por último, recuerde que la implementación de un proceso de gestión de lanzamientos es un proceso en sí mismo. La gestión de lanzamientos se puede iterar, mientras que la automatización se puede ir incorporando de a poco. No intente forzar el proceso.
Herramientas de software para la gestión de lanzamientos
Las herramientas de software pueden acelerar y facilitar el proceso de gestión de lanzamientos.
Por ejemplo, los productos de software contemporáneos están diseñados para ser compatibles con varias plataformas, desde navegadores de Internet hasta servidores de aplicaciones y sistemas operativos. Por este motivo, deben ponerse a prueba en estos entornos antes de su lanzamiento. Crear y mantener todos los entornos necesarios para las pruebas representa un problema. Sin embargo, existe una solución sencilla: usar servicios virtualizados en la nube, como Selenium y SmartBear, que simplifican el proceso de implementación de configuraciones para las plataformas destino mediante la creación de un entorno simulado para cada configuración con fines de prueba.
Para facilitar todo el proceso de gestión de lanzamientos, las plataformas de desarrollo de software y los sistemas de gestión de lanzamientos, como GitHub, Jira y muchos otros, ofrecen una integración sólida de los componentes necesarios para lograr un lanzamiento exitoso. Estos recursos pueden usarse en todo el SDLC, desde la planificación de lanzamientos hasta la producción.
Dichas herramientas suelen poder adaptarse a escala según las necesidades de la organización, y centralizarán las funciones de actualización y administración, aspectos especialmente útiles cuando son accesibles a través de Internet como herramientas de SaaS (software como servicio). Las mejores herramientas también serán compatibles con las pruebas y la implementación de componentes de gestión, junto con la gestión de cambios y las integraciones con componentes de gestión de servicios de terceros, lo cual permite conformar un sistema de entrega integral. Busque herramientas que cumplan con las directrices del Foro de Gestión de Servicios de TI ITIL V3.
Las herramientas que permiten una automatización al menos parcial del proceso de lanzamiento son de gran ayuda. Quizás sea posible automatizar la entrega de software hasta la producción o configurar una serie de procesos semiautomáticos con aprobaciones e implementaciones a pedido.
Otras funciones útiles incluyen la capacidad para realizar un seguimiento de los cambios en todas las versiones. De esta manera, será fácil llegar a la raíz de los problemas, y contar con una estructura que alivie la carga de retroceder a la última versión funcional. También resulta útil registrar los comentarios de las aplicaciones, una función que se puede marcar como trabajo pendiente para las próximas versiones.
Además, evalúe la posibilidad de incorporar herramientas que sean compatibles con la integración e implementación continuas. La implementación continua va un paso más allá de la entrega continua, ya que implementa inmediatamente los cambios a medida que pasan por el proceso de producción. Este enfoque acelera el proceso de comentarios y mejora significativamente la eficiencia.
KPI y métricas de gestión de lanzamientos
Una vez que un proceso de gestión de lanzamientos ha madurado, el gerente de lanzamientos puede dirigir su atención a las métricas de rendimiento con el objetivo de mejorar el proceso. Veamos algunos ejemplos:
- Tiempo de inactividad del lanzamiento: la primera métrica importante. Cualquier lanzamiento de software corre el riesgo de atravesar tiempo de inactividad, cuya duración puede ir desde unos minutos hasta varias de horas o incluso días. El tiempo de inactividad no es malo en sí. De hecho, a menudo es una necesidad. Dicho esto, es importante poder diferenciar entre los distintos tipos de tiempo de inactividad. Por ejemplo, el tiempo de inactividad estimado es necesario y está incorporado en el cronograma de lanzamiento. Una buena idea es compararlo con el tiempo de inactividad real, que se mide después del lanzamiento. También está el tiempo de inactividad no planificado, que en algunos lanzamientos puede ser una señal de que no se están solucionando los problemas de raíz.
- Tipo y prioridad de los lanzamientos: los lanzamientos se clasifican como mayores, menores o un punto intermedio, y se les asigna una prioridad (alta, media o baja). Tome un conjunto de lanzamientos y desglóselos por tipo y prioridad. Debería haber una combinación equilibrada de lanzamientos por tamaño y prioridad. Tener demasiados lanzamientos importantes para el mismo producto puede indicar que existen problemas graves con el aseguramiento de la calidad, mientras que tener demasiados lanzamientos de alta prioridad sugiere que su equipo está atascado en una lucha permanente por "apagar incendios", lo cual tiende a agotar a todas las personas.
- Cantidad de lanzamientos a tiempo: dado que no se garantiza el lanzamiento a tiempo, aborda principalmente los retrasos en el lanzamiento. En este caso, puede obtenerse información interesante. Por ejemplo, ¿algunos equipos de desarrollo tienen lanzamientos más tardíos o a tiempo que otros? ¿Existe un patrón para las entregas tardías o a tiempo según la priorización de lanzamientos? ¿Cuáles son las causas primordiales por las cuales los lanzamientos se realizan de manera reiteradamente tardía?
También puede realizar un seguimiento de algunas métricas interesantes a nivel empresarial. Entre ellas, se incluyen el tamaño de las versiones empresariales desde tres perspectivas diferentes: proyectos, implementaciones del sistema y funciones. Otro conjunto útil de métricas hace un seguimiento de la cantidad de proyectos, sistemas y funciones que se eliminan del alcance. La eliminación del alcance ocurre cuando un elemento programado para el lanzamiento no consigue pasar su puerta de lanzamiento y, por tanto, es eliminado del lanzamiento general para no demorarlo.
Casos de estudio sobre la gestión de lanzamientos
Hasta ahora, mencionamos mucha teoría, y quizás se pregunte cómo funciona la gestión de lanzamientos en el mundo real. Microsoft es un buen punto de partida.
La Core Services Engineering (CSE) de Microsoft se basa en una combinación de integración continua, entrega continua y una plataforma alojada en la nube llamada Visual Studio Team Services (VSTS). Su enfoque de desarrollo, denominado "ingeniería moderna", se basa en los principios de las DevOps y el desarrollo ágiles.
Descubra cómo Microsoft estructura su desarrollo en torno a la entrega continua y comprenderá cómo se beneficia tanto gracias a una mejor gestión de lanzamientos. Los ingenieros de software de Microsoft se centran en crear un producto mínimamente viable que capta a pioneros y, al mismo tiempo, permite a los desarrolladores recopilar comentarios para lanzamientos posteriores.
Los desarrolladores de Microsoft pueden probar el código en cualquier entorno de implementación en cualquier momento y utilizar la componentización para facilitar la creación del código. Según el proceso de gestión de lanzamientos de Microsoft, pueden iniciar compilaciones asistidas y desatendidas que tardan solo unos minutos, sin disputar recursos. Además, su proceso de validación de implementación es automatizado.
La CSE también adopta los principios ágiles del diseño iterativo y la creación rápida de prototipos, al tiempo que utiliza la automatización para reducir los tiempos de prueba. De esta manera, la CSE puede acelerar sus ciclos de lanzamiento, corregir problemas rápidamente y ofrecer actualizaciones y mejoras continuas en fragmentos más pequeños. Esto último también reduce el riesgo, ya que se dedica menos tiempo a desarrollar cada función.
No solo las empresas de tecnología se benefician de la gestión de lanzamientos. Entre 2008 y 2010, la división de TI del Depósito Central de Valores de Turquía llevó a cabo una amplia automatización de la gestión de configuraciones, dependencias, infraestructuras, cambios, bases de datos y configuración de aplicaciones para "eliminar por completo" los problemas de lanzamiento, reducir el tiempo de lanzamiento y reducir radicalmente los errores vinculados a la implementación.
En United Airlines, un modelo de cuatro pasos para el lanzamiento, que comprende la planificación, la coordinación, la ejecución y la automatización, todo informado por extensos datos, ayudó a la empresa a pasar de la gestión de lanzamientos centrada en las hojas de cálculo a un sistema centralizado de seguimiento y gestión de lanzamientos mediante un panel.
Cómo mejorar la gestión de lanzamientos
Para mejorar las capacidades de gestión de lanzamientos de su organización, es necesario comprender el estado actual de su proceso de gestión de lanzamientos. Para acceder a dicha información, debe abordar la situación de forma cuantitativa y cualitativa.
En el caso cuantitativo, debe recopilar algunas métricas básicas, incluidos los tiempos promedio de publicación, el tipo y la prioridad de las publicaciones, la cantidad de errores y la cantidad de publicaciones retrasadas. Estas métricas sirven tanto para identificar el estado actual de la gestión de lanzamientos como para determinar los puntos de referencia del rendimiento.
En el caso cualitativo, hable con las personas que forman parte del proceso de gestión de lanzamientos, sobre todo cuando el desarrollo se conecta con las operaciones, y averigüe lo que piensan. Tales personas podrán señalar realidades que no se ven reflejadas en las cifras.
Para controlar la gestión de lanzamientos, establezca un ciclo de lanzamientos regulares, lo cual contribuye a generar constancia. Desde luego, tal posibilidad no estará disponible para todos los lanzamientos, pero puede hacerlo para aquellos grandes planificados previamente. Ponga en marcha procesos de lanzamiento livianos en lugar de intentar desarrollar una cultura desde el principio. Tal abordaje le permitirá establecer la infraestructura para los lanzamientos desde el principio, y someterla a prueba y revisión en caso necesario.
Con el tiempo, los procesos que funcionen bien se convertirán en práctica estándar. En función de su encuesta inicial de gestión de lanzamientos, es posible que ahora pueda empezar a imponer requisitos de calidad más estrictos y mejorar los puntos de referencia vinculados a la eficiencia. Para minimizar el impacto de los lanzamientos sobre sus usuarios, elimine el tiempo de inactividad y las pruebas de regresiones. En esta etapa, también puede empezar a pensar en regularizar y automatizar procesos, como las pruebas y la verificación.
Una cultura de lanzamientos realmente colaborativa lleva tiempo de crecimiento, y necesita una infraestructura de lanzamiento para prosperar. Para fomentar esta cultura, puede invertir en su personal, y en herramientas y técnicas de gestión de lanzamientos que animen a las personas a adoptar un enfoque holístico sobre todo el proceso de gestión de lanzamientos.
Mejorar la comunicación y el acceso a la información fomentará la coordinación. Haga saber que los lanzamientos mejorarán, ya que establecer expectativas positivas marca la diferencia. "Uno de los desafíos a los que se enfrentan los equipos aparece cuando consideran que los lanzamientos son un obstáculo puramente técnico, y se olvidan de mantener una buena comunicación dentro de la empresa y con las partes interesadas. Para superar esta situación, asegúrese de que todos los miembros del equipo entiendan los objetivos y los riesgos, y que los cambios se comuniquen a los usuarios finales para evitar sorpresas", afirma White de Small Footprint.
El trabajo del gerente de lanzamientos
Si guiar a los desarrolladores y las operaciones hacia un objetivo final y una fecha límite de producción le suena divertido, evalúe la posibilidad de desempeñarse como gerente de lanzamientos.
Un gerente de lanzamientos debe sortear un ecosistema complejo de proyectos, métodos de desarrollo, infraestructura y partes interesadas, al mismo tiempo que coordina iniciativas de todas las personas que contribuyen a un lanzamiento empresarial. A su vez, los gerentes de lanzamientos deben informar a los gerentes principales de la organización, hasta al director ejecutivo (aunque en las organizaciones más maduras, es probable que la gestión de lanzamientos sea una función más autónoma), y tienen mucha responsabilidad cuando un lanzamiento sale mal.
Harding de Microsoft afirma que es importante que los gerentes de lanzamientos tengan amplias competencias en gestión de proyectos. "Proporcionar capacitación y acceso a otras partes interesadas en el proyecto es clave para reducir la dependencia sobre una persona. Los gerentes de lanzamientos suelen tener un conjunto bastante específico de competencias para resolver problemas, pero pueden acudir a otros gerentes de proyectos para adquirir conocimientos sobre elementos de la configuración y el proceso del producto", explica.
Entonces, ¿cuáles son las cualidades de un buen gerente de lanzamientos? Están íntimamente familiarizados con el funcionamiento del desarrollo y las operaciones, es decir, tanto el trabajo técnico como la forma en que las personas trabajan juntas. Poseen excelentes competencias de gestión del trabajo, el tiempo y, especialmente, las personas. Se comprometen con la calidad, la eficiencia y el proceso. Son defensores de la automatización y, en el ámbito técnico, deben ser operadores competentes de repositorios de código fuente. Además, dominan las tantísimas dependencias entre proyectos, funciones y departamentos que definen un lanzamiento empresarial.
También saben qué tomar en cuenta (y qué no) en materia de gestión de lanzamientos.
Mitos sobre la gestión de lanzamientos y versiones de software
Circula mucha sabiduría convencional sobre la gestión de lanzamientos, ¿pero cuánta es realmente valiosa? Por suerte para nosotros, Slinger Jansen y Sjaak Brinkkemper, dos investigadores de la Universidad de Utrecht en Países Bajos, ya intentaron responder esta pregunta mediante una comparación entre el costo y el valor. Descubrieron que imperan muchos mitos y conceptos erróneos.
Mito 1: los clientes quieren mantenerse al día. En realidad, a los clientes solo les interesan las actualizaciones cuando ofrecen una funcionalidad útil. Si un lanzamiento no mejora su experiencia, no les interesa.
Mito 2: desde la perspectiva del proveedor, los clientes deben mantenerse al día con las actualizaciones. En este caso, los proveedores se preocupan más que los clientes de que estos utilicen la versión más reciente del software. Como ya mencionamos, los clientes realizan las actualizaciones cuando quieren y pueden utilizar versiones anteriores sin quejas.
Mito 3: el lanzamiento más reciente siempre es la mejor. Según el caso de uso de un cliente, un lanzamiento antiguo puede ser más que adecuado, mientras que uno nuevo podría requerir que se dedique tiempo a aprender una nueva interfaz o nuevas funciones.
Mito 4: las correcciones pueden esperar hasta el próximo lanzamiento importante. Lamentablemente, "el próximo lanzamiento importante" rara vez llega a tiempo. Hasta que finalmente se realice tal lanzamiento, los problemas continuarán dando vueltas y molestando a los clientes.
Mito 5: las soluciones temporarias deben evitarse a toda costa. A veces, a las personas no les importan las soluciones temporarias cuando la alternativa significa desarrollar una actualización a una nueva versión que resulta costosa y demanda mucho tiempo.
Mito 6: los clientes siempre quieren nuevas funciones. Si las nuevas funciones obstruyen sus cómodos y sólidos flujos de trabajo, entonces no las quieren.
Mito 7: realizar lanzamientos con frecuencia es algo malo. En tanto no se realicen todas las veces a los clientes externos, los lanzamientos frecuentes no son perjudiciales. Los lanzamientos frecuentes pueden acortar el ciclo de comentarios, pero asegúrese de confinar la mayoría de ellos a usuarios internos y clientes piloto.
Mito 8: un cliente silencioso es un cliente feliz. Los clientes que se ponen en contacto con mayor frecuencia con el equipo de soporte durante las primeras etapas de uso son quienes demuestran estar más satisfechos con el producto. Comuníquese con sus clientes.
Mito 9: los clientes leen las notas del lanzamiento. Por supuesto que no. Solo lo hacen si es obligatorio (es decir, cuando no tienen opción, o bien seleccionan software profesional), por lo que prefieren información específica que resuma aquello necesario que ellos sepan como grupo particular de clientes.
Mito 10: tener muchos lanzamientos diferentes en el campo es malo. Esta situación puede ser un problema si el proveedor ofrece apoyo continuo a los clientes que usan versiones anteriores. Así y todo, incluso en ese caso, se trata de una cuestión de cifras. Que una cantidad pequeña de clientes use una versión anterior no es un problema inmanejable.
Grandes tendencias en el campo de la gestión de lanzamientos
Poco a poco, las prácticas ágiles y la automatización se están convirtiendo en principios básicos para la gestión de lanzamientos (y con buena razón). La automatización acorta los tiempos de lanzamiento, y puede reducir significativamente el riesgo de error. Las prácticas ágiles impulsan la adopción de la automatización de compilaciones, pruebas, implementaciones y comentarios, todo lo cual reduce la carga sobre el equipo de desarrollo.
"Tanto la automatización como el uso de plataformas virtualizadas o plataformas en la nube habilitan y respaldan otra tendencia novedosa en la gestión de lanzamientos: la entrega continua", afirma Gabriel Gutiérrez, gerente de lanzamientos de Boeing. "Gracias a la entrega continua, cada nueva revisión de software se elabora, prueba y prepara automáticamente para ser implementada, lo cual convierte las ideas en realidad de manera rápida. La entrega continua permite realizar implementaciones con mayor frecuencia, que conlleva obtener comentarios más frecuentes del cliente. Como resultado, se pierde menos tiempo de averiguación si se realizan aquellos cambios que los clientes necesitan y les preocupan", agrega.
Otra tendencia que ha ganado tracción es el uso de sistemas de control de versiones distribuidas (DVCS), como GIT, Mercurial y Perforce, que cambian fundamentalmente la manera en que los equipos colaboran. El DVCS permite a los usuarios mantener repositorios autónomos completos con historiales de versiones completos en computadoras locales. Tal capacidad habilita la opción de trabajar sin conexión y realizar cambios únicamente en la configuración local. Los desarrolladores pueden realizar cambios sin afectar el código central, una opción ideal para la experimentación.
Se cree que la cultura y la práctica de las DevOps se volverán moneda corriente en las empresas más grandes, puesto que la automatización de todas las etapas se volverá un objetivo alcanzable. Por su parte, las empresas emergentes probablemente comiencen a adoptar la metodología de DevOps desde el principio. En parte, esto se debe a que, si las DevOps se implementan de manera adecuada, pueden lograrse tiempos de fallas más cortos, tasas de recuperación más rápidas y una mayor cantidad de implementaciones, lo cual, a su vez, conlleva una disminución en el tiempo de inactividad, un aspecto muy costoso. Tal como aumenta la adopción de las DevOps, de mismo modo lo hace el proceso de cambio a la izquierda, que ocurre cuando las pruebas automatizadas y la supervisión del rendimiento se producen en una instancia anterior del ciclo de vida, y la verificación de seguridad se convierte en parte del proceso de entrega.
"Si bien no es una tendencia nueva, las implementaciones más frecuentes y rápidas pasaron de ser un desafío técnico a una expectativa de las partes interesadas", aporta White de Small Footprint. "A medida que las partes interesadas toman más conocimiento sobre las posibilidades y los beneficios de contar con implementaciones más frecuentes, ya no están más satisfechas con la idea de esperar semanas entre lanzamientos, sino que solicitan a los equipos de desarrollo que los realicen con más frecuencia. Si el equipo no cuenta con una infraestructura de entrega continua e integración sólida, el equipo puede verse sometido a un gran estrés", concluye.
Quigley afirma que la ejecución exitosa de estos rápidos y bien definidos incrementos del contenido de software requiere "un nivel de diligencia sobre la gestión de la configuración y el seguimiento del crecimiento del producto a lo largo del tiempo, debido a que se entregan más iteraciones al cliente".
Más recursos sobre la gestión de lanzamientos
Para obtener una introducción más técnica a la gestión de lanzamientos, consulte este documento técnico de Jez Humble de ThoughtWorks Studios. Una vez que haya terminado de leerlo, Electric Cloud tiene un amplio abanico de recursos sobre gestión de lanzamientos que le permitirán profundizar en la materia.
Si contempla la gestión de lanzamientos como una profesión posible y ya trabaja con el método ágil, consulte este breve curso de Jan-Erik Sandberg en Pluralsight. Si cree buena idea obtener una certificación en ITIL, Pink Elephant ofrece cursos oficiales de certificación en ITIL a partir del nivel de grado.
Por último, si busca aplicar la gestión de lanzamientos de forma inmediata, eche un vistazo a cómo lo hace el Departamento de Tecnología de la Información de Harvard .
Mejore la gestión de lanzamientos mediante Smartsheet para el desarrollo de software
Empodere a sus empleados para que vayan más allá gracias a una plataforma flexible, diseñada para satisfacer las necesidades de su equipo y capaz de adaptarse cuando esas necesidades cambien. La plataforma Smartsheet facilita la planificación, la captura, la gestión y la creación de informes sobre el trabajo, desde cualquier lugar, lo que ayuda a su equipo a ser más eficiente y lograr más. Cree informes sobre las métricas claves y obtenga visibilidad en tiempo real acerca del trabajo en curso gracias a informes, paneles y flujos de trabajo automatizados diseñados para ayudar a su equipo a mantenerse conectado e informado. Cuando los equipos tienen claridad sobre el trabajo en curso, pueden lograr mucho más en el mismo tiempo. Pruebe Smartsheet gratis hoy mismo.