¿Qué es una hackaton?

Una hackathon o hackatón, es un término usado en las comunidades hacker para referirse a un encuentro de programadores cuyo objetivo es el desarrollo colaborativo de software. Estos eventos pueden durar entre dos días y una semana.

Desde hace un tiempo me lleva picando la curiosidad de participar en una hackathon. Lo de trabajar en el desarrollo de una idea en tiempo récord es intenso: es una inyección de inputs muy fuerte conociendo personas, equipos, proyectos, propuestas, tecnologías (con la cantidad de opciones que hay es muy probable que el equipo se use algo nuevo que no conocías), herramientas, colaboración... En un lapso de tiempo muy corto. En este caso, 48 horas.

Tiene cierto parecido a lo que ya he vivido en procesos de selección como el AllStartup de Demium Startups. Solo que esta vez es online, con menos charloteo y más trabajo técnico.

Me uno a la causa

El mundo está literalmente parado y encasillado en el monotema del virus. Los buenamente llamados héroes son aquellos que lo combaten en primera línea de fuego. Y yo, que no puedo ser de ayuda en el terreno sanitario, ni en el cuerpo de seguridad, miro hacia adentro y veo cuáles son mis herramientas para contribuir, por poco que sea. Y la herramienta que mejor manejo, sin duda, es el teclado. Con él hay muchas cosas que aún puedo hacer.

Entré a Twitter y supe de casualidad que Europa estaba uniendo a los desarrolladores en cuanto leí este tweet:

Inauguración del evento

Que en Europa se organice un evento reuniendo a sus países a todos nos suena a concurso musical. Como no podía ser de otra manera, la agenda del evento contaba con streamings en directo con cierto semblante a Eurovisión, con su tono festivo y conexiones con webcam a personas de los diferentes países.

Facebook LIVE al más puro estilo Eurovisión. Espero que España en este contest tenga algo más que decir. A por los twelve points.

Formación de equipos

Chat masivo en Slack

De repente somos +20.000 personas con diferentes banderas en un mismo chat de Slack. Empiezan las propuestas. Me parece todo caótico. No entiendo de qué va ningún proyecto. Rebusco por todo el chat y tardo en descubrir que en Devpost.com, la web en la que nos hemos tenido que dar de alta, están todos los proyectos listados. Empiezan a llegarme mensajes por privado y emails, pidiendo colaboración.

Tengo como 15 chats privados abiertos simultáneos, sin contar los canales generales que echan fuego (pero no notifican). Alguno pregunta insistentemente si quiero colaborar en su equipo. Especial mención a quien me repite la pregunta tres veces e intenta llamarme por audio pasados pocos minutos de no responderle. Afú. Me gusta colaborar con personas entusiastas y que ponen interés, pero... Personas del mundo, y especialmente managers y recruiters: por favor no acoséis a los developers! Da mal rollo.

Hago caso a unos españoles. En realidad, un italiano que vive en Asturias y colabora con otro chico en Barcelona. Me cuentan que desarrollan una Artificial Intelligence de detección del Covid-19 en pacientes a través del escaneo de imágenes de rayos X. Al igual que lo hace este sistema: www.coronavirusxray.com. Creado también por dos españoles y del que se han hecho eco medios como Antena3. Pero me cuentan que su fiabilidad es dudosa... que en esa app toda imagen con la que pruebas siempre da positivo en Covid-19.

Parece aún menos útil que la app "Not Hotdog" de Jian Yang, en la serie Silicon Valley. Al menos esta sí que distinguía cuándo era un hotdog y cuándo no.

Me cuenta que están preparando una solución mejor, pero también que lo tienen todo aún muy verde. Tampoco han redactado en la inscripción, ni parecen tener muy claro de lo que va el concurso. Pero me lo admite y yo agradezco la transparencia. En ese mismo momento diferentes proyectos de diferentes países me están contactando por chat. No acabo de ver claro qué tengo que hacer ni con quién ir. No sé muy bien qué hago aquí ni por qué me he prestado a esto.

Y entra al campo Bente Acking, desde Suecia, CEO y fundadora de Loopdigital, para contarme su proyecto y proponerme participar. Con muy pocas palabras me había convencido. Parecía saber lo que hacía y lo que decía. Supongo que transmitir eso es cuestión de suerte en medio de tanta propuesta, y que dependerá del momento y de la emoción del que lo lee. Y si no es así, entonces es un don. De mayor quiero ser así de persuasivo. Este proyecto me entró por los ojos.

El proyecto: The digital volunteer

La premisa es sencilla: Facilitar la conexión entre personas que necesitan ayuda y la solicitan con personas que pueden ayudar y se ofrecen para conseguirles comida, medicinas, transporte, etc. Algo que puede ser de mucho valor para personas con riesgo al salir de casa, especialmente nuestros mayores.

Equipo

El proyecto ya tenía cierto rodaje antes de este concurso. Los diseños de la UI ya estaban hechos y varios conceptos estaban ya definidos. Había también algo de desarrollo hecho en la parte móvil.

Somos unos desarrolladores en una sala. ¿Y ahora qué? ¿En qué punto está el proyecto? ¿Qué tenemos que construir? ¿Qué tenemos que tener listo para este día y medio que nos queda? ¿Cuánto de funcional tiene que ser? ¿Cuánta parte necesita ser hardcoded? (por ejemplo, que puedas realizar una búsqueda pero que la lista de resultados sea siempre la misma, en vez de programar toda la lógica de un buscador).

Un especialista AI salvaje aparece en la sala. Hacemos una llamada de audio grupal. Está igual de perdido en cuanto a la profundidad que vamos a darle en solo un fin de semana. Casi sin darnos instrucciones, nos ponemos cada uno manos a la obra.

Calidad vs Cantidad

Como front-end me baso en pasar a web los diseños que Julia ha creado con Figma. Pero la cantidad de pantallas "pintadas" no se termina. Que si el registro y login del voluntario, login y registro del que solicita ayuda, login y registro de empresa que ayuda, login y registro de gobiernos... que si mapas, formularios, fichas de cada uno, GPS, autenticación... Es una app al completo. Y cualquiera que esté familiarizado con el campo del desarrollo sabe que eso es pan para unos cuantos meses (y que siempre se acaba alargando más del tiempo estimado). No es cosa de un día y medio.

Así que mi decisión pasa por escoger:

  • A) Desarrollo código chapucero y rápido que permita hacerse una idea del aspecto que tendrá la app (una demo), llegando a tener todas las pantallas o la mayoría. El problema es que poco iba a parecerse al resultado final, y ese código hecho con tan poco cariño habría que tirarlo a la basura y empezar de nuevo en el momento de construir la app. De esa manera no tengo claro si estaría contribuyendo o no.
  • B) Hacer un código de calidad, aunque sea para hacer entre el 10-30% del total de la app. Así, después de la hackathon, se le puede dar continuidad y una salida real al mercado, y habré aportado los cimientos, aunque sea. Pero estará tan incompleto que no se podrá utilizar, por lo que no servirá para la entrega, claro. Sin embargo, si tendríamos una landing page lista y algo más. El resto de la app se puede ver en la demo prototipada desde el diseño de Figma. Que para mostrar se entiende bien y es la solución más ágil. Elijo esta opción.

Stack & Tools

Diseño: Figma
Front-end: React, SCSS, React Bootstrap.
Back-end: Node.JS, MySQL.

Participando en el desarrollo frontend de The Digital Volunteer de manera intensiva durante el fin de semana.

De repente veo que la autora empieza a hablar de Speech to text, de inteligencia artificial, de drones, de arquitectura cloud en IBM... y me empiezo a preguntar si realmente esto que hacemos tiene cabeza y pies. Si está inteligentemente haciendo un backlog enorme sabiendo hacia dónde volcar el proyecto en el largo plazo, o si es solamente un "póngame un poco de cada. Y lo quiero para ayer".

- ¿Cuál va a ser la categoría de tu proyecto; inteligencia artificial, big data, drones o geolocalización por GPS? ¿Será web o app móvil?
- Sí.

Sin embargo veo ir llegando al chat de nuestro equipo a varios miembros que ha ido captando. Algunos con talento para back-end, otros para AI, otros del equipo de IBM. Hablo con Ivan en privado, el chico que está llevando el back-end, y lo hacemos en español, que él es de Madrid. Él está igual de extrañado con tanta feature. Respiro aliviado y sigo con mi pequeño reto particular en medio de todo este caos y ya veré qué pasa en el momento de entrega.

Entrega final

Se ha anunciado el cierre del concurso. Hemos cumplido nuestra misión presentando un prototipo interactivo de diseño UX/UI y teniendo bajo el brazo un % de la app avanzado en cuanto a front-end y back-end.

Se han entregado un total de 2.140 proyectos. ¿Que cómo van a evaluar todo eso para escoger propuestas ganadoras? Ni idea. Hay propuestas de todo tipo. Algunas me gustan bastante, como un proyecto de drones preparados para desinfectar o apps que fomentan la ayuda al comercio local.

Lo que me llevo

En cuanto a aprendizaje, me ha servido de excusa para seguir practicando con React y conocer cómo Ivan ha implementado NodeJS. Él es Back-end experto. También Julia ha creado unos diseños con muy buen aspecto con Figma. Ha sido bastante fácil exportarlos y trabajar con ellos. Me está gustando más que Sketch para diseñar webs. Llevo tiempo queriendo hacer ese cambio y ahora me veo más motivado a hacerlo.

Me ha gustado parar el reloj de mis proyectos personales y mis planes durante un finde entero. Primero por saber que lo hacía por arrimar el hombro (he tenido que repetirme esto para sobrellevar los madrugones 😛), por poner por delante el bien común antes que el mío, y segundo porque me ha hecho ver lo valioso de dos días de curro intenso, la cantidad de cosas que se pueden hacer, y lo fácil que es hacerlo como grupo cuando hay actitud e intención.

De las hackathon también salen puentes y he visto que son un sitio muy interesante para darte a conocer como desarrollador. Este es además un proyecto que quiere terminarse, no solo concursar, y ver la luz en un futuro cercano. También rondaban por allí ojeadores e inversores queriendo financiar proyectos. Así que, quién sabe, quizá podremos continuar el desarrollo de esta solución, más allá de este fin de semana tan intenso y productivo.

Y con ello, ojalá, ayudar a las personas.

Ojalá.