Mi tesis de grado en Ingeniería Informática
Más de una vez me han preguntado, sobre todo estudiantes avanzados de la carrera, respecto a mi tesis de grado de Ingeniería Informática. Si bien las preguntas generalmente varían, hay un interrogante constante: cuánto tiempo me llevó hacer la tesis. Los curiosos suelen sorprenderse pero nunca sé bien que responder. Entiendo su sorpresa: hacer una tesis suele ser un evento importante en la vida de una persona, no puede ser que esa persona no tenga presente cuanto tiempo le llevó.
El objetivo, entonces, de este artículo es ordenar mis ideas sobre el papel para que la próxima vez que alguien me pregunte pueda darle una respuesta corta y una referencia a este artículo en caso de que realmente está desesperada por saber más.
$ date +%s | sha256sum | base64 | head -c 6 ; echo
2. La tesis no la hice solo, la hice con mi colega Gonzalo Pallotta y con mi colega Héctor Klikailo quien estuvo trabajando en la "tesis relacionada" mencionada más adelante. Pero no siempre que escribo en primera persona plural estoy hablando de los 3.
Más tarde ese año, después de haber rendido un buen final de Diseño de Sistemas, uno de los profesores de esa materia a quien llamaré MGYeYz nos ofreció a mi y a mi amigo ser parte de la cátedra el año entrante. Aceptamos, porque al parecer eso era todo lo que hacía en aquel momento.
Esta última parrafada fue poco técnica pero quiero hacer foco en que si bien la pregunta estaba clara, debía aprender múltiples cosas antes de siquiera intentar responderla. Arrancamos comiéndonos el elefante de a poquito y trabajando con UWE en el marco de la materia de Ingeniería de Software con el profesor MGYeYz: los 3 que habíamos sido "escogidos" por ZjY0NT un año atrás.
Inmediatamente después de presentar el anteproyecto comenzamos a trabajar en cuestiones más divertidas: ATL, Acceleo, QVT, etc. así que mientras nuestros evaluadores leían nuestro anteproyecto, por fin, después unos 3 años de espera podíamos empezar a ver los primeros resultados. La devolución del anteproyecto tuvo algunas observaciones pero fue aprobado así que los niveles de felicidad estaban bastante altos hasta que unos días después de la buena noticia nos llegó (con copia oculta) una noticia pésima en un mail dirigido al Departamento de Ingeniería y Cs. de la Producción de la universidad: como protesta por un desacuerdo salarial MGYeYz dejaba indefinidamente la dirección de TFCs. Nos enteramos por un mail, de un día para el otro, que nuestro director y prácticamente amigo MGYeYz nos soltaba la mano porque no llegaba muy cómodamente a fin de mes. Quizás su protesta era válida pero hubiéramos deseado enterarnos de ella de alguna manera menos impersonal e indirecta.
La noticia nos afectó pero ya no podíamos parar, seguimos trabajando sin director hasta tener el trabajo que nosotros mismos queríamos lograr y después de mucho trabajo y de algunas idas y vueltas más o menos violentas entre varios actores más de los mencionados aquí: terminamos. Terminamos el borrador de tesis sin director así que nos aceramos a ZyYoNT, quien nunca se desentendió del todo de nosotros (mostrando así una nobleza de espíritu admirable) a conversar sobre nuestra situación y preguntarle si nos quería dirigir él. ZyYoNT aceptó, comenzó a leer el borrador y nos hizo algunas observaciones que solucionamos con gusto y para el mes de la Navidad ya teníamos nuestra tesis lista.
El objetivo, entonces, de este artículo es ordenar mis ideas sobre el papel para que la próxima vez que alguien me pregunte pueda darle una respuesta corta y una referencia a este artículo en caso de que realmente está desesperada por saber más.
Disclaimers
1. Los nombres reales fueron reemplazados por una sugerencia propuesta por el sgte. comando:$ date +%s | sha256sum | base64 | head -c 6 ; echo
2. La tesis no la hice solo, la hice con mi colega Gonzalo Pallotta y con mi colega Héctor Klikailo quien estuvo trabajando en la "tesis relacionada" mencionada más adelante. Pero no siempre que escribo en primera persona plural estoy hablando de los 3.
Timeline
2010: el año en que hicimos contacto
Aún estaba debatiéndome respecto a si me dedicaría a la música o a las computadoras. En una charla con un amigo que estaba estudiando ingeniería informática en la Universidad a la que yo tenía pensado ir, le pregunté respecto al tema de su tesis. Me respondió como buenamente pudo hacerlo a un chico de 17 años que nunca había estado expuesto de lleno al mundo de la ingeniería de software. El problema lo entendí ligeramente pero la solución pretendida me pareció un poco incomprensible y, cuantimenos, mágica. Aun considerando que ya había leído a Asimov. Recuerdo sus menciones a "modelos", "transformaciones", "automatismo" pero no recuerdo nada más y lo dejé pasar.2013: Paradigmas y lenguajes de programación
Claramente me decidí por las computadoras (aunque la guitarra no la dejé nunca) y durante mi tercer año en la universidad cursaba la materia mencionada en el título de este apartado cuando el profesor de esta materia, a quien llamaré ZjY0NT llevó al aula un libro llamado "Desarrollo de software dirigido por modelos" escrito por C. Pons, R. Giandini y G. Pérez y nos explicó brevemente de que iba la cosa. La idea era la que me había mencionado mi amigo 3 años atrás, aunque en ese momento no me di cuenta y, además, esta vez me pareció fascinante. Apenas salí de clases, me bajé el libro y comencé a leerlo, esperanzado de que profundizáramos algo más en clases. Lo cierto es que no se volvió a hablar del tema durante el cursado. Promocioné esa materia, lo que significaba que en lugar de rendir el examen tradicional podía aprobar exponiéndo al profesor respecto a algún tema visto en clases y usando ejemplos prácticos. Preparé el tema sobre el cuál trataba el libro que mencioné antes y, no estando seguro si eso era válido, preparé también una exposición sobre programación funcional (¿Por qué, simplemente, no envié un mail preguntando?). El día en que rendía la exposición le pregunté al profesor si podía exponer sobre MDD (ya llamaba así al paradigma) y me dijo que sí pero necesitaba tener ejemplos prácticos desarrollados. Como no los tenía expuse sobre programación funcional y fin de la historia.2014: Primeros esfuerzos de investigación
En el patio de la universidad, el profesor ZjY0NT nos alcanzó a mi y a un compañero para decirnos que estaba trabajando en investigación y que le gustaría que formemos parte de su equipo. Sin dudarlo nos apuntamos a la idea y, con su aprobación, sumamos a un amigo más a la aventura. Lo cierto es que la experiencia no fue demasiado estructurada. Nuestro bautismo fue un mail con un puñado de papers sobre ontologías, web semántica, gobierno abierto y desarrollo guiado por modelos. Como yo seguía interesado en esto último, dediqué mayores esfuerzos a ello pero lo cierto es que durante este año no hicimos grandes avances. Mis aportes estuvieron relacionados con la solución de problemas puramente técnicos en el uso de herramientas como Protégé y Eclipse.Más tarde ese año, después de haber rendido un buen final de Diseño de Sistemas, uno de los profesores de esa materia a quien llamaré MGYeYz nos ofreció a mi y a mi amigo ser parte de la cátedra el año entrante. Aceptamos, porque al parecer eso era todo lo que hacía en aquel momento.
2015: Siglas y más siglas
Trabajaba en docencia con MGYeYz en la misma medida en que forjábamos una buena relación cuando un buen día, durante una de las reuniones semanales que teníamos, tenía algo importante que decirnos. Nos planteó que sabía que desde hace un año estábamos "trabajando en investigación" pero solo nominalmente y que si realmente nos interesaba avanzar con eso, el tenía algunas ideas. Acto seguido, sacó unos papeles de su morral y nos mostró un problema que en ese momento me pareció mucho más interesante de lo que me parece ahora ¿Cómo podíamos usar MDD para integrar modelos de distintos enfoques metodológicos de la Ingeniería Web para poder armar una sola metodología que posea lo mejor de cada uno de estos enfoques que la constituían? Se suponía que había un enfoque metodológico llamado NDT que era bueno en el Relevamiento de Requerimientos, uno llamado UWE que era bueno en Análisis y Diseño y uno llamado WebML que era bueno para la implementación de la solución ¿Podíamos integrar todo esto?Esta última parrafada fue poco técnica pero quiero hacer foco en que si bien la pregunta estaba clara, debía aprender múltiples cosas antes de siquiera intentar responderla. Arrancamos comiéndonos el elefante de a poquito y trabajando con UWE en el marco de la materia de Ingeniería de Software con el profesor MGYeYz: los 3 que habíamos sido "escogidos" por ZjY0NT un año atrás.
2016: Último año de cursado
Durante las vacaciones de verano hicimos todo lo que estaba a nuestro alcance para lograr la implementación de un sistema usando solamente UWE y tuvimos resultados relativamente buenos hasta la hora de tener, efectivamente, código funcionando. (Lease este último párrafo con el sarcasmo que corresponda). UWE se integraba con un plugin de Eclipse que terminaba generando código JSF. Nosotros queríamos, oh poor boy, generar PHP. Por ello, acordamos escribir el código PHP manualmente teniendo en cuenta los modelos desarrollados y después escribir cuales eran las reglas de derivación que pudimos haber seguido para llegar a ese resultado. En medio del tedio, uno de mis amigos se puso a hacer un curso de web semántica en Coursera y se estancó en un ejercicio que implicaba ciertas destrezas en el uso de SPARQL y recordando que ZjY0NT estuvo trabajando con eso en algún momento, lo alcanzó y lo interrogó. ZjY0NT se emocionó mucho por esta muestra de interés de ¿nuestra? parte y organizó un par de reuniones para que conozcamos a los nuevos alumnos con los que estaba trabajando desde que MGYeYz "nos llevó consigo" con el fin de ver si podíamos aunar esfuerzos. El día de la reunión, presentamos nuestros avances y ZjY0NT, que en ese momento tenía un rol importante en el aspecto de I+D de la Universidad nos dijo algo que probablemente nunca vaya a olvidar "Si hacen X, sacan Y y agregan Z, esto tiene suficiente entidad como para ser un Trabajo Final de Carrera." Esto nos fogoneó todo lo que hacía falta fogonearnos y seguimos trabajando con esto duramente durante todo ese año.2017: Año de la frustración
El 2016 fue un año intenso pero, al menos en apariencia, productivo. Terminamos de cursar y aprobamos un puñado de materias relacionándolas con nuestro Trabajo Final de Carrera (TFC). La frustración me nacía del hecho de que a esta altura ya habíamos hablado interminables horas de interminables cuestiones relacionadas con MDD y con nuestra tesis pero yo quería algo más que hablar, quería tener algún resultado mínimo, alguna prueba de concepto. Para peor, todavía estábamos los 3 integrantes del grupo trabajando en lo mismo y eso era inaudito porque la tesis no podían hacerse entre más de 2 personas. Nos llevó medio año (sin cursar) resolver la división de temas de una manera razonable y comenzar a trabajar en algo concreto. Por fin podíamos empezar a hablar de la presentación de nuestro anteproyecto.Inmediatamente después de presentar el anteproyecto comenzamos a trabajar en cuestiones más divertidas: ATL, Acceleo, QVT, etc. así que mientras nuestros evaluadores leían nuestro anteproyecto, por fin, después unos 3 años de espera podíamos empezar a ver los primeros resultados. La devolución del anteproyecto tuvo algunas observaciones pero fue aprobado así que los niveles de felicidad estaban bastante altos hasta que unos días después de la buena noticia nos llegó (con copia oculta) una noticia pésima en un mail dirigido al Departamento de Ingeniería y Cs. de la Producción de la universidad: como protesta por un desacuerdo salarial MGYeYz dejaba indefinidamente la dirección de TFCs. Nos enteramos por un mail, de un día para el otro, que nuestro director y prácticamente amigo MGYeYz nos soltaba la mano porque no llegaba muy cómodamente a fin de mes. Quizás su protesta era válida pero hubiéramos deseado enterarnos de ella de alguna manera menos impersonal e indirecta.
La noticia nos afectó pero ya no podíamos parar, seguimos trabajando sin director hasta tener el trabajo que nosotros mismos queríamos lograr y después de mucho trabajo y de algunas idas y vueltas más o menos violentas entre varios actores más de los mencionados aquí: terminamos. Terminamos el borrador de tesis sin director así que nos aceramos a ZyYoNT, quien nunca se desentendió del todo de nosotros (mostrando así una nobleza de espíritu admirable) a conversar sobre nuestra situación y preguntarle si nos quería dirigir él. ZyYoNT aceptó, comenzó a leer el borrador y nos hizo algunas observaciones que solucionamos con gusto y para el mes de la Navidad ya teníamos nuestra tesis lista.
Comentarios
Publicar un comentario