Javier Marenco es Profesor Regular del Departamento de Computación (DC) y de la Universidad Nacional de General Sarmiento (UNGS). Es Licenciado y Doctor en Ciencias de la Computación (UBA). Desde hace más de 20 años trabaja en Papyro, una empresa de desarrollo de aplicaciones y servicios de consultoría en temas de planificación y seguimiento de la producción, y de manejo de recursos naturales. Allí cumple el rol de desarrollador de software y líder en proyectos de optimización aplicada a productos.
En esta charla con el DC, Javier nos detalla sobre su actividad privada en el sector de software, su trabajo de optimización combinatoria y la experiencia concreta de haber dictado clases en modalidad virtual.
¿Podrás contarme un poco qué es Papyro y cuál es tu rol en la empresa?
Empecé en Papyro en el año 2000, hace 22 años que trabajo en la empresa.
La empresa fue fundada hace 30 años. Nació dedicada a dar soluciones de optimización, y de a poco se fue moviendo a implementar sistemas. Ahora convergen esas dos actividades: software de optimización y desarrollo de sistemas. Más allá de los distintos proyectos comerciales, el foco de la empresa siempre estuvo puesto en el sector foresto-industrial: empresas forestales, papeleras, corrugadoras, microcorrugadoras, etc. con toda la cadena industrial que se genera a partir de plantar árboles, hacer papel con esos árboles y, finalmente, hacer productos con ese papel. También se desarrollan algunos proyectos de consultoría pero la mayoría de los proyectos son de desarrollo de software: sistemas de gestión, industriales típicamente, y aplicaciones de software de optimización para asistir al programador de producción de una fábrica o tomar algunas decisiones más estratégicas en fábricas del sector.
Cuando ingresé a la empresa estaba recién recibido y empecé como programador para hacer desarrollo. Mi Tesis de Licenciatura estuvo enfocada a optimización y en la empresa buscaban un programador que supiera de estos temas. Así fui creciendo y pasé de un rol junior a tomar más responsabilidades, hasta llegar a liderar proyectos, con decisiones estratégicas, de arquitectura y de diseño. Más allá de que hay servicios de consultoría a medida, el objetivo es ofrecer productos de software multi-cliente. En mi caso estoy a cargo de los productos de optimización y participo de las decisiones importantes del resto de los proyectos.
¿Por qué la empresa decidió insertarse en ese nicho en particular?
La motivación inicial fue del fundador de la empresa, que tiene un background importante en optimización e investigación operativa. A principios de los años 90 comenzó ofreciendo servicios por el lado de fábricas papeleras y forestales, y la empresa empezó a definir su negocio. Se encontraron muchas necesidades de optimización en industrias forestales y papeleras, por lo que a partir de esta oferta se abrió el mercado.
¿Y cómo se aplica la optimización a este tipo de industrias?
El problema clásico de las forestales es el siguiente: para hacer papel necesitás madera, para tener madera necesitás un árbol adulto, y para tener un árbol adulto lo tenés que haber plantado hace 15 o 20 años. El papel se hace con árboles que son cultivados, no se explota el bosque nativo en esta industria. La empresa alquila o compra una parcela de campo, por ejemplo planta Eucaliptus y los cuida para cortarlos dentro de 20 años. Entonces la decisión clave es qué plantar, dónde plantar y cuándo cortar, qué especies renovar, con una proyección de largo plazo para los próximos 50 o 100 años, de modo de asegurarme un flujo de madera que permita abastecer a la fábrica. No puede pasar que de repente un año me dé cuenta de que me quedé sin madera. Hay estimaciones de demanda y proyecciones de negocios sobre cuánta madera vamos a necesitar para la producción. Además hay distintas especies, entonces si querés hacer pulpa necesitás plantar cierto tipo de árboles, si querés hacer muebles necesitás otro tipo de árboles. Hay especies que se cortan y vuelven a crecer, por ejemplo un álamo, pero el rendimiento es peor porque el árbol rebrotado suele tener menos madera, entonces hay que ver cómo compensar eso. Son decisiones que no son triviales y que impactan el rendimiento de la empresa.
En este caso tener un modelo de optimización nos ayuda a tomar esas decisiones. Los usuarios finales de esa herramienta son una o dos personas, que planifican esa operación en la empresa forestal, y en función de eso deciden qué árboles plantar, en qué lugar y por cuánto tiempo. Ese plan estratégico se va revisando anualmente. Además hay unas cuantas restricciones, no podés cortar lo que quieras ni donde quieras por el impacto logístico, humano y de recursos naturales que finalmente implican estas actividades.
Y una vez que está listo el modelo de optimización, hay que desarrollar el programa…
Exacto, una parte del desarrollo es hacer el modelo de optimización y resolverlo, pero también hay que contar con herramientas cómodas para trabajar con este modelo. El usuario necesita un software para pasar la información desde sus sistemas y analizar las soluciones. Normalmente se hacen muchos escenarios y se preguntan, por ejemplo, ¿qué pasa si la demanda de madera sube un 5%, qué pasa si baja un 20%, qué pasa si el precio sube o baja? Se plantean distintos escenarios, con una buena herramienta de software que pueda compararlos y tener indicadores cómodos para hacer ese trabajo (porque a veces hay mucha información en los resultados de estos modelos), resolver los escenarios y ver la salida. Este tipo de desarrollos no son tan grandes, son proyectos de los que se puede encargar un equipo relativamente chico.
Personalmente, ¿qué te apasiona de la optimización combinatoria?
Siempre que uno tenga que resolver un problema de asignación de recursos, seguramente se hará con recursos limitados (no tenemos infinito tiempo o dinero y además habitualmente no estamos holgados), por lo que hay que decidir cómo usar esos recursos de la mejor manera posible. Un ejemplo puntual es la asignación de aulas en un establecimiento educativo. Ahora con el edificio nuevo de Exactas hay un montón de aulas, pero hasta hace poco el tema de la asignación de aulas era realmente muy complicado (a qué aula va cada materia, con cuántos alumnos, etc.). Se trata de usar la infraestructura que tenemos de la mejor manera y no es una opción cancelar una clase. Eso siempre nos lleva a tomar decisiones difíciles, por ejemplo sacrificar una de mis actividades para que otra pueda hacer las cosas con mejores recursos. Ahí aparecen problemas donde naturalmente la optimización combinatoria puede dar una mano. Con la optimización uno puede ayudar a resolver problemas muy desafiantes y entretenidos (eso es lo que me gusta de este trabajo).
Pero cuando estamos hablando de recursos generalmente también hablamos de personas que no se comportan de una manera exacta o previsible, hay factores humanos que a veces se escapan a la lógica. ¿Cómo se conjuga este factor en el desarrollo de las soluciones?
Es un muy buen punto. Nosotros desde la optimización le damos herramientas a la persona que toma la decisión, quien finalmente decide qué es lo que hay que hacer y cómo hacerlo. Generalmente se instrumenta dándole muchas soluciones distintas o escenarios posibles y la persona, con su ojo clínico de años en el tema, define cuál le parece mejor, considerando otras cosas que el modelo de optimización quizás no puede considerar del todo bien.
Un ejemplo clásico surge al rutear un vehículo: planteás cuál es el mejor recorrido pero después la persona que hace 20 años está despachando camiones, mira el recorrido y dice “pero este conductor no es el mejor para esta ruta porque la última vez que pasó por esta zona había un corte, no supo bien por dónde desviarse y tardó mucho más, mejor optemos por esta otra ruta que para este conductor va a ser mejor”. Estos elementos muchas veces son difíciles de incorporar a un modelo de optimización. A veces las restricciones son difíciles de manejar y técnicamente el modelo no las incorpora, mientras que otras veces involucran elementos intangibles difíciles de medir. No siempre es fácil modelar las preferencias de los usuarios pero hay que tenerlas en cuenta de alguna forma. Cuanto más servicial sea la herramienta de software, mejor. Necesitamos darle al usuario indicadores para comparar fácilmente distintas situaciones, visualizarlas de manera clara y que no tenga que ponerse a interpretar miles de datos en una planilla.
Por último, nos interesaría saber cómo fue tu experiencia aplicando la modalidad virtual de clases durante el período de aislamiento social.
Creo que el trabajo del Departamento de Computación fue muy destacable para mantener la cursada, sobre todo en el primer cuatrimestre de 2020. Quizás el segundo y tercer cuatrimestre de virtualidad lo empezamos a normalizar y, con la experiencia adquirida, fue mejorando la calidad. En nuestro caso, Algoritmos y Estructuras de Datos I era una materia que tenía dos turnos relativamente grandes. Se separó en casi 20 comisiones, cada una a cargo de dos docentes y con un máximo de 15 alumnos, unidades más manejables de manera virtual. Armamos videos de teóricas y prácticas y a partir de ese material hicimos encuentros en cada comisión con mini-clases más consultas y explicaciones en vivo. En 2021 incorporamos un encuentro general optativo sobre la teórica, para después de haber visto el video de la teórica poder estar con un profe para hablar de los contenidos. Todo esto funcionó bien. “Algo 1” es una materia muy práctica, se basa mucho en las consultas como mecanismo didáctico: si hago un ejercicio y no me sale, lo voy a consultar y cuando me lo explica el docente ahí entiendo mejor, no solamente el ejercicio sino el tema en sí mismo. Para el tipo de ejercicios que manejamos en la materia, la interacción entre los estudiantes y los docentes es muy importante. La premisa fue que los docentes conocieran bien a sus alumnos y pudieran atender sus consultas todo el tiempo que fuera necesario. Eso se manejó por Discord y, dentro de todo, suplantó bastante bien la interacción cara a cara en la clase.
Aunque este mecanismo virtual funcionó bastante bien, la verdad que no es lo ideal. Ahora que volvimos a la presencialidad es muchísimo mejor. Creo que el DC está aprovechando la experiencia ganada durante estos dos años de cuarentena y es posible que de a poco se vaya consolidando un esquema híbrido que permita explotar lo mejor de cada modalidad. Por ejemplo, tener el material pregrabado puede ser muy útil para que los estudiantes puedan verlo las veces que necesiten, sobre todo si no entendieron algún contenido. Definitivamente van a ser años de explorar las nuevas posibilidades que tenemos, quizás pensando en un esquema híbrido donde aprovechemos estos recursos para complementar la clase presencial. No creo que a futuro todas las materias vuelvan a ser 100% presenciales, como lo eran hasta 2019.