Aprendiendo del Open Source III - 2019

Extensión universitaria colaborando con la comunidad open source. Implementamos un MFA, con el protocolo OTP colaborando Sodep y la Universidad Católica Sede Asunción.

Aprendiendo del Open Source III - 2019

Desde el año 2017; venimos participando como Sodep de un tipo de extensión universitaria llamado UC-AoC (Universidad Católica Autumn of Code). Este año decidimos llamarlo por la estación predominante en esa época del año; inicialmente era Summer of Code, inspirado por el programa análogo de Google.

Nos es grato contar que las experiencias previas fueron exitosas 2017 y 2018, al igual que este año; y que cada año vamos aprendiendo cosas nuevas y a la vez presentando nuevos desafíos a los alumnos participantes.

El principal aprendizaje de este año tiene que ver con el trabajo en equipo. Le comenté al Profesor de la materia, el Dr. Luca Cernuzzi; que para los siguientes años; trabajar en equipo debería ser uno de los requisitos, ya que adquirir algo de esa habilidad les servirá a los alumnos por el resto de sus vidas.

En lo que se refiere a la parte técnica; los participantes consiguieron implementar un esquema de autenticación múltiple (MFA) basado en el protocolo OTP; integrado a la librería Joko Security (Json Web Tokens); con el cliente Android Mboehao incluído para la lectura del QRCode que lee la semilla.

Les dejo aquí los relatos de Marcelo Valdez y Guillermo Codas; los alumnos con quienes me tocó trabajar en esta ocasión. Transcribo as-is sus escritos.

Marcelo V.

Mi experiencia trabajando con Sodep S.A.
A principios de marzo del 2019, en la materia de Ingeniería de Software 2, el profesor Dr. Luca Cernuzzi nos informó del Trabajo Práctico de la materia. Este trabajo consistió en ser parte de la experiencia UCA Summer of Code. El objetivo: ser parte del desarrollo y/o colaborar en un proyecto bajo la tutela de un profesional de la industria.
Luego de recibir la lista de posibles mentores, decidí ser parte del proyecto propuesto por Sodep S.A. bajo la tutela del Ing. Inf. Ale Feltes. Esta decisión fue en parte a mi interés en el proyecto Android presentado, así también, escuche excelentes comentarios y opiniones respecto a trabajar con Sodep de amigos, conocidos y mi hermano quien también fue parte de un proyecto en su tiempo y anteriormente miembro del equipo de Sodep. Por lo cual tomé mi decisión y me comunique con Ale para presentar mi interés en el proyecto.
Entre los comentarios que recibí sobre la experiencia de trabajar en estos proyectos con Sodep, la exigencia de los trabajos era un punto en común. Personalmente, deseaba trabajar bajo un tutor que realmente ponga interés y sea exigente con el trabajo que se estaba realizando y que esto se vuelva una experiencia laboral lo más cercano a la realidad.
En nuestra primera reunión se nos presentó el proyecto, las ideas detrás de realizarlo, las herramientas que se necesitaban, como así también los materiales para aprender a profundidad sobre las técnicas, protocolos y conocimientos que se necesitaban para entender el proyecto y obtener el resultado esperado al final del desafío.
Las dificultades del proyecto se encontraban en el uso de las herramientas con las que no estaba familiarizado como Android Studio, Github, los Proyectos FreeOTP, Mbo’ehao y el Joko Framework; sin embargo Ale estuvo presente para facilitarnos guías, videos y tutoriales de cómo utilizar las herramientas con las que estábamos trabajando, así también contestar las dudas que surgían sobre el proyecto.
El proyecto en sí no tuvo mayores complicaciones en mi parte, Mbo’ehao resultó un proyecto extremadamente intuitivo y fácil de manejar, así que por más de que no contaba con experiencia en el mundo de la programación Android, se pudo cumplir con las entregas de la parte Android del proyecto en fecha y hora sin mayores dificultades. Mi inexperiencia con Github sin embargo me causó problemas la primera vez a la hora de realizar los Commits, los Pushes y el Pull Requests. De los errores se aprenden y después de eso no hubo otras complicaciones en el campo de Github.
Los conocimientos que se adquirieron serán sin dudas imprescindibles en mi carrera profesional, desde la parte técnica como aprender nuevos lenguajes sobre la marcha, hace uso de nuevas herramientas y aprender a adaptarme a los problemas técnicos, como así también en la parte de interacción humana como saber comunicarse, saber como expresar mis ideas y entender lo que significa trabajar en equipo en el mundo profesional.
El 11 de junio el último commit fue realizado y para el 15 de junio se realizó el Merge del trabajo que había realizado oficializando mi aporte al proyecto, esta resulta ser mi primera contribución en un proyecto en Github y seguro no será la última. El proyecto requirió paciencia, esfuerzo y creatividad para completar pero la experiencia obtenida es invaluable. Agradezco al profe Luca, a mi mentor Ale y a Sodep por la oportunidad de realizar este proyecto y permitirme dar el primer paso en el mundo profesional de mi carrera.

Guillermo C.

Sodep Mboehao
Experiencia en el Proyecto OTP
El objetivo del proyecto fue incorporar el sistema de Login del Joko-Framework para que pudiera tener un sistema extra de autenticación por medio del método One Time Password. La parte de la configuración del backend fue otorgada a mí para hacer las modificaciones necesarias.
Puedo decir que esta es una de las pocas únicas experiencias que tengo donde mis actos realmente afectan el posible futuro de un proyecto de una empresa oficial en el país, donde tanto la emoción, como un poco de presión también de querer conseguir terminar mi parte en su totalidad, fueron todos experimentados durante el transcurso del laburo.
Una cosa esencial que aprendí del proyecto es que no todo está arreglado para que tu ambiente de trabajo esté listo para comenzar a hacer la labor encargada. Tuve ciertos momentos en el que hubo instrucciones para preparar un sistema aparte donde trabajaría, donde dichas instrucciones no fueron muy claras para mí o faltaban algunos pasos en la construcción que no fueron referenciados del todo correctamente, por error humano. De los cuales uno, como empleado y programador principalmente, siento que debería estar adaptado para ser atento, y leer todos los datos que se le fueron ofrecidos en un documento para su labor, en vez de solo hacer caso a las instrucciones dadas por un superior. Dicho esto, no me estoy referenciando a que el superior sea incompetente en su labor, sino es, como dije, error humano no recordar todo lo que uno de los muchos proyectos que tienen funciona.
Fue un buen ejemplo también saber que a pesar de que mi trabajo era individual, no tenía que tener miedo en hacer consultas con los contactos que tenía para poder facilitarme un poco más la labor. Principalmente para sacarme de un momento en el que me encontraba atascado en un problema que podría haberse solucionado de múltiples maneras, pero que causaría la menor cantidad de cambios de parte de mi otro compañero que hacía su parte complementaria a la mía.
El proyecto demostró el caso común de un programador o arquitecto en el cual, incluso si el paquete terminado funciona y el encargado verifica que el resultado técnicamente hace lo pedido, la versión que yo tenía entendida no fue lo mismo que la versión final esperada. Por este motivo tuve que hacer unos cuantos cambios que no afectarían la función final que hice, sino algunos pasos para introducir los datos. Esto me enseñó que aunque mi proyecto cumpla con los requisitos pedidos, igual es probable que no tenga todo lo que el cliente imaginaba que tendría.
Todas estas experiencias serán de importancia en mi desarrollo, de los cuales espero que si estoy en un momento similar a los que tuve durante el trabajo de Joko-framework, pueda recordar los procedimientos que hice para poder salir o progresar más allá de los problemas, y que no se me repitan en posibles proyectos mas adelante.