Cómo controlar versiones de procesos automatizados

Cómo controlar versiones de procesos automatizados

Introducción

Una automatización cambia con el tiempo. Se modifican reglas, campos, credenciales, aplicaciones, condiciones, formatos de datos, responsables y excepciones. Aunque cada cambio parezca pequeño, todos alteran de alguna forma el comportamiento del proceso.

El problema aparece cuando esas modificaciones se realizan directamente sobre la automatización activa y después nadie puede responder con seguridad a preguntas básicas: ¿qué cambió?, ¿cuándo?, ¿por qué?, ¿quién lo cambió?, ¿qué versión funcionaba antes?, ¿qué datos esperaba cada versión?, ¿cómo volver atrás si el cambio falla?

Controlar versiones de procesos automatizados consiste en gestionar esa evolución de forma deliberada. No significa convertir una pequeña empresa en un departamento de desarrollo de software ni implantar una burocracia pesada. Significa establecer mecanismos suficientes para que una automatización pueda cambiar sin perder trazabilidad, estabilidad ni capacidad de recuperación.

El control de versiones resulta especialmente importante cuando una automatización deja de ser un experimento y pasa a formar parte de la operativa habitual. Cuanto mayor sea su impacto sobre datos, comunicaciones, documentos, clientes, tareas o sistemas internos, mayor debe ser la disciplina aplicada a sus cambios.

Este artículo explica qué elementos conviene versionar, cómo identificar versiones, cómo registrar cambios, cómo separar configuración y lógica, cómo probar una versión nueva, cómo desplegarla con poco riesgo y cómo conservar una ruta de vuelta cuando algo no funciona como se esperaba.

Índice

Qué significa versionar una automatización

Versionar una automatización significa conservar una identidad clara para cada estado significativo del proceso y mantener suficiente información para distinguirlo de los estados anteriores y posteriores.

Una versión debería permitir conocer, como mínimo:

  • qué comportamiento corresponde a esa versión;
  • qué cambios incorpora;
  • qué configuración necesita;
  • qué dependencias utiliza;
  • qué estructura de datos espera;
  • cuándo se puso en funcionamiento;
  • qué versión sustituyó;
  • cómo volver a una versión anterior si es necesario.

No es solo guardar copias

Guardar un archivo llamado automatizacion-final-2-buena-definitiva no constituye un verdadero sistema de versiones. Una copia aislada ayuda, pero sin criterios de identificación, historial y relación entre versiones sigue siendo difícil reconstruir la evolución.

Versionar es poder explicar el estado del sistema

El objetivo práctico es que, ante una incidencia, pueda responderse con rapidez: “en producción está la versión 2.4, activada el 12 de agosto; añadió esta validación y sustituyó la 2.3”.

Esa claridad reduce la dependencia de memoria y permite tratar la automatización como una pieza operativa mantenible.

Por qué el control de versiones importa

Las automatizaciones suelen empezar siendo sencillas. Mientras solo existe una persona modificándolas y los cambios son poco frecuentes, es fácil pensar que versionar resulta innecesario.

Sin embargo, el riesgo aumenta cuando:

  • la automatización procesa información importante;
  • se modifica varias veces al año;
  • depende de APIs o aplicaciones externas;
  • intervienen varias personas;
  • existen varias automatizaciones conectadas;
  • los cambios pueden afectar a datos históricos;
  • es necesario demostrar qué comportamiento existía en una fecha concreta.

Permite investigar incidencias

Si un error empieza después de un cambio, conocer la versión activa y su historial reduce enormemente el tiempo de diagnóstico.

Reduce miedo a modificar

Cuando existe una copia conocida y una estrategia de reversión, cambiar deja de ser una operación completamente irreversible.

Evita pérdida de conocimiento

El historial explica no solo qué existe hoy, sino por qué se llegó a ese estado.

Facilita comparar comportamientos

Dos versiones pueden tratar un mismo caso de forma diferente. Poder identificarlas evita confundir resultados.

Si la automatización ha acumulado tantos cambios que la propia estructura ya resulta difícil de mantener, el problema puede superar el simple versionado. En ese caso conviene revisar cómo detectar cuándo una automatización debe rediseñarse.

Qué elementos conviene versionar

Una automatización no es únicamente el diagrama visible del flujo. Su comportamiento depende de varios elementos que pueden cambiar de manera independiente.

Lógica del proceso

Condiciones, ramas, secuencias, cálculos, transformaciones y reglas.

Configuración

Parámetros como plazos, límites, identificadores, rutas, destinatarios o nombres de recursos.

Esquema de datos

Campos esperados, tipos, identificadores, formatos y relaciones.

Dependencias

Aplicaciones, APIs, librerías, conectores, servicios y versiones de protocolos.

Plantillas

Mensajes, documentos, respuestas, consultas o estructuras que el flujo utiliza para generar resultados.

Scripts

Código Bash, PowerShell, Python, JavaScript, VBA u otros componentes ejecutados dentro o alrededor del proceso.

Mapeo entre sistemas

Correspondencia entre campos de distintas aplicaciones.

Permisos necesarios

No es recomendable guardar secretos dentro del control de versiones, pero sí documentar qué permisos y credenciales necesita una versión.

El principio general es simple: si un cambio puede alterar el resultado, conviene poder identificarlo.

Versionar lógica y configuración por separado

Uno de los errores más frecuentes consiste en mezclar la lógica del proceso con valores que deberían ser configurables.

Por ejemplo, una regla puede decir:

“si han pasado 7 días, enviar recordatorio”.

El número 7 puede ser una decisión de negocio, no una parte estructural de la lógica. Si está incrustado dentro del flujo, cambiarlo obliga a editar la automatización.

Separar reduce cambios innecesarios de versión

Puede existir una versión estable de la lógica que lea parámetros desde una configuración controlada.

Así se distinguen:

  • cambios de comportamiento estructural;
  • cambios operativos de parámetros.

La configuración también necesita trazabilidad

Separarla no significa permitir cambios invisibles. Si modificar un parámetro altera resultados relevantes, debe existir algún registro de quién lo cambió y cuándo.

La ventaja es conceptual: el flujo puede permanecer estable mientras ciertos valores evolucionan de forma controlada.

Cómo identificar versiones de forma clara

No existe un único sistema obligatorio. Lo importante es utilizar una convención coherente.

Numeración simple

Para automatizaciones pequeñas puede bastar:

  • v1;
  • v2;
  • v3.

Es fácil de entender, aunque ofrece poca información sobre el tamaño del cambio.

Numeración mayor y menor

Puede utilizarse una estructura como:

  • 1.0;
  • 1.1;
  • 1.2;
  • 2.0.

Una convención práctica consiste en reservar el primer número para cambios importantes de comportamiento y el segundo para mejoras compatibles.

Tres niveles

En entornos más técnicos puede utilizarse una estructura del tipo 2.3.1:

  • 2: cambio mayor;
  • 3: mejora menor;
  • 1: corrección.

Fecha como complemento

La versión puede acompañarse de una fecha de activación. La fecha no debería sustituir siempre al identificador porque pueden existir varios cambios el mismo día.

Evitar nombres ambiguos

Nombres como “final”, “final-bueno”, “nuevo”, “nuevo2” o “definitivo” pierden significado rápidamente.

Cómo registrar correctamente cada cambio

Un historial de cambios no necesita ser extenso. Debe permitir comprender qué ocurrió sin inspeccionar toda la automatización.

Para cada versión puede registrarse:

  • identificador;
  • fecha;
  • responsable;
  • motivo del cambio;
  • resumen de modificaciones;
  • riesgos conocidos;
  • pruebas realizadas;
  • versión anterior;
  • estado: prueba, activa, retirada o revertida.

Explicar el motivo es tan importante como explicar el cambio

“Se añadió condición X” describe la modificación. “Se añadió condición X para evitar que solicitudes incompletas generen tareas” explica la decisión.

Meses después, esta diferencia ayuda a determinar si la regla sigue siendo necesaria.

No convertir el historial en documentación total

El registro debe ser breve. La documentación completa del funcionamiento puede existir aparte. Para ese objetivo resulta más adecuado el contenido sobre cómo documentar todas las automatizaciones de una empresa.

Distinguir cambios menores, mayores y urgentes

No todos los cambios necesitan el mismo nivel de control.

Cambio menor

Puede incluir:

  • corrección de una etiqueta;
  • ajuste de un texto;
  • modificación de una condición sin alterar estructura;
  • actualización de un parámetro.

Cambio mayor

Puede incluir:

  • nuevo canal de entrada;
  • cambio de aplicación principal;
  • nueva estructura de estados;
  • alteración del modelo de datos;
  • cambio importante en decisiones;
  • división o unión de flujos.

Cambio urgente

Una corrección crítica puede necesitar desplegarse con rapidez. Eso no elimina el control de versiones. Al contrario: conviene identificar expresamente la corrección, conservar la versión anterior y documentar posteriormente la causa.

La urgencia puede reducir pasos temporales, pero no debería borrar la trazabilidad.

Controlar compatibilidad entre versiones

Una versión nueva puede funcionar correctamente y, sin embargo, ser incompatible con elementos que todavía utilizan el comportamiento anterior.

Conviene comprobar compatibilidad con:

  • datos históricos;
  • otras automatizaciones;
  • scripts;
  • plantillas;
  • APIs;
  • campos de aplicaciones;
  • informes;
  • procesos manuales relacionados.

Compatibilidad hacia atrás

Existe cuando una versión nueva puede seguir trabajando con estructuras o datos generados por versiones anteriores.

Ruptura de compatibilidad

Puede ser necesaria, pero debe identificarse claramente.

Por ejemplo, cambiar un identificador interno de texto a número puede obligar a transformar datos existentes o adaptar otros flujos.

No asumir que una automatización está aislada

En sistemas maduros, un cambio local puede afectar a consumidores que no son visibles en el propio editor del flujo.

Versiones y cambios en estructuras de datos

Los cambios en datos son especialmente delicados porque pueden sobrevivir mucho más tiempo que una versión de la automatización.

Añadir un campo

Suele ser relativamente sencillo si los consumidores antiguos pueden ignorarlo.

Eliminar un campo

Puede romper informes, scripts o integraciones que todavía lo utilizan.

Cambiar significado

Es uno de los cambios más peligrosos. Un campo llamado “estado” puede existir antes y después, pero representar conceptos diferentes.

Cambiar formato

Fechas, identificadores, importes, separadores o unidades pueden afectar silenciosamente a otros sistemas.

Planificar migraciones

Cuando una nueva versión necesita otro esquema, conviene decidir qué ocurrirá con datos antiguos:

  • mantenerlos como están;
  • transformarlos;
  • soportar temporalmente ambos formatos;
  • crear una capa de compatibilidad.

Una nueva versión no está realmente controlada si solo se versiona el flujo y se ignora la evolución de los datos que procesa.

Versionar dependencias externas

Una automatización puede depender de componentes que evolucionan fuera de nuestro control.

Ejemplos:

  • una API cambia de versión;
  • un conector modifica campos;
  • una librería deja de admitir una función;
  • una aplicación cambia permisos;
  • un servicio retira un endpoint;
  • un formato exportado cambia.

Registrar qué dependencia utiliza cada versión

No siempre es posible fijar exactamente todos los componentes, pero sí conviene documentar las dependencias relevantes.

Evitar actualizar todo simultáneamente

Si se cambia la lógica interna, la API y el esquema de datos en el mismo despliegue, diagnosticar un fallo resulta mucho más difícil.

Vigilar dependencias críticas

Cuando una automatización depende de servicios externos, el mantenimiento preventivo descrito en cómo evitar que una automatización se convierta en un problema complementa el control de versiones.

Separar desarrollo, pruebas y producción

Uno de los principios más útiles del control de versiones es evitar modificar directamente la única copia activa de una automatización importante.

Desarrollo

Espacio donde se realizan cambios y pruebas iniciales.

Pruebas

Entorno donde se valida el comportamiento con datos controlados o casos representativos.

Producción

Versión que procesa trabajo real.

En una microempresa no siempre es necesario disponer de tres infraestructuras completas. Puede bastar con:

  • una copia desactivada del flujo;
  • cuentas o carpetas de prueba;
  • datos ficticios;
  • una variable de entorno que impida acciones reales;
  • destinatarios internos durante las pruebas.

Lo importante es separar consecuencias

Una prueba no debería enviar comunicaciones reales, modificar datos definitivos o crear operaciones irreversibles.

La validación completa antes de producción merece un tratamiento propio en cómo validar una automatización antes de ponerla en producción. Aquí interesa principalmente que cada versión tenga un recorrido controlado antes de convertirse en la versión activa.

Cómo probar una nueva versión

Una versión debe probarse contra comportamientos esperados, no solo comprobar que “no da error”.

Casos normales

Entradas habituales que deben recorrer el camino principal.

Casos límite

Valores vacíos, extremos, duplicados o situaciones cercanas a los límites permitidos.

Excepciones conocidas

Casos especiales que la versión debe gestionar deliberadamente.

Errores externos

Qué ocurre si una API no responde, una carpeta no existe o una credencial caduca.

Comparación con la versión anterior

Cuando el comportamiento debería seguir siendo equivalente, ejecutar los mismos casos en ambas versiones puede detectar diferencias inesperadas.

Pruebas de regresión

Un cambio nuevo no debería romper funciones que ya estaban resueltas. Conservar un pequeño conjunto de casos históricos resulta muy útil.

Cómo desplegar una versión con poco riesgo

Después de probar, la nueva versión debe sustituir a la anterior de forma controlada.

Elegir un momento adecuado

Evitar periodos de máxima actividad cuando sea posible.

Conocer qué ejecuciones están en curso

Un cambio puede afectar a casos que comenzaron con la versión antigua y terminarán después.

Definir punto de corte

Puede decidirse que todos los casos iniciados después de una hora concreta utilicen la nueva versión.

Activar de forma gradual

Cuando la herramienta lo permite, una parte del volumen puede pasar primero por la versión nueva.

Observar especialmente las primeras ejecuciones

Los primeros casos reales ofrecen información que los datos de prueba pueden no revelar.

No borrar inmediatamente la versión anterior

Debe conservarse al menos durante el periodo razonable de estabilización.

Cómo preparar una vuelta atrás

Una estrategia de rollback permite regresar a una versión anterior cuando la nueva produce errores o consecuencias no previstas.

Conservar una versión conocida como estable

No basta con tener copias. Debe saberse cuál era la última versión fiable.

Guardar configuración compatible

Volver al flujo antiguo puede no servir si la configuración o los datos han cambiado de forma incompatible.

Identificar acciones irreversibles

Enviar correos, borrar registros o modificar sistemas externos no se deshace simplemente restaurando el flujo.

Definir criterios de rollback

Antes del despliegue puede establecerse cuándo volver atrás:

  • errores por encima de un umbral;
  • datos inconsistentes;
  • pérdida de comunicaciones;
  • retrasos críticos;
  • comportamiento no explicado.

Rollback no significa ocultar el problema

Después de volver a una versión estable hay que investigar qué ocurrió y registrar que la versión nueva fue retirada o corregida.

Saber siempre qué versión está activa

Un sistema de versiones pierde gran parte de su valor si resulta difícil saber qué versión está procesando trabajo real.

Puede registrarse:

  • versión activa;
  • fecha de activación;
  • entorno;
  • responsable del despliegue;
  • versión anterior disponible;
  • dependencias relevantes.

Mostrar versión en logs o registros

Cuando sea posible, cada ejecución puede registrar el identificador de versión. Esto facilita diagnosticar casos procesados durante periodos de transición.

Evitar varias copias activas sin control

Duplicar un flujo y olvidar desactivar el antiguo puede generar ejecuciones dobles y resultados difíciles de explicar.

El objetivo es que exista una respuesta inequívoca a la pregunta: ¿qué versión procesó este caso?

Controlar versiones cuando varios flujos dependen entre sí

El versionado se complica cuando una automatización produce datos que otra consume.

Supongamos:

  1. un flujo registra una solicitud;
  2. otro la clasifica;
  3. un tercero crea una tarea;
  4. un cuarto genera un informe.

Un cambio en el primer flujo puede afectar a los cuatro.

Identificar interfaces entre automatizaciones

Cada conexión debería tener un contrato mínimo:

  • qué datos entrega;
  • qué formato utiliza;
  • qué estados son posibles;
  • qué errores puede devolver.

Evitar cambios silenciosos

Modificar el significado de un campo compartido sin adaptar consumidores es una causa habitual de fallos.

Versionar interfaces cuando sea necesario

Durante una transición pueden convivir temporalmente formatos v1 y v2.

La gestión de dependencias entre automatizaciones se desarrolla de forma más amplia en cómo evitar dependencias entre automatizaciones.

Documentación mínima asociada a cada versión

Una versión útil debería disponer de suficiente documentación para reconstruir su contexto sin exigir una memoria perfecta.

Como mínimo:

  • identificador de versión;
  • fecha;
  • objetivo;
  • cambios;
  • dependencias relevantes;
  • configuración necesaria;
  • pruebas realizadas;
  • estado;
  • ruta de rollback.

Relacionar versión y documentación

La documentación general debe indicar qué versión describe. De lo contrario puede ocurrir que el manual represente una automatización distinta de la que realmente está activa.

No guardar secretos en documentación abierta

Las claves y tokens deben gestionarse de forma segura. Puede documentarse dónde están almacenados y qué permisos necesitan, no necesariamente su valor.

Herramientas para controlar versiones

El método puede adaptarse al tipo de automatización.

Historial nativo de la plataforma

Algunas herramientas guardan revisiones o versiones automáticamente. Conviene entender cuánto historial conservan y si permiten restaurarlo.

Exportaciones periódicas

Si la plataforma permite exportar flujos en JSON, YAML u otro formato, esas exportaciones pueden archivarse por versión.

Git

Cuando la automatización puede representarse como archivos de texto, Git ofrece historial, comparación, ramas y etiquetas. También resulta útil para scripts, configuraciones y documentación relacionada.

Repositorio documental sencillo

Para sistemas pequeños puede bastar una carpeta estructurada con nombres de versión y un registro de cambios.

Base de datos o inventario interno

Cuando existen muchas automatizaciones, un catálogo puede relacionar nombre, versión activa, propietario, dependencias y fecha de última revisión.

La herramienta es secundaria. El valor está en poder identificar, comparar, recuperar y explicar cada versión.

Errores frecuentes al versionar automatizaciones

Versionar solo después de que aparezca un problema

Cuando ya se ha perdido la versión estable, reconstruirla puede ser difícil.

Guardar copias sin saber cuál está activa

Muchas copias no equivalen a control.

No versionar configuración

Dos flujos idénticos pueden comportarse de manera distinta con parámetros diferentes.

Ignorar estructuras de datos

Una versión anterior puede no funcionar con datos transformados por la nueva.

Editar directamente producción

Reduce la posibilidad de probar y dificulta recuperar el estado anterior.

No registrar motivo de cambios

Meses después pueden eliminarse reglas que parecían inútiles pero existían por una razón importante.

No conservar una ruta de rollback

La reversión debe prepararse antes del despliegue, no durante la incidencia.

Acumular versiones indefinidamente

No siempre es necesario conservar todas para siempre. Pueden definirse políticas de retención, manteniendo especialmente hitos y versiones estables.

Método práctico paso a paso

Paso 1: identificar la automatización

Asignar un nombre estable que no cambie con cada versión.

Paso 2: establecer la versión inicial

La primera versión controlada puede denominarse 1.0 aunque el flujo exista desde antes.

Paso 3: exportar o copiar el estado actual

Conservar una representación recuperable.

Paso 4: registrar configuración y dependencias

Anotar lo necesario para reproducir el comportamiento.

Paso 5: realizar cambios en una copia

Evitar alterar directamente la versión activa cuando el riesgo lo justifique.

Paso 6: asignar nueva versión

Según la magnitud del cambio.

Paso 7: registrar cambios

Explicar qué y por qué.

Paso 8: probar

Casos normales, límites, excepciones y regresión.

Paso 9: preparar rollback

Conservar la versión estable y comprobar compatibilidad.

Paso 10: desplegar

Definir momento y punto de corte.

Paso 11: registrar versión activa

Actualizar inventario o documentación.

Paso 12: observar

Revisar las primeras ejecuciones reales.

Paso 13: cerrar la versión anterior

Marcarla como retirada pero conservarla según la política establecida.

Ejemplo completo de versionado

Supongamos una automatización que procesa formularios comerciales.

Versión 1.0

  • recibe formulario;
  • guarda datos;
  • envía confirmación;
  • crea tarea de seguimiento.

Funciona durante varios meses.

Necesidad de cambio

Se observa que algunas solicitudes llegan sin teléfono y no deberían bloquear el proceso. También se necesita distinguir solicitudes nacionales e internacionales.

Versión 1.1

Se modifica la validación para permitir teléfono vacío. Es un cambio compatible y pequeño.

Registro:

  • fecha: 10 de septiembre;
  • motivo: evitar rechazo de solicitudes válidas sin teléfono;
  • pruebas: formulario con teléfono, sin teléfono y teléfono inválido;
  • rollback: restaurar 1.0.

Versión 2.0

Meses después se introduce una diferencia estructural:

  • se añade campo país;
  • las solicitudes internacionales siguen otra ruta;
  • se genera documentación distinta;
  • se incorpora un nuevo estado.

La versión se considera mayor porque modifica el modelo del proceso y puede afectar a otras automatizaciones.

Compatibilidad

Los registros históricos no tienen país. Se decide que durante la migración se interpreten como “no especificado”.

Pruebas

Se prueban casos nacionales, internacionales, registros antiguos y solicitudes incompletas.

Despliegue

La versión 2.0 se activa a primera hora de un día de bajo volumen. Los casos anteriores siguen terminándose con la lógica antigua.

Rollback

La versión 1.1 permanece disponible. Si 2.0 genera errores críticos, se detienen nuevas entradas y se reactiva 1.1.

Este ejemplo muestra que versionar no exige una infraestructura enorme. Exige disciplina suficiente para saber qué cambia y cómo recuperar el control.

Checklist de control de versiones

  • ¿La automatización tiene un nombre estable?
  • ¿La versión activa está identificada?
  • ¿Existe una copia recuperable de la versión anterior?
  • ¿Los cambios tienen fecha y responsable?
  • ¿Se registra por qué se realizó cada modificación?
  • ¿La configuración está separada cuando tiene sentido?
  • ¿Se conocen las dependencias externas?
  • ¿Se sabe qué estructura de datos espera la versión?
  • ¿Se han identificado posibles incompatibilidades?
  • ¿La nueva versión se prueba fuera de producción?
  • ¿Existen casos de regresión?
  • ¿Está definido el punto de despliegue?
  • ¿Se sabe cómo volver atrás?
  • ¿El rollback considera datos y configuración, no solo el flujo?
  • ¿Puede saberse qué versión procesó un caso concreto?
  • ¿Las automatizaciones dependientes conocen los cambios relevantes?
  • ¿La documentación indica a qué versión corresponde?

Conclusión

Controlar versiones de procesos automatizados significa convertir el cambio en una operación trazable y recuperable. Una automatización no deja de necesitar gobierno porque funcione de forma silenciosa. Precisamente cuando se vuelve parte de la operativa diaria es cuando resulta más importante saber qué versión está activa y cómo ha evolucionado.

El versionado debe abarcar más que el diagrama del flujo. Lógica, configuración, datos, dependencias, plantillas y scripts pueden modificar el comportamiento real. Por eso conviene identificar qué componentes forman una versión y qué cambios requieren una nueva referencia.

La disciplina necesaria puede ser muy sencilla: una numeración coherente, una copia recuperable, un historial breve, pruebas básicas, una separación razonable entre desarrollo y producción y una estrategia de rollback. No hace falta reproducir procesos propios de grandes equipos de software para obtener una mejora enorme en control.

Cuando varias automatizaciones empiezan a conectarse, el control de versiones se vuelve todavía más valioso. Permite cambiar una parte sabiendo qué puede afectar, comparar comportamientos y reducir la incertidumbre durante incidencias.

Una automatización bien versionada no es una automatización que nunca falla, sino una automatización cuyo cambio puede entenderse, probarse y revertirse sin depender de la memoria ni de la improvisación.

Preguntas frecuentes

¿Qué significa controlar versiones de una automatización?

Significa identificar estados sucesivos del flujo, registrar qué cambia entre ellos y conservar suficiente información para saber qué versión está activa, cómo se probó y cómo volver a una anterior si es necesario.

¿Hace falta usar Git para versionar automatizaciones?

No. Git es muy útil cuando los flujos, scripts o configuraciones pueden exportarse como texto, pero una automatización pequeña también puede gestionarse mediante historial nativo, exportaciones numeradas y un registro de cambios.

¿Cuándo debo crear una nueva versión?

Cuando un cambio altera el comportamiento de forma relevante. Ajustes triviales pueden agruparse según la política adoptada, pero las modificaciones estructurales, de datos o de compatibilidad deberían quedar claramente identificadas.

¿Qué diferencia hay entre una versión mayor y una menor?

Una versión menor suele mantener la lógica principal y compatibilidad, mientras que una versión mayor introduce cambios estructurales o incompatibles. La convención exacta puede adaptarse a cada organización.

¿Debo versionar también la configuración?

Sí, al menos cuando los parámetros cambian el resultado. Puede gestionarse separadamente de la lógica, pero debe existir trazabilidad sobre valores relevantes.

¿Qué es un rollback?

Es volver a una versión anterior conocida como estable cuando una nueva versión causa problemas. Debe considerar no solo el flujo, sino también configuración, datos y acciones irreversibles realizadas durante el periodo afectado.

¿Puedo probar una versión nueva directamente en producción?

En automatizaciones de bajo riesgo puede hacerse con controles muy estrictos, pero para procesos importantes conviene disponer de una copia o entorno de prueba que evite consecuencias reales durante la validación.

¿Cuánto historial conviene conservar?

Depende de criticidad, frecuencia de cambios y necesidades de auditoría. Como mínimo conviene conservar versiones estables recientes y principales hitos. No siempre es necesario guardar indefinidamente cada cambio menor.

¿Cómo sé qué versión procesó un registro concreto?

La mejor práctica es guardar el identificador de versión en logs, registros de ejecución o metadatos asociados al caso cuando la plataforma lo permite.

¿El control de versiones evita que una automatización necesite rediseño?

No. Ayuda a controlar su evolución, pero una arquitectura puede quedar obsoleta aunque esté perfectamente versionada. Si excepciones, dependencias y complejidad estructural crecen demasiado, puede ser necesario rediseñar.