Skip to main content

Como sin duda sabrás, en la ingeniería de software, la gestión de la configuración del software (SCM) hace referencia a un proceso para mantener los sistemas informáticos, los servidores y el software en un estado deseado y coherente. 

A veces denominada gestión de cambios de software o automatización de TI, la idea es disponer de un sistema que permita realizar un seguimiento y comparar los cambios efectuados en un sistema a lo largo del proceso de desarrollo de software, así como identificar quién realizó dichas modificaciones.

El objetivo es facilitar la gestión de proyectos, minimizar los errores, aumentar la trazabilidad y mejorar la calidad general del software. 

¿Quieres más de The CTO Club?

Crea una cuenta gratuita para terminar de leer este contenido y unirte a una comunidad de CTOs y líderes de ingeniería que comparten marcos, herramientas y conocimientos reales para diseñar, desplegar y escalar tecnología impulsada por IA.

Name*
Este campo está oculto cuando se visualiza el formulario
Este campo está oculto cuando se visualiza el formulario
Este campo está oculto cuando se visualiza el formulario
Este campo está oculto cuando se visualiza el formulario
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Los beneficios de un proceso de SCM son:

  • Actualizaciones multiusuario: A menudo, muchas personas trabajan en el desarrollo de software, lo que significa que hay actualizaciones y cambios constantes. La SCM permite realizar un seguimiento de todo el código y las configuraciones implementadas en producción (también denominada auditoría de configuración), y también introduce trazabilidad al determinar qué colaborador realizó cada uno de ellos.
  • Productividad: La SCM mejora la productividad del software, ya que garantiza un mínimo de errores. Por ejemplo, siempre puedes asegurarte de que tus entornos de pruebas y producción coincidan.
  • Comunicación y colaboración: La comunicación entre los miembros del equipo es sencilla con la SCM, lo que facilita que las partes interesadas en el proyecto trabajen juntas y mejoren la calidad del producto. 
  • Pruebas en plataformas y sistemas operativos: Garantiza que el software funcione eficazmente en múltiples plataformas y sistemas operativos. 
  • Adaptación a los cambios: La SCM facilita la adaptación a los cambios de calendario, políticas y usuarios.
  • Control de costes: Al realizar un seguimiento de los miembros del equipo y del flujo de trabajo del proyecto, la SCM ayuda a controlar los costes y aumentar la eficiencia.

En este artículo, te explicaré los diferentes pasos de un proceso de SCM, quién debe participar y qué herramientas están disponibles para ayudarte.

Los 5 pasos de un plan de SCM

El proceso de gestión de la configuración del software consta de una serie de pasos diseñados para realizar un seguimiento y gestionar todos los defectos, recursos, códigos, documentos, componentes de hardware y presupuestos a lo largo de un proyecto.

La SCM es un proceso interdisciplinario en el que participan personas de todos los niveles, incluidos profesionales de DevOps, desarrolladores, directores o responsables de proyectos, administradores de sistemas y probadores. 

1. Planificación e identificación

El primer paso del proceso es la planificación y la identificación. En este paso, el objetivo es planificar el desarrollo del proyecto de software e identificar los elementos incluidos en el alcance. Esto se consigue mediante reuniones y sesiones de lluvia de ideas con tu equipo para determinar los criterios básicos del resto del proyecto. 

Parte de este proceso consiste en determinar cómo avanzará el proyecto e identificar los criterios de finalización. De este modo, tu equipo sabrá reconocer cuándo se hayan alcanzado todos los objetivos del proyecto. 

Entre las actividades específicas de este paso se incluyen:

  • Identificar elementos como casos de prueba, requisitos de especificación y módulos de código
  • Identificar cada elemento de configuración del software informático en el proceso
  • Agrupar los detalles básicos sobre por qué, cuándo y qué cambios se realizarán, y quién estará a cargo de hacerlos
  • Crear una lista de los recursos necesarios, como herramientas, archivos, documentos, etc.

2. Control de versiones y línea base

El paso de control de versiones y línea base garantiza la integridad continua del producto al identificar una versión aceptada del software. Esta línea base se establece en un momento específico del proceso de SCM y solo puede modificarse mediante un procedimiento formal. 

El objetivo de este paso es controlar los cambios que se realizan en el producto. A medida que el proyecto avanza, se establecen nuevas líneas base, lo que da lugar a varias versiones del software.  

Este paso incluye las siguientes actividades:

  • Identificar y clasificar los componentes cubiertos por el proyecto
  • Desarrollar una forma de realizar un seguimiento de la jerarquía de las distintas versiones del software
  • Identificar las relaciones esenciales entre los diversos componentes
  • Establecer diversas líneas base para el producto, incluidas las líneas base de desarrollo, funcional y del producto
  • Desarrollar un esquema de etiquetado estandarizado para todos los productos, revisiones y archivos, de modo que todos estén alineados.

Establecer una línea base para un atributo del proyecto obliga a aplicar procesos formales de control de cambios de configuración en caso de que dichos atributos se modifiquen. 

Mejora tu bandeja de entrada con más sabiduría sobre liderazgo tecnológico para ofrecer mejores programas y sistemas.

Name*
Este campo está oculto cuando se visualiza el formulario
Este campo está oculto cuando se visualiza el formulario
Este campo está oculto cuando se visualiza el formulario

3. Control de cambios

El control de cambios es el método utilizado para garantizar que cualquier cambio realizado sea coherente con el resto del proyecto. Contar con estos controles ayuda con la garantía de calidad, así como con la aprobación y publicación de nuevas líneas base. El control de cambios es esencial para completar el proyecto con éxito. 

En este paso, las solicitudes para cambiar configuraciones se envían al equipo y el responsable de la configuración del software las aprueba o rechaza. Los tipos de solicitudes más comunes consisten en añadir o editar diversos elementos de configuración, o cambiar los permisos de los usuarios.

Este procedimiento incluye:

  • Controlar los cambios ad hoc solicitados por el cliente
  • Comprobar la pertinencia de la solicitud de cambio examinando el impacto general que tendrá en el proyecto
  • Realizar los cambios aprobados o explicar por qué se rechazaron las solicitudes de cambio.

4. Contabilidad del estado de la configuración

El siguiente paso consiste en garantizar que el proyecto se desarrolle de acuerdo con el plan mediante pruebas y verificaciones conforme a las líneas base predeterminadas. Esto implica revisar las notas de la versión y los documentos relacionados para garantizar que el software cumpla todos los requisitos funcionales. 

La contabilidad del estado de la configuración realiza un seguimiento de cada versión publicada durante el proceso, evaluando qué novedades incluye cada versión y por qué fueron necesarios los cambios. Algunas de las actividades de este paso incluyen:

  • Registrar y evaluar los cambios realizados de una línea base a la siguiente
  • Supervisar el estado y la resolución de todas las solicitudes de cambio
  • Mantener la documentación de cada cambio realizado como resultado de las solicitudes de cambio y para  alcanzar otra línea base
  • Comprobar las versiones anteriores para su análisis y pruebas.

5. Auditorías y revisiones

El paso final consiste en una revisión técnica de cada etapa del ciclo de vida del desarrollo de software. Las auditorías y revisiones examinan el proceso, las configuraciones, el flujo de trabajo, las solicitudes de cambio y todo lo que se ha incorporado al desarrollo de cada línea base a lo largo del desarrollo del proyecto. 

El equipo realiza varias revisiones de la aplicación para verificar su integridad y también prepara la documentación complementaria esencial, como las notas de la versión, los manuales de usuario y las guías de instalación.

Las actividades de este paso incluyen:

  • Asegurarse de que se cumplan los objetivos establecidos en el paso de planificación e identificación
  • Garantizar que el software cumpla las normas de control de la configuración identificadas
  • Asegurarse de que los cambios realizados con respecto a las líneas base coincidan con los informes
  • Validar que el proyecto sea coherente y esté completo de acuerdo con sus objetivos.

A diferencia de los sistemas de archivos tradicionales, un software especializado de gestión de bases de datos puede ofrecer funciones avanzadas como la integridad y la seguridad de los datos, que son fundamentales para una gestión eficaz de la configuración del software.

¿Quién participa en el proceso de configuración del software?

El proceso de SCM es multidisciplinario e involucra prácticamente a todos los miembros del equipo de desarrollo de software.

Responsable de la configuración

El responsable de la configuración se encarga de determinar quién es responsable de cada tarea durante el proceso de desarrollo. Se asegura de que todos sigan el proceso de SCM en todo el proyecto y tiene la última palabra sobre todas las solicitudes de cambio. 

Director del proyecto

El papel del director del proyecto es fundamental para el proceso de SCM. Establece el plazo del proyecto para garantizar que cumpla los plazos de finalización y también genera informes sobre el progreso del equipo. Otra función importante del director del proyecto es garantizar que cada miembro del equipo siga las directrices predeterminadas para crear, realizar cambios y probar el software.

Desarrolladores de software

Los desarrolladores son responsables de escribir código durante el desarrollo, así como de aplicar las solicitudes de cambio aprobadas. 

Auditor

Este rol se encarga de todas las auditorías y revisiones, y debe asegurarse de que la versión final esté completa y sea coherente.

¿Cuáles son las ventajas de utilizar herramientas de gestión de la configuración?

Hay varias herramientas disponibles para ayudar a facilitar el proceso de gestión de la configuración del software. El propósito de estas herramientas es automatizar tareas que tradicionalmente se realizaban de forma manual, lo que permite una mayor precisión, velocidad y control. Más específicamente, pueden ayudar con:

  • Alertas e informes: Una buena herramienta de SCM proporcionará alertas e informes si se produce alguna desviación respecto a la línea base acordada. Estos datos se enviarán casi en tiempo real, lo que permitirá a los responsables actuar rápidamente si algo se desvía del rumbo. 
  • Seguimiento de cambios: Las herramientas de SCM realizarán un seguimiento automático de los cambios en servidores o aplicaciones y también permitirán introducir manualmente dichos datos. La auditoría de cambios también puede realizarse mediante la supervisión de los resultados de los scripts. 
  • Comparaciones de configuraciones: Las mejores herramientas de gestión de la configuración del software proporcionarán una forma de identificar las diferencias entre configuraciones.
  • Solución de problemas más rápida: Los errores, las equivocaciones y los problemas se identifican rápidamente para que los desarrolladores puedan actuar antes de que el problema crezca. 
  • Seguimiento del inventario: La mayoría de las herramientas de SCM ofrecerán una forma de realizar un seguimiento de los activos de hardware y software, para que no tengas que mantener una lista manual. 
  • Gestión de parches: Las herramientas de SCM pueden ayudarte a realizar un seguimiento de todos los detalles relacionados con la gestión de parches a medida que distribuyes software actualizado. 

¿Hay alguna desventaja en utilizar una herramienta de gestión de la configuración del software?

Hay algunos aspectos que debes considerar antes de adoptar una herramienta de SCM, entre ellos:

  • Consumo de recursos: Debes contar con los recursos necesarios para respaldar el proceso de principio a fin 
  • Limitaciones de conocimientos: Todas las personas involucradas deben tener un conocimiento profundo de las herramientas de gestión de software que se utilizan
  • Desventaja para las pymes: El alcance de lo necesario para utilizar estas herramientas de manera eficaz puede ser difícil de asumir para una pequeña empresa
  • Especificaciones del hardware: Se requiere hardware rápido y altamente configurado para que el proceso se ejecute sin problemas.

Reflexiones finales sobre la gestión de la configuración del software

Arriba presenté un esquema general de lo que necesitas saber para configurar un proceso de gestión de la configuración del software con el que realizar el seguimiento, controlar y gestionar tus proyectos. 

Las herramientas de SCM, como Ansible o TeamCity, ayudan a automatizar muchos aspectos del proceso de SCM y pueden ofrecer un excelente retorno de la inversión. Puedes consultar nuestra selección en el artículo las 10 mejores herramientas de gestión de la configuración del software.
El mundo de la gestión de la configuración del software y el control de calidad está evolucionando rápidamente. Suscríbete al boletín de The QA Lead para recibir directamente en tu bandeja de entrada más consejos prácticos, trucos y herramientas.

O sigue aprendiendo escuchando este podcast: LA GENERACIÓN DE LA AUTOMATIZACIÓN AUTÓNOMA Y CÓMO ES (CON BERTOLD KOLICS, DE MABL) o leyendo esta lista: LAS 10 HERRAMIENTAS MÁS RECIENTES DE PRUEBAS DE SOFTWARE QUE UTILIZAN LOS PROFESIONALES DE QA