La historia de mi primer proyecto en equipo
¡Hola! Te agradará saber que ya se encuentra disponible en "El Camino de Java, Volumen 2", la nueva sección "Control de versiones", un tema que aparentemente no está relacionado con Java, pero es una de las habilidades más importantes que debe tener cualquier programador que se quiera dedicar a esta profesión, de manera seria o por hobby. La importancia del control de versiones radica en que, además de permitirte trabajar en equipo, al construir un historial de cada cambio que se ha realizado, eliminas la posibilidad de perder código o introducir problemas que después ya no puedas revertir. Sin duda, este es un tema obligado para el curso.
Me acuerdo de la primera vez que me tocó trabajar en equipo. Técnicamente no fue nada del otro mundo, pero socialmente, no tienes idea de todo lo que tendrás que aprender. Bueno pues resulta que yo tenía mi PC donde trabajar, pero eventualmente llegó una persona al equipo temporalmente a arreglar su código. El caso es que no había computadora para asignarle, y como yo era el más novato, pues me quitaron la mía para que él trabajara. El líder de proyecto se me acercó y me dijo: "Vamos a necesitar esta computadora para terminar algo que es muy urgente, pero si quieres usa la del fondo". Era una computadora que nadie utilizaba, tenía Windows NT instalado así que no me gustaba tanto como mi PC con Windows 95, pero básicamente era lo mismo así que me puse a trabajar. Pasó el tiempo y de repente sentí que la computadora empezó a fallar, porque el programa no compilaba, en ese tiempo Visual Basic 3.0 era bastante malo, y como no veía modo de continuar, dije "pues voy a reiniciar la máquina a ver si así se arregla". Le doy "reset", se reinicia, y todo el equipo, que eran como 6 personas, levantó la cabeza al mismo tiempo. ¿Te haz dado cuenta que a pesar de que una desktop se encuentra en el suelo o sobre el escritorio, cuando algo se le descompone al sistema, lo primero que hacen es alzar la cabeza para buscar algo en el aire?
Y yo en la esquina: "¡Qué paso de que!". Pues resulta que la computadora que estaba usando era el servidor de base de datos, y cuando la reinicié, pues obviamente le tiré el trabajo a todos. Uuuy, no sabes la cantidad de indirectas, burlas, críticas y regaños que recibí. "¡Pero cómo se te ocurre reiniciar el servidor!, ¿no ves que ahí todos estamos trabajando?", y yo les decía: "¡Pues en qué momento me dijeron que ése era el servidor!", pero es como responderle al comentarista en la radio. "¡Es que es el servidor!, nunca debes apagar el servidor por ningún motivo". Bueno ya entendí, cambiemos de tema... "pero es que, ¡como es posible que ..." y así sigue la conversación por horas...
Total que el incidente pasó, el proyecto siguió su curso y eventualmente me comenzaron a dejar a cargo, hasta que un buen día por razones que ya no recuerdo me quedé solo trabajando en el proyecto, y de repente, la base de datos empezó a fallar, constantemente me llamaban de diferentes departamentos de la compañía para decirme que no funcionaba el programa, que estaba fallando, que los datos no se guardaban, que no podían generar el reporte, y no sabes la frustración de tener encima a toda una empresa enojada por el sistema que estábamos desarrollando. ¡Qué hago!, compilaba el programa, le probaba, le quitaba, le ponía, y simplemente se comportaba de una manera tan extraña, a veces hacía las cosas, y de repente no las hacía, ha sido uno de los momentos más estresantes que he vivido. De repente y quién sabe por qué motivo, se apareció uno de los líderes de proyecto de la empresa, alguien que ni siquiera estaba asignado al proyecto pero que era uno de los que más experiencia tenía:
Y entonces me dice:
Total que reinicié el servidor, y todo se arregló como por arte de magia. "¿Ya viste?, no era cosa del otro mundo".
Días después, estábamos todos comiendo, y de repente, esta persona comienza a decir su anécdota: "Qué creen, el otro día, yo no sé por qué, pero estaba pasando y se me ocurrió ir a ver cómo iba el proyecto, y me encontré a Raúl con una cara de espanto, todo pálido y con los pelos parados Jajajaja, y diciéndome en estado de pánico que no servía la aplicación, y entonces reinicié el servidor, y todo se arregló". Acto seguido, todos se soltaron con una generosa dotación de burlas, chistes e indirectas: Jajajaja, pero ¡que tonto!, ahí sufriendo y lo único que tenías que hacer era reiniciar el servidor!", y yo decía "¿Pues no dijeron que el servidor nunca se tenía que reiniciar por ningún motivo?", pero nuevamente como tratar de hacer que la radio te escuche. Me da mucha risa cuando me acuerdo, eventualmente me di cuenta que lo que importaba no era tanto el problema, sino que hubiera alguien a quién criticar.
Y la moraleja de esta historia mis estimados "aprendiendos" es que, algún día vas a estar a cargo de un proyecto, y cuando eso suceda, recuerda este consejo: Primero que nada, establece las reglas de trabajo por escrito y asegúrate de que todos en el equipo estén enterados y entrenados. Y segundo: Si alguien comete un error por hacer algo de lo que nunca le informaste, entonces no será su culpa, será tuya por no haberlo comunicado.
¡Hasta la próxima!
Raúl Cosío