Y otro año más, me lo he pasado genial en el Codemotion. No creo que necesite presentación. Es el evento técnico más grande en España: dos días completos, más de 2000 asistentes, 150 charlas y talleres. Una auténtica monstruosidad. Y llena de monstruos de la industria.
Mis impresiones
La organización tomó nota de una de las quejas más escuchadas el año pasado: la masificación de alguna sala. Este año se pidió a los asistentes que votaran a qué charlas tenían intención de acudir, y repartieron las salas en consecuencia. Por supuesto, es imposible hacerlo perfecto, aún hubo algún caso en el que la sala se quedó pequeña. Pero nada comparable a otros años. Impresionante organización.
La comida me pareció exactamente igual al año anterior. En mi opinión se queda corta, pero hay una ligera variedad de sabores y también vi que había sandwiches especiales para celíacos. Muy buen detalle. Es una lata tener que desplazarse a un pabellón exterior, pero es comprensible por la cantidad de asistentes. Es una delicia ver que hay gente repartida por todo el recinto a la hora de la comida y el café.
Hay gente que se queja de la mala gestión por parte de la organización para favorecer que haya más presencia femenina. No estoy seguro, pero mi impresión es que este año ha habido más mujeres que en años anteriores. No tengo datos, simplemente me guio por mis sensaciones.
Así como me pareció que había más mujeres, también tuve la impresión de que hubo menos ponentes extranjeros. Quizá fui yo que no encontré una charla interesante ofrecida por alguno de ellos. Este tema me recuerda mucho a un post reciente de Carlos Blé hablando sobre el idioma en los eventos técnicos.
Charlas a las que asistí
Los androides no sueñan con ovejas eléctricas, sueñan con conciliar de Susana Morcuende, Yamila Moreno y Jorge Arévalo
Charla sobre conciliación. Como bien explicó Susana, todavía seguimos asociando el término conciliación solamente con la familia (cuidar de hijos, abuelos, enfermos,…). Los ingleses tienen un término mejor para esto: work-life balance. Es decir, un término medio entre la vida en general (ocio, familia, amigos,…) y el trabajo.
Susana habló de buscar la conciliación desde el minuto cero, desde el proceso de selección. Y presentó la iniciativa Yo soy tu madre, donde empresas muy a favor de la conciliación tienen una especial cabida.
Después, Yamila y Jorge expusieron sus casos particulares. Yamila en Kaleidos, y Jorge en Pronoide. Ambos contaron multitud de acciones llevadas a cabo en sus empresas que les permiten conciliar.
Si otras empresas lo están haciendo, es porque la conciliación es posible, plantéalo en tu empresa
Teletrabajo en el mundo real de Pablo Alba
Pablo nos habló sobre teletrabajo y sus diferencias con el trabajo en remoto. Contó que existen varios retos a superar: comunicación, coordinación, felicidad, productividad y sentimiento de equipo.
Luego pasó a describir multitud de herramientas para hacer frente a esos retos. Herramientas de videoconferencia, de conferencia de audio, chats, gestión del código fuente, hardware,…
Un comentario que me sorprendió mucho fue el de tener el audio conectado siempre, para que quien esté solo en casa pueda escuchar el ruido de la oficina. No es que vaya a ser partícipe de todas las conversaciones, pero un poco de compañía sí le hará.
8 formas de mejorar tu vida gracias a los logs de Joaquín Diez y Fran Rodríguez
Joaquín nos habló de cómo deberían ser los logs mientras que Fran nos habló más del lado de operaciones.
Los logs los deberíamos escribir para que los entendieran las máquinas, no los humanos. Deberíamos definir claramente el formato de los mismos, y las estructuras de datos que queremos loguear. También, que los logs deben estar disponibles para todo el mundo. Todos deberían ser capaces de verlos, leerlos, buscar en ellos,… Para ello es posible que tengamos que desarrollar aplicaciones o usar algunas de terceros.
Los logs nos sirven para monitorizar, monitorizar el estado y la actividad de nuestros sistemas. Estos logs deben estar centralizados. Cada vez más creamos y destruimos máquinas con más facilidad, y los logs deben sobrevivir a las máquinas.
Intraemprendimiento para frikis de Roberto Canales
Aquí, Roberto nos contó en qué se ha equivocado Autentia en sus múltiples intentos de pasar de ser una empresa de servicios a ser una empresa de producto. No es que les vaya mal vendiendo servicios, pero lo que realmente quieren hacer es hacer productos. Una empresa de servicios no escala, lo que vendes es horas hombre, y Autentia no ha querido entrar en el juego del body shopping.
Así pues, buena parte de los beneficios que tenían los han ido invirtiendo en productos.
Primero, dedicando tiempos muertos de los empleados a desarrollar una aplicación para uso interno. Pero el producto lo tocaban demasiadas manos, sin un objetivo global concreto, y el producto se resiente.
En otras ocasiones, han invertido en otras empresas, para aprender de cómo lo hacen otros. También han dado dinero a otras personas para que hagan realidad sus ideas.
Si algo han aprendido es que te debes centrar en que tu producto lo use la gente pronto.
Aprender a distinguir el problema de la solución de Carlos Blé
Carlos comenzó fuerte:
La forma de ir más rápido no es correr más, es evitar más desperdicio
Cuando nos decantamos por una solución, estamos descartando otras. Probablemente más sencillas, más baratas, más apropiadas. O peores, porqué no.
Antes de ponernos a implementar la solución, hay que comprender las necesidades del cliente, hay que identificar correctamente el problema. Los clientes normalmente vienen con soluciones, con cómo quieren que se les soluciones el problema que tienen. Es ahí donde debemos pararnos y analizar el problema, analizar el qué. Entendiendo bien su problema, podemos mostrarles varias soluciones donde ellos podrán elegir la que mejor les convenga. Para conocer el problema, podemos ayudarnos de todas estas técnicas de análisis:
Para saber el valor de un producto, compáralo con una hoja de cálculo ~ Carlos Blé
Ésta fue una charla no técnica, de las filosóficas. Este tipo de charlas te hacen pensar. Te hacen pensar en tu situación, en cómo trabajas, en si realmente te gusta lo que haces y si estás haciendo lo correcto. Muy, muy relacionada con los conceptos de Lean: posponer decisiones, evitar desperdicio, conocer contexto del cliente,…
99 líneas que lo simplifican todo de Daniel Molina
Daniel estuvo contando las múltiples tecnologías que usan en su empresa. Un testimonio bastante bueno. Nos introdujo en las mismas poco a poco, comenzando por un modelo sencillo, y ampliándolo y complicándolo poco a poco.
Lo que deberías saber sobre testing para irte de cañas con @pedro_g_s y no empezar con resaca de Sergio Arroyo
Charla muy técnica. Tocó innumerables conceptos relacionados con los tests.
En cuanto a tests unitarios, hay dos conceptos básicos: inyección de dependencias y dobles de tests. También, además de las características F.I.R.S.T. de los mismos, añadió: Immutable (no deben de dejar rastros) y Trusted (los falsos positivos minan la confianza de los programadores en los tests).
Me gustó mucho la parte donde comentó qué es lo que hace que un código NO sea testeable:
Y para terminar: ¿quién vigila al vigilante? ¿quién prueba que los tests son
correctos? Nadie. Y precisamente por esa razón debemos mantener los tests lo
más sencillos posible. Nada de if
s, nada de bucles. Sencillos.
Clean code de Álvaro García
El título de la charla no da para muchas sorpresas. Álvaro habló sobre el libro de Robert C. Martin, Clean Code.
Durante toda la charla aparecieron multitud de conceptos. La charla fue un buen recordatorio del contenido del libro. Habló de Craftsmanship, de la Regla del Boy Scout, de la Teoría de las Ventans Rotas, de la importancia de nombrar correctamente las clases, métodos y variables, de la longitud de los métodos, de los comentarios (o la falta de ellos) en el código,…
Súper, súper interesante. Bueno, hubo un tema que me escamó un poco: se recomienda no utilizar códigos de error para informar de que ha habido un fallo en nuestro código, se recomienda usar excepciones. Últimamente me he inclinado más hacia no usar excepciones para eso, no usarlas para controlar el flujo de mis programas. Un tema bastante polémico éste de tratar las excepciones.
Time to grow up de Jorge Barroso
En mi opinión la mejor charla del Codemotion. Jorge habló de cómo ve él el mundo del desarrollo. Y tiene mucho que decir. Jorge es bastante conocido en el mundo del software y su opinión es bastante respetable.
Habló de que debemos aprender oratoria, los speakers del tipo de conferencias como el Codemotion tienen mucho poder, tienen mucha responsabilidad. Pero también la tenemos quienes estamos escuchando. Debemos hacerlo de forma crítica, y no creernos todo lo que nos cuentan los que están en el púlpito.
Debemos hacer las empresas más humanas, evitar que hagan el mal. Y no nos debemos vender por un futbolín, o por la posibilidad de pasar más horas en la oficina. Debemos conseguir que la empresa nos valore como personas.
Construimos software como en la edad media se construían catedrales:
Ponían mucha gente a hacer una cúpula. Se caía. Conclusión que sacaban: “pues así no era”
No podremos resolver los retos del futuro como lo hacemos ahora, lanzando más y más gente a los proyectos.
Jorge habló de que no está totalmente de acuerdo con el movimento Software Craftsmanship (no hay que ser dogmático, si no pragmático, hay que conocer las normas para saber cuándo hay que romperlas), tampoco lo está con el término Computer Science (no usamos el método científico, no somos ingenieros). Se identifica más con el mundo de la cocina, donde conocen la química, las bases, los ingredientes. Pero ser cocinero es más que eso. Es comunidad. Es comunicación con tus iguales.
Comentó la necesidad de tener un lenguaje común entre los desarrolladores. Nada de diferenciarnos entre back y front, entre web y escritorio o móvil. ¿Qué hacen tus compañeros? Pregunta. Y sobre todo, no te comportes como un idiota: escucha, mejora a tus compañeros, aprende, enseña, no impongas tus opiniones, pide feedback.
Cómo gestionar el estado de tu UI: El camino hacia el Virtual DOM y RxJS de Ricardo Borillo
Ricardo comentó cómo podemos mejorar la gestión del estado de la interfaz gráfica. En un principio, toda esa información estaba incrustada en la interfaz gráfica, estaba almacenada en el DOM (si hablamos de aplicaciones web). Pero el DOM es muy lento. Algunas librería aliviaban este acoplamiento, pero el Virtual DOM ha venido para desacoplar todavía más del DOM real.
Prosiguió la charla comentando cómo tecnologías como React, Redux y RxJS encajan perfectamente en la nueva visión acerca de cómo hay que gestionar el estado de nuestra aplicación del lado cliente. Hay sólo una fuente de verdad, por lo que hay un estado global. Y nos explicó cómo éste estado global es gestionado, almacenado, modificado y notificado por contenedores, middlewares, dispatchers,… en la arquitectura planteada por React y compañía.
Sinceramente, están pegando fuerte estas tecnologías y el mundo funcional parece que está calando en el lado cliente. El de Ricardo es, como siempre, un testimonio de cómo se pueden hacer las cosas mucho mejor en el mundo web.
¿Con 40+ y programando? Sácale provecho a tu experiencia de Daniel López
Daniel nos cuenta su propia historia, ¿por qué sigue programando pasados los 40? Pues porque le gusta, se le da bien, y puede seguir aportando valor. Aporta valor por que soluciona problemas, no los crea, y porque no se queda simplemente con teclear. Debes aportar algo más, si no quieres ser reemplazable.
Entre los múltiples consejos: encuentra un nicho (o varios) muy específico, un tema donde no haya muchos expertos; no puedes escalar, así que no apuntes a cantidad, si no a calidad; entiende y hazte entender; adaptabilidad, búscate las habichelas; capacidad de análisis crítico.
El buen programador no nace, se va haciendo con el tiempo, con el trabajo duro y con el aprendizaje
Y como muestra de sabiduría, unos consejos o mantras:
- Fuerza: para cambiar lo que se pueda cambiar
- Paciencia: para aguantar lo que no se pueda
- Sabiduría: para saber distiguir entre ellas
Data! Data! Data! de David Bonilla
La idea principal de la charla rondó las bases de datos. David nos hizo ver que las bases de datos están en todas y cada una de nuestras aplicaciones. Unas son más avanzadas que otras, y existen multitud de tipos de ellas. Cada una de ellas con sus ventajas y sus inconvenientes, así que no debemos pensar que hay una base de datos que nos pueda resolver todos nuestros problemas.
Aún así, aunque todos lidiamos con ellas todos los días, son unas grandes desconocidas para nosotros. David nos animó a que aprendiéramos más sobre ellas, que nos interesáramos más en ellas. Al fin y al cabo, es una de las pocas tecnologías que están en prácticamente todas las aplicaciones.
Conclusión
En general, las charlas a las que asistí fueron de un gran nivel, y me sorprendió que en casi todas ellas comenzaran exponiendo el tema principal de la charla. Muy bien hecho. Es como si la organización se lo hubiera recomendado.
Otro detalle, muchos de los ponentes publicaron las presentaciones antes o durante la charla, lo que permitía a la gente seguir las trasparencias en el móvil o portátil con conexión a internet, y de esta forma no dejarse los ojos intentando ver la imagen del proyector. Una idea brillante.
En definitiva, es un evento que siempre me ha merecido la pena asistir. Es barato, hay multitud de charlas donde elegir (quizá demasiadas), acude lo mejor de la industria. Sólo podría pedir que se celebrara más de una vez al año y más cerca de mi casa. Por pedir, que no quede.
Aún así, los dos días se me quedaron cortos para charlar con la gente. No puedo con todo. O atiendo a charlas interesantes, o me quedo por los pasillos. Pero no siempre que me quedo por los pasillos coincido con alguien conocido. Asi que es un tema que me lleva de cabeza.
Muchísimas gracias a los organizadores: Nacho, Abraham y Laura. Y gracias también a los patrocinadores y voluntarios. Todos ellos hacen que Codemotion sea posible.
Recursos
Aparte de todas las presentaciones a las que asistí, he escaneado las notas que tomé.