Aprendiendo del Open Source II - 2018

Extensión universitaria 2018 colaborando con la comunidad open source. Sodep S.A. y Universidad Católica "Nuestra Señora de la Asunción".

Aprendiendo del Open Source II - 2018

Hace casi un año, publicábamos nuestra primera experiencia con el proyecto UCA Summer Of Code, del DEI-UCA, con buenos resultados, tanto desde nuestra óptica y por opinión de los alumnos involucrados, también para ellos.

Este año, repetimos la experiencia; con un poco más de kilometraje andado; y poniendo mejores reglas (y sobre todo más claras) desde el comienzo.

Coincidentemente este año, pasamos (Sodep) a integrar el Comité de Educación de la CISOFT, donde esperamos poder compartir esta y otras experiencias; formando personas en sus primeras etapas laborales.

El éxito de este tipo de proyectos depende fundamentalmente de estos factores:

  • Acompañamiento constante del mentor
  • Interés y dedicación del alumno

En mi caso, no le dedico mucho tiempo (en cantidad), pero sí en calidad y a un ritmo constante; es clave que el alumno se sienta acompañado y que conozca las exigencias desde el comienzo; si bien nos movemos en el ámbito académico; los objetivos son varios y puede ser visto como un negocio.

Una de las definiciones de Negocio:

Aquello que es objeto o materia de una ocupación lucrativa o de interés.

En este caso, nos une el interés.

  • Como Sodep: Conocer nuevos talentos e incrementar nuestras funcionalidades de proyectos open source. En este caso, un proyecto base Android llamado: Mboehao
  • Como la UCA: Brindar al alumno de la carrera de Ingeniería Informática, una experiencia diferente, conociendo herramientas y formas de trabajo colaborativo
  • Como Alumno: El conocimiento adquirido

Al respecto del último punto, les dejo el relato de Nico González, con quien tuve la oportunidad de trabajar en esta ocasión.

Nosotros, muy contentos con el resultado final. Se notó el interés en aumento por parte de Nico, a medida que avanzaba el proyecto.

La experiencia comenzó en marzo de 2018 con la materia de SE2. El profesor Luca nos comentó que se repetiría la experiencia del año pasado (que fue la primera que se realizó) del UCA Summer of Code. Con esto en mente, y sabiendo la experiencia de las personas que participaron el semestre pasado, tenía entendida la temática de asociar a un alumno con un profesional de la industria a fin de desarrollar y/o colaborar en un proyecto.

En cuanto salió la lista de los tutores disponibles, hice una revisión rápida de los proyectos. Había varios proyectos sencillos que parecían puntos fáciles para la materia, pero elegí el que más me atrajo en el momento: colaborar en el desarrollo en una aplicación Android. Como nunca antes había programado para una plataforma móvil, y además tenía como objetivo trabajar con servicios REST, que había tocado poco o nada anteriormente, me pareció una oportunidad interesante para aprender una plataforma que no había manejado antes.

Después de haber tomado mi decisión, contacte con la empresa y en última instancia con el Ing. Ale Feltes con el cual agendamos una reunión remota para presentar el proyecto, herramientas y esquema de trabajo a seguir. Todo bien hasta acá, hasta que me olvide de la reunión programada. Esto no es para nada recomendable si vas a trabajar con alguien, no sé cuál habrá sido la primera impresión que se habrá llevado de mí, pero imagino que no fue buena. Luego, de hablar otra vez, pidiendo las disculpas correspondientes, logramos encontrar otro hueco para la primera reunión, una segunda vez.

En la primera reunión, el tutor se notaba que estaba dispuesto a ayudar y a explicar todo desde el comienzo. Dejó en claro las especificaciones y puntos a evaluar del proyecto. Como primera tarea me tocó familiarizarme con Android y GitHub, herramientas que, si bien había tocado alguna vez, nunca había llegado a hacer nada importante con las mismas. Honestamente, te sentís medio nervioso la primera vez que te asignan una tarea en plataformas que no estás acostumbrado. No sabés si vas a poder lograr lo que te pidieron en el tiempo establecido. Pero así mismo, personalmente me gusta aprender herramientas nuevas y, por lo tanto, el proyecto tenía su lado divertido.

Aprender a manejar Java y Android fue difícil. Esperaba eso, pero honestamente la primera semana y media no tenía ni una remota idea de lo que estaba haciendo. Aunque no puedo decir que ahora soy un experto, por lo menos puedo decir que me puedo manejar un poco con las herramientas. Mi tutor me tiró un montón de recursos para aprender sobre la sintaxis, arquitectura, etc. de Java, así como Android. Habré leído unas 5 horas, cuando sentí que no estaba progresando mucho de esta manera, así que decidí aprender sobre la marcha. Había algunas cosas que me hubieran ayudado a la hora de tocar código, como el uso del debugger, que aprendí a usar el día de la defensa final.

El proceso fue agotador en ciertos puntos y a veces me solía trancar en problemas sencillos debido a mi falta de conocimiento en el área. El tutor, Ing. Ale Feltes, fue exigente durante el proceso. Incluso, con mis compañeros de la materia que estuvieron con otros tutores, coincidían que a ellos no les llegaron a exigir la mitad de las cosas que en mi caso e incluso algunos ni siquiera contestaban los mensajes directos. Quizás eso sería un buen punto a mejorar en siguientes ediciones del USoC, la falta de comunicación y atención de ciertos tutores. Si bien Ale era exigente y estaba la mayor parte del tiempo ocupado y no podía contestarme, lo cual es comprensible, estuvo dispuesto a prestar una mano para ayudarme cuando tenía problemas para montar el backend, por ejemplo. También fue flexible con las fechas en caso de que yo no lograra las metas establecidas e incluso ofreció montar servidores en la nube para llevar a cabo las pruebas.

En mi opinión, creo que fue una experiencia positiva ya que logré aprender herramientas nuevas, esquemas de trabajos reales en ambientes de desarrollo y producción, además de conocer y relacionarme con gente con experiencia y conocimientos en el área. El trabajo tenía un estimado de 120 horas de esfuerzo, lo cual a veces consumía mucho tiempo de otras actividades, sobre todo considerando que cuando hice esto, llevaba 7 materias de la facultad y un trabajo de tiempo completo. Aun así, si se tienen las ganas y el esfuerzo, es posible llevar adelante el proyecto y creo que complementa de una buena manera los conocimientos que se obtienen en clases. Estas últimas no deben ser descuidadas, porque muchos consideran que no se aprenden cosas relacionadas al ambiente real de trabajo, pero proveen una base valiosa para desarrollarse en las diferentes áreas de un profesional. Agradezco a Ale y SODEP por la oportunidad.