DevOps

Relevos de código fuente en desarrollo de software

La transferencia y relevo de código fuente es un aspecto importante que aún no ha sido superado por la ingeniería de software; la complejidad acompañada de aspectos intrínsecamente personales como la inspiración, el estilo y la experiencia personal hace elevar la complejidad de relevar un módulo de programación (en pleno desarrollo) para su continuidad por otro especialista sin alterar lo avanzado.

Hace algunos años un familiar estuvo hospitalizado por unos meses en una clínica local por algunas complicaciones en su sistema digestivo, nervioso y óseo a causa de su avanzada edad, por lo que tenía asignado un grupo de médicos y enfermeras a su cuidado permanente las 24 horas del día; durante todo ese tiempo pude observar a estos profesionales después de cumplida su jornada laboral hacían el relevo y transferencia de sus responsabilidades hacia otro profesional similar que se encargaría del siguiente turno; este proceso consistía en la entrega de un informe y unas breves indicaciones (sobre el estatus del paciente) de cinco minutos a lo mucho. Esta situación me dejaba algo preocupado porque si el profesional sucesor no entendería y/o no cumpliría con las indicaciones del relevo podría complicar la salud de mi familiar. Este proceso de relevos es una actividad normalizada en muchas profesiones, claro está que no en todas las actividades a fines.

El desarrollo de software es una actividad compleja que además de ingenio requiere inspiración, y como si fuera poco tiene un estilo particularmente personal por cada especialista (aún exista un framework y/o una metodología que respetar).

Es imposible relevar la inspiración y el estilo, pero si el objetivo. 

En el desarrollo de software en algunas ocasiones este proceso de relevos de desarrollo (de código fuente) es casi obligatorio por diversos motivos asociados al abandono de labores del especialista, como pueden ser por motivos de viaje, cambio de trabajo, permisos personales imprevistos, etc.; paquetes de trabajo asignados de 40 horas son abandonados a la mitad de tiempo, entendiendo que 20 horas no significa necesariamente 50% de avance, claro esta que el cronograma es solo un aliciente para tranquilidad del project manager.

Otra ejercicio de relevos de código fuente también se ha visto en la evolución del software libre, solo por mencionar a grandes personalidades como LinusTolvards y Richard Stallman se ha llegado a construir importante software de talla mundial con tomar la posta de avances anteriores y versionar sus cambios para que pueda ser modificado por algún otro entusiasta, y así sucesivamente; pero claro está que estos relevos no son inmediatos, toman un tiempo considerable de análisis y estudio.

El Software Libre fue difundido gracias al relevo de código fuente.

Hasta ahora vemos que en la práctica si es posible trabajar con relevos de código fuente, otro ejemplo concreto es el trabajo mayoritario al que se dedican las consultoras de este rubro al atender proyectos de “desarrollo de mantenimiento”, que consiste en atender las solicitudes del cliente para cambios y mejoras específicas  de sus aplicaciones, para este fin los desarrolladores tienen que estudiar el código y mejorarlo o modificarlo según sea el caso, nótese que este es un ejercicio a largo plazo, no es un relevo inmediato como es el caso de los médicos.

Ahora hablemos del tiempo, ¿Cuanto tiempo tomaría el relevo inmediato de un paquete de trabajo de desarrollo de software en etapa de codificación?, en el caso de los médicos que atendían a mi familiar observé que un relevo era en promedio cinco minutos, que consistía en una reunión de coordinación que incluía un informe detallado del estatus de la salud y procedimientos a considerar (medicamentos, inyectables, etc). En desarrollo de software es difícil entender la lógica y el estilo del avance del especialista anterior en tan corto tiempo, comprender la lógica de un array dinámico o complejos punteros en C++ que además tengan clases, es difícil entenderla en tan solo cinco minutos para continuar con la misma lógica de desarrollo sin desechar lo ya avanzado; siendo optimistas y con gran experiencia es posible asimilar rápidamente el código avanzado, pero continuar con el proceso de desarrollo sin desechar nada de lo escrito por el especialista anterior es casi una utopía.

Claro está que contar con un repositorio de objetos (de BD y Aplicaciones) altamente reutilizable, el uso de librerías de una manera objetiva y una disciplina militar para cumplir con los estándares y procedimientos de una metodología puede ayudar a facilitar el relevo inmediato de código fuente en minutos, ¿pero cuantos trabajamos de esa manera?, quizás un CMMI5 ejecutado a rajatabla podría apalancar este fin.

El problema en relevos de trabajos de ingenio es que las personas pensamos diferente.

Todo esto deduce a que un relevo inmediato para su continuidad de desarrollo de software es complicado darse en corto tiempo, un tiempo prolongado apoyado de buena documentación, un estilo organizado y estandarizado podría ayudar a continuar con la lógica del especialista anterior centrándose en el objetivo común afectando mínimamente lo avanzado.

Reflexión.-

Podemos concluir que el ejercicio de relevos inmediatos de trabajos no es aplicable para todas las actividades humanas asociadas a ingenio e inspiración personal, y mucho menos para un proceso tan complejo como lo es el desarrollo de software donde cada especialista siempre tendrá una lógica diferente para desarrollar una solución.

Un docente puede relevar un ejercicio complejo de matemáticas avanzada, y el siguiente docente puede continuar inmediatamente sin alterar lo resuelto por el antecesor, incluso centrándose en su estilo personal sin cambiar lo avanzado; entonces, ¿que nos falta a los desarrolladores para hacer lo mismo?, considero que la respuesta para todos los casos es lo que las organizaciones del futuro solicitan a gritos, que no son grandes habilidades técnicas, mas bien todo lo contrario, y eso se llama: comunicación, empatía, sociabilidad y asertividad.

César Espinoza Callo
www.elexpositor.com

César Espinoza Callo

César Espinoza Callo

Arquitecto de Soluciones Tecnológicas. Apasionado por la creación de soluciones tecnológicas que aporten valor y ventajas competitivas a las organizaciones; la continuidad del negocio y alta disponibilidad son los principales motivos de mi constante búsqueda de herramientas y procesos modernos. Especialista en el diseño e implementación de programas estratégicos para el desarrollo e implementación de infraestructura y aplicaciones tecnológicas empresariales.
César Espinoza Callo
César Espinoza Callo
Click para comentar

Deja una respuesta

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Más populares

Brindamos la última y mejor información del mercado tecnológico, para los decisores en las áreas de TI, asi como los profesionales del sector TIC

En Tic News no solo te informamos, te ayudamos a decidir

Copyright © Tic News 2017, todos los derechos reservados

Ir arriba