Una de las partes esenciales de nuestro proceso de aprendizaje continuo es asistir de vez en cuando a conferencias sobre software. Las opciones son bastante escasas en esta parte del mundo, así que nos alegró mucho enterarnos de la existencia de CraftConf 2014 Budapest.
En realidad era un tweet sorprendente, retuiteado muchas veces, antes de que finalmente lo viéramos. Sin embargo, al abrir el enlace adjunto nos llevamos una gran sorpresa.
Mientras ojeábamos la lista de ponentes, una extraña sensación empezó a instalarse en nosotros. La mitad de los escritores famosos de la minibiblioteca que tenemos en el trabajo estarían allí: Gerard Meszaros, Dan North, Eric Evens, Nat Pryce y Michael Feathers, por mencionar sólo algunos.
Así que el equipo de desarrollo de Syneto decidió ir. Por desgracia, no pudimos asistir todos, pero al menos cuatro mosqueteros estuvieron allí.
A medida que se acercaba la fecha de la CraftConf aparecían más y más noticias. El panel era brillante y las charlas prometedoras. Unos días antes del evento nos anunciaron que se celebrarían meetups por toda la ciudad, es decir Budapest, y que todos estábamos invitados a participar de forma gratuita. Cada meetup estaba orientado a un tema tecnológico concreto y así fue como acabé en la charla de Bruce Eckel sobre "Reinventar la empresa".
Mientras disfrutaba de su charla, me di cuenta de lo impredecible que es el futuro. Empecé a leer el libro de Clayton Christensen "El dilema del innovador" hace un par de meses y redefinió mi visión de las empresas, su evolución y sus ciclos de vida. También me ofreció conocimientos suficientes para plantear a Bruce Eckel algunas preguntas empresariales realmente interesantes y charlar con él durante unos minutos después de la reunión. Así que, leas lo que leas, habrá un momento para hablar con los demás sobre tu experiencia, conocimientos y dilemas.
No hay impresión como la primera. La nuestra fue "¡Esto es enorme!". En cuanto llegamos al Balna, el lugar de la conferencia, nos dimos cuenta de que había muchos asistentes. Según las cifras oficiales de los organizadores, éramos más de 900. Nunca en mi vida había visto tantos programadores en un mismo lugar. El ambiente por la mañana era bastante somnoliento, pero los 900 nos alimentamos con el desayuno y volvimos a la tierra con un delicioso y fuerte café espresso.
Pero el café nunca es suficiente para despertar a 900 desarrolladores de software. Necesitábamos una charla inspiradora, en un entorno inspirador. Hubo unos minutos de discurso de bienvenida en la sala principal, seguidos de la primera nota clave de la conferencia, presentada por Bodil Stokke: "Programación, sólo que mejor". Y también tomó muy poco café para la mañana. El discurso comenzó de forma somnolienta, con una voz aburrida y ronca. Afortunadamente, a medida que avanzaban las diapositivas, empezó a despertarse y cuando llegamos a esta diapositiva, nos despertamos instantáneamente. Esto me alegró el día.
La imagen también ilustra el enorme tamaño de la sala y de las pantallas. La del centro tenía unos 10 metros de diagonal y la imagen era proyectada por un proyector de dimensiones impresionantes. Las dos pantallas "más pequeñas" también eran bastante grandes, y me resultó imposible incluir en la imagen las otras dos pantallas en las que se desplazaba continuamente el feed en directo de twitter para la #CraftConf. La tecnología era impresionante. Y no sólo las imágenes de alta definición, sino también las instalaciones WiFi. Aunque a veces su servidor DNS no asignaba una dirección IP, o los contratos expiraban demasiado rápido y era necesario volver a conectarse, se las arreglaron para dar cabida a más de 900 programadores, lo que probablemente significa más de 2.000 dispositivos. La cobertura WiFi era buena en toda la superficie del recinto, independientemente de tu distancia a las salas de presentación o del nivel en el que te encontraras. Y cuando tenías conexión funcionaba bastante bien. Una llamada de Skype o una llamada VoIP a un teléfono fijo funcionaron razonablemente bien. Incluso la actualización de algunas aplicaciones en mi Android funcionó sin problemas.
"La maestría es la capacidad en un contexto" dijo Dan North en su charla (imagen superior izquierda). Fue una de las presentaciones más inspiradoras e interesantes. P = p - i. Me gustó mucho lo apasionado que estaba con todo el concepto y lo bien que supo transmitirnos ese sentimiento. Puede que Dan North tuviera el discurso más inspirador del día, pero el tipo de Facebook (imagen superior derecha) tenía el título más intrigante: "Lecciones del código PHP de Facebook". Esperaba descubrir un montón de trucos geniales de PHP, sobre cómo superaron algunas de las limitaciones del lenguaje, cómo lidiaron con la concurrencia, la alta carga y las arquitecturas difíciles. En lugar de eso, nos presentaron el lenguaje de programación Hack y la máquina virtual HipHop. Al final nos quedamos con la triste sensación de que Facebook acaba de reinventar PHP y escribió su propio lenguaje de programación en lugar de hacer frente a sus problemas. Una charla muy decepcionante.
Al menos Eric Evens subió un poco el listón con su "Reconocer la PAC de raíz: en el modelo de dominio" (imagen inferior izquierda). Aunque personalmente disfruté de la charla, la mayoría del público se perdió a los pocos minutos. Fue una charla bastante buena, pero hay que tener algunos conocimientos de DDD para entenderla. La última charla del primer día que considero que merece ser mencionada es Testing the Hard Stuff and Staying Sane de John Hughes. No me gustan ni aprecio especialmente las charlas sobre herramientas o frameworks, pero su framework de testing parece muy interesante. La premisa es generar escenarios de pruebas algo aleatorios que puedan ejercitar una amplia variedad de caminos a través de tu aplicación. Un número suficientemente grande de pruebas de este tipo acabará probando incluso los escenarios más improbables y, con el tiempo, descubrirá errores ocultos y difíciles de entender o reproducir. Aunque admiro la premisa de esta herramienta, soy escéptico sobre su utilidad. Pero bueno, QuickCheck es gratuito para que podamos probarlo y decidir por nosotros mismos.
Después de un primer día de conferencia tan interesante, ¿qué podía haber a primera hora de la mañana para despertar nuestro interés? "¡Malditas colas!"
... o lo que es lo mismo, una charla extra de Theo Schlossnagle sobre arquitecturas basadas en colas de mensajes, sobre qué problemas tenían y cómo los superaron. Fue una charla muy inspiradora y también bastante técnica. Perfecta para despertarse el segundo día.
Tras él estaba Gerard Meszaros. Sí, el autor de xUnit Test Patterns. Esto fue probablemente lo más destacado de toda la conferencia. Rara vez participa en conferencias, así que conocerle en persona fue una gran oportunidad para aprender más sobre pruebas.
Después de su charla y al final de la conferencia tuve la oportunidad de hablar un poco con él. Esta conversación dio lugar a una cena, con todos mis colegas, él y Eric Evens en un estupendo restaurante de Budapest. Gerard me pareció una persona muy abierta y humilde, siempre dispuesto a ayudar e interactuar con las personas interesadas en las pruebas y el desarrollo de software en general. Aprovechando al máximo esta oportunidad, Syneto invitó a Gerard Meszaros a Timisoara para que nos ayudara durante un par de días con nuestro proyecto y diera una charla para la comunidad local. Escribiremos sobre esto con más detalle en una próxima entrada del blog.
El resto del día hubo muchas charlas diversas, entre las que destacaron dos. En realidad esperaba "Construir sobre cimientos SÓLIDOS" de Nat Pryce y Steve Freeman. Tenía un vídeo de la charla en favoritos desde hacía meses, pero nunca llegué a verlo, así que me hizo mucha ilusión verlo en directo. Por desgracia, la charla en sí fue bastante decepcionante. Al menos para mí. Me esperaba algo totalmente distinto por el título. Aun así, fue agradable ver en persona a las leyendas que escribieron Goos.
Por otro lado, la charla sobre la entrega continua de Simon Hildrew de The Guardian, titulada "Entrega continua sin interrupciones" fue mucho más de lo que esperaba. Presentó herramientas de entrega continua y una demostración en directo que desplegó una actualización en el sitio web de The Guardian en tiempo real. Aunque este tipo de sistemas no son especialmente utilizables en muchos tipos de aplicaciones, para aplicaciones en línea entregadas a través de la web, es una gran infraestructura.
Aunque el artículo anterior representa mis impresiones personales, a continuación figuran algunas citas de mis colegas sobre la CraftConf. ¡Buen trabajo! para los organizadores, fue un placer asistir.
Una de las grandes ventajas de asistir a una conferencia de este tipo es que tienes la oportunidad de conocer en persona a algunos de tus mentores, personas que de alguna manera dieron forma a tu carrera. Así tienes la oportunidad de validar tus ideas, compartir tus pensamientos y experiencias. La CraftConf tenía todos los ingredientes de una experiencia inolvidable.
Fue una gran terapia de grupo en la CraftConf. Ah, y los ponis y unicornios. También aprendí a hacer (mi) vida difícil y la vida del usuario más fácil (UX).
Gente estupenda y un montón de charlas sobre las que tendré que reflexionar en el futuro. Una terapia de programadores a la que todo programador debería asistir.