Curso de Shiny: Aprende la forma más rápida de publicar datos y cálculos en web

Las tardes del viernes 27 y sábado 28 de abril en horario de 15 a 20 horas, dentro del marco del programa de formación de la OSL, se impartirá el curso “Shiny: crear apps web interactivas en lenguaje R. En él conocerás Shiny, una herramienta con muchas utilidades desde cómo crear una aplicación web interactiva que muestre tablas, gráficas y mapas únicamente usando lenguaje R, crear código claro y escalable, saber rastrear errores, etc. Será impartido por David Daniel Estévez Durey, desarrollador de aplicaciones web en tareas orientadas a los datos, nos cuenta a continuación como llegó a conocer Shiny y su experiencia con el mismo.


En 2013, un famoso estudio de IBM concluyó que:

En solo los dos últimos años se ha generado más del 90% de la cantidad de datos que existe en todo el mundo

Son incontables los artículos, conferencias y charlas en las que ha salido a relucir ese cálculo, año tras año hasta hoy, vendiéndolo prácticamente siempre como un descubrimiento reciente. Es un buen titular porque efectivamente impacta a muchos, si bien indigna a algún cuñado que conoce que el estudio original se publicó hace 5 años. La realidad es que no solo sí que se ha cumplido cada año desde entonces, sino que se estima que llevamos unos 25 años con un crecimiento exponencial casi regular. Sigue vigente y parece que de momento lo va a seguir estando.

Los datos que generan ahora las empresas, sean del tamaño que sean (y esto es lo interesante), ocupan órdenes de magnitud impensables hace muy poco. Se producen en un flujo continuo, proceden de múltiples fuentes y formatos y, sobre todo, las bases de datos relacionales y procesos tradicionales se quedan cortos a la hora de explotar su potencial. Las redes sociales, la telefonía móvil inteligente y el abaratamiento de las tecnologías de sensores de todo tipo han sido clave en este auge, y es relativamente sencillo encontrar startups cuyo mayor gasto es en servicios de almacenamiento, tratamiento y transferencia de toda esa información. Las nóminas, el alquiler de la oficina y las bandejas de comida vegana en la entrada ya son una preocupación menor para adecuar el presupuesto.

Los analistas de datos, científicos de la información, o como se les quiera llamar (hay quienes ven connotaciones diferentes entre ambos, pero no voy a juzgar a nadie…), se nos ha repetido hasta la saciedad que son un perfil cada vez más demandado. Sin embargo, conozco a muy buenos profesionales de ese tipo que han tenido no pocos problemas a la hora de cambiar de empleo ¿Dónde está la trampa entonces? No hay trampa, siempre y cuando las empresas estén haciendo bien las cosas. Exacto, ese es quizá el único problema: que muchas no lo están haciendo bien, y es aterrador descubrir cuántas aún están empezando a darse cuenta de que lo necesitan, y lo necesitan para ayer. Ya sean matemáticos con buena base de informática, o informáticos con buena base matemática, la figura híbrida capaz de por ejemplo realizar al mismo tiempo predicciones estadísticas de negocio y programar la infraestructura que las implementa tiene las puertas abiertas en cualquier equipo que conozca y valore lo que son capaces de construir.

Hace unos tres años me encargaron coordinar a un grupo de matemáticos y comerciales para lo que empezó siendo un pequeño proyecto. Disponíamos de una cantidad ingente de datos, matemáticos preparados para extraer predicciones de negocio que valen su… ¿peso? en oro, clientes ansiosos de tomar conclusiones basadas en datos, pero comerciales incapaces de hacer su trabajo y convencer a esos clientes de lo que los matemáticos podían demostrar. O al menos no de forma versátil y rápida. Hasta ese momento, los clientes pedían informes, que los comerciales transmitían a los matemáticos, se realizaban y se entregaban. Había baches en todo el proceso. Los clientes ni siquiera eran conscientes de qué se podía llegar a extraer de los datos y los comerciales hacían de nexo en cuestiones puramente estadísticas, añadiendo un factor extra de problemas de comunicación. Los matemáticos eran sueltos en SQL, BigData y R, pero no tenían una forma cómoda de compartir sus análisis, salvo con informes tradicionales en PDF y hojas de cálculo compartidas con algunos datos preprocesados que permitían jugar con unas pocas variables. Se perdió muchísimo tiempo y nadie estaba satisfecho con los avances, y en breve se iba a requerir la intervención de otros personajes en el proceso, situados en 3 continentes y con husos horarios muy diferentes. Necesitaban una solución interactiva, con actualizaciones en tiempo real y otra metodología de trabajo.

Nos sentamos a hablar en esas dos horas en que coincidían nuestros 3 calendarios laborales diferentes (unos en sus primeras horas de la mañana, otros en su sobremesa y otros al final de su día), y acordamos varias bases intocables:

  1. No queríamos reinventar la rueda e intentar desarrollar nosotros mismos una herramienta de Business Intelligence. Habría que programar algo lo más rápido y sencillo posible, sin pretensiones y poniendo en valor la mina del negocio: los datos y poco más.
  2. No queríamos comprar directamente la licencia de una de esas herramientas comerciales, insensatamente caras y sin ni siquiera haber acordado qué pueden extraer los científicos de datos y qué le interesa consumir a los clientes. Habría que iterar utilizando algún framework de código abierto.
  3. Todos queríamos una forma rápida y versátil de modificar un gran prototipo e ir definiendo de forma ágil los requisitos. Habría que instaurar un proceso de innovación y programación extrema en ciclos realmente muy cortos.

Yo tenía más de 10 años de experiencia en el desarrollo de sitios web con Django, así que una primera, tremendamente equivocada y afortunadamente fugaz idea de ir por ahí se me pasó por la cabeza. Hubiera sido lento, nada versátil y claramente mucho más propenso a errores construir el sitio web con un framework enfocado a proyectos consolidados, ya fuera en Python, PHP, Java, Ruby o similar… Si ya teníamos a un equipo de matemáticos desarrollando cómodamente funciones en R, pues lo natural y creemos que más acertado fue prototipar un sitio web en ese lenguaje. El esfuerzo para mí, entonces, se hizo mucho más interesante: definir la arquitectura del proyecto, asegurar la modularidad y escalabilidad, promover las buenas prácticas y el clean code, y sobre todo el TDD y el testing automático en un sistema de integración continua. A las dos semanas de empezar ya teníamos un agilismo idílico, analizando requisitos, desarrollando, testeando y desplegando pequeños cambios prácticamente a diario. Es irónicamente muy difícil de conseguir, pero fue posible gracias a mucho entusiasmo, un equipo maravilloso de personas y unos jefes e inversores comprometidos con esa mecánica, que casi siempre es lo más difícil y el punto de inflexión entre el éxito o fracaso del modelo.

Hoy en día nuestros prototipos en Shiny los consumen algunas de las empresas de datos más grandes del planeta, cotizan en bolsa y utilizan lo que ven en esas webs para tomar decisiones que suponen millones en ganancias o en pérdidas. En los puntos en los que acabamos la fase de análisis e innovación, en la que el cliente ha podido ver, jugar, manipular, trastear y perrear de forma continua con los datos y sabe perfectamente lo que quiere y nosotros cómo dárselo, ya pasamos nuestro prototipo Shiny a otros equipos de desarrollo que traducen los algoritmos finales y pulidos en R a un framework con mejores tiempos de respuesta, mejor capacidad multiusuario y más orientado a webs de producción. En algunos casos, también a una herramienta de BI.

Sin Shiny, todo hubiera sido mucho, mucho, mucho más complicado. Es una herramienta maravillosa para presentar mapas, tablas y gráficas totalmente interactivas con un puñado de líneas de código. Genera automáticamente los formularios de interacción con el usuario, el diseño adaptativo (internamente utiliza Bootstrap) y gran cantidad de los widget típicos como botones, pestañas, etc. Lo mejor es que solo requiere conocimientos muy básicos en R, los matemáticos de mi equipo no saben prácticamente nada de HTML, Css ni JS, y llevan desarrollando sitios web interactivos totalmente versátiles y a medida durante años.

Si quieres una buena introducción y dominio a cierto nivel de Shiny, anímate y apúntante en el curso que voy a dar a finales de mes, dentro del marco del programa de formación de la OSL. Para más información y matrícula:

Dejar un comentario