Ingeniería de software de ELITE

Share this post

¿Cómo evitar el "Es que en mi computadora sí funciona"?

edgarfernandezr.substack.com

¿Cómo evitar el "Es que en mi computadora sí funciona"?

Los procesos de gestión de la configuración son críticos y muchos equipos suelen ignorar definirlos, pero si nombramos a un responsable, el Líder de Gestión de Configuración correremos menos riesgos.

Edgar Fernández
Apr 27, 2023
Share
Share this post

¿Cómo evitar el "Es que en mi computadora sí funciona"?

edgarfernandezr.substack.com
Article voiceover
1×
0:00
-6:15
Audio playback is not supported on your browser. Please upgrade.

En una ocasión, trabajaba en la actualización de la base de datos de una aplicación web. Debía agregar varias columnas en algunas tablas y probar la inserción de la información. Mi procedimiento habitual, en ese entonces, era conectarme al administrador de la BD de testing, vaciar la BD y hacer los cambios. Esa vez, me conecté, abrí la BD y ejecuté los comandos para borrar todos los datos. Di clic en Ejecutar.

¡Suscríbete y recibe estos artículos en tu correo electrónico!

Antes de comenzar a agregar las nuevas columnas, me percaté de algo: era la Base de Datos del servidor de Producción.

Borré todos los datos de mi cliente; en un segundo, eliminé la información de meses de registros. Entré en pánico porque no había hecho un respaldo y no podía deshacer el borrado. Eran las 8:30 AM.

Quizás varios se identificaron con esto y han vivido algo similar: borraron algo donde no debían hacerlo, pusieron archivos donde no correspondían, hicieron pruebas en producción sin darse cuenta, etc. “A cualquiera le pasa, es normal” dirán algunos. Es una situación común en donde no existen procedimientos sólidos de gestión de la configuración. De eso te quiero hablar hoy.

“Es que en mi computadora sí funciona”

He visto proyectos técnicamente asombrosos fracasar por una mala gestión de la configuración. La aplicación funciona maravillosamente, pero solo en sus computadoras; en producción, las cosas son muy diferentes y no funcionan; también, basta con un pequeño cambio para echar todo a perder.

La gestión de la configuración se encarga de controlar los elementos que definen un producto de software en su versión actual y anteriores, el acceso a ellos para actualizarlos y modificarlos, y manejar adecuadamente la modificación concurrente.

“Eso lo hace Git (el repositorio), entonces hago gestión de configuración”. Podrías estar pensando eso, pero solo es parcialmente correcto. El código es solo uno de los elementos de la configuración y la herramienta de repositorio, una en un ecosistema de reglas, políticas y herramientas. Aun teniendo un repositorio como Git puede haber fallas graves si faltan los procedimientos y políticas definidas. Sobre todo, si nunca se ha definido la Línea Base.

¿Qué hay en esta versión del software?

Algunos equipos mantienen múltiples versiones de un mismo producto de software para diferentes clientes. A veces, alguno reporta una incidencia en su sistema y es necesario replicar su instalación exactamente para diagnosticar y arreglar. El problema es: nadie recuerda qué tiene instalado ni qué variantes tiene con la versión actual.

La Línea Base es la definición de la versión del software e incluye:

  • Los archivos de código

  • Librerías, ubicación y versión

  • Documentación de respaldo

  • Información del diseño

  • Información de los requerimientos

  • Casos de prueba

  • Versiones de las bases de datos

  • Respaldos de los datos

  • Usuarios y credenciales

  • Tablas de permisos

Todo esto para cada versión; cada vez que la versión cambia, la definición de la Línea Base debe actualizarse y guardarse un archivo con las versiones anteriores. Los mecanismos para tomar algo de la Línea Base, modificarlo e integrarlo para una nueva versión es lo que llamamos Gestión de la Configuración. Esto es asegurado por el Líder de Gestión de Configuración

Líder de Gestión de Configuración, el guardián de las versiones

El rol de Líder de Gestión de la configuración es el encargado de que existen los procedimientos, políticas y herramientas para mantener la Línea Base y el ambiente de desarrollo. El propósito es que existan réplicas idénticas del sistema en todos los ambientes donde este corre: producción, pruebas, las computadoras de los desarrolladores.

Es importante mencionar que no se trata de un Ingeniero de Soporte, ni se encargará de reparar cada incidencia técnica. Su labor es que el equipo defina sus procedimientos de gestión de la configuración, los respeten y eviten problemas.

Sus objetivos son:

  • Asegurar que el equipo tiene definido el ambiente de trabajo (herramientas, métodos)

  • Asegurar que el equipo tiene una política de gestión de la configuración de productos y ambiente de trabajo y procesos para conducirlos

Un miembro del equipo, que quiere desempeñar este rol, debe tener:

  • Interés y gusto por el uso de herramientas de apoyo para el desarrollo de software

  • Habilidad y competencia para dar soporte técnico a sus compañeros

  • Experiencia en la Administración de Sistemas

  • Familiaridad con las herramientas de trabajo que se usarán en los proyectos


A las 11:30 de la mañana había restaurado una versión de la base de datos que borré. Tenía una réplica del día anterior en mi computadora (sin datos de prueba, por suerte), pero tuve que cotejar los registros faltantes uno por uno mediante reportes que me enviaron. Costó dos días recuperar la información íntegra. El problema se resolvió, sin embargo, pudo causar problemas legales para la empresa.

Los procesos de gestión de la configuración son críticos y muchos equipos suelen ignorar definirlos, pero si nombramos a un responsable, el Líder de Gestión de Configuración correremos menos riesgos.

Este es el último rol de los ocho que mencionamos en esta serie; sin embargo, aún no hemos concluido el tema de Gestión del Trabajo. Continuaremos con ello en las siguientes entregas.

¡Hasta pronto!

Leave a comment

Share
Share this post

¿Cómo evitar el "Es que en mi computadora sí funciona"?

edgarfernandezr.substack.com
Previous
Next
Comments
Top
New
Community

No posts

Ready for more?

© 2023 Edgar Fernández
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing