← Volver

2006-2016 Una retrospectiva

Una mirada a diez años de cambios profesionales: proyectos exigentes, tecnologías, emprendimiento, liderazgo, escritura y aprendizajes personales en el mundo del software.

Reflexiones
Haruki Murakami - El fin del mundo y un despiadado país de las maravillas

Puff…, casi siempre al comenzar el año, el que más y el que menos hace una lista de buenos propósitos, de objetivos para los próximos doce meses. En cierta medida, yo también lo hago, pero sobre todo me gusta mirar un poco atrás y ser aún más consciente de dónde vengo (por eso de saber mejor hacia dónde voy).

Y desde luego, puedo decir que ni he tenido un trabajo rutinario desde que terminé la carrera ni me he mantenido en el mismo tipo de rol. ¿Podría haber sido de otro modo? Pues ni idea; seguramente sí, ya que yo mismo he sido responsable de mis acciones y decisiones. ¿Quién si no?

Echo la vista atrás y ojalá los próximos diez años sean igual de intensos y productivos.

Me gusta Haruki Murakami y me ha acompañado desde que cayó en mis manos casi por casualidad uno de sus libros allá por los noventa.

A modo de resumen…

Terminé la titulación de Ingeniería Superior en Informática por el 2001, después de presentar un proyecto fin de carrera que me llevó casi un año. Se trataba de una aplicación hecha con Visual C++ y librerías MFC/ATL para la creación de interfaces de usuario de un producto SCADA que realizábamos por aquella época en la compañía para la que trabajaba. Entonces pertenecía a lo que se denominaba el Grupo de Desarrollo de Software (nada original, por otro lado).

Visual C++

Fruto de este proyecto (que creo que sigue en producción en algún centro de operación ferroviario) fue este artículo, que ya en su día publiqué en CodeProject, titulado Improving ATL-ActiveX Serialization, junto con muchísimo profiling y escritura de código optimizado. Y ahora que lo pienso, ¡ese artículo fue lo primero que se me ocurrió publicar! Por cierto, veo que tengo que actualizar la información con la que me registré en CodeProject, un portal que sigue siendo hoy día una referencia para mí.

Lo más interesante de aquello fue que en esa aplicación integré VBA (Visual Basic for Applications), toda una novedad en aquel momento y también un gran reto técnico.

Acostumbrados a C++, todo el nuevo entorno de .NET Framework junto con C# generó una gran expectativa que casi todos abrazamos desde el primer momento en el departamento. De hecho, aún conservo un libro que me regalaron en un evento sobre esa nueva tecnología y que creo que fue de lo primero que se publicó entonces.

Siempre he estado muy ligado a las tecnologías de Microsoft, y también siempre me han parecido infantiles y poco profesionales las comparaciones y dilemas un poco tontos, tan propios de nuestro sector, entre esto o aquello. Toda tecnología tiene sus luces y sus sombras. Punto.

Sin embargo, desde hace unos años trabajo muy de cerca con Azure, la plataforma de cloud computing de Microsoft y de enorme crecimiento, y sigo con detalle todos los movimientos de esa compañía hacia una visión más abierta del software. No en vano, .NET Core y la liberación de algunos productos tradicionales de Microsoft para su funcionamiento en Linux (como SQL Server, nada más y nada menos) son una muestra más de esa mayor amplitud de miras. Y no menciono Azure por capricho: tengo clientes que funcionan desde esa plataforma con un éxito rotundo.

En 2006 ya estaba trabajando en Suecia en un proyecto de muchos millones de euros; mejor dicho, el proyecto tenía un montante de cien millones de euros, pero la parte de software, aunque residual, era crítica: sin ese pilar, todo el proyecto se caía y las penalizaciones económicas por parte del cliente podían poner en riesgo la viabilidad misma del proyecto. Había mucha presión; teníamos que trabajar con prisas, cumpliendo hitos literalmente con la lengua fuera, además de toda la presión que supone trasladarte con tu familia a un país muy diferente de España.

Pero aprendí, y muchísimo; para mí fue una de las etapas más fértiles de ese periodo, a pesar de las crisis que viví junto con mis compañeros. Recuerdo alguna noche entera realizando una actualización de uno de los sistemas en los que se basaba el proyecto.

No había metodología, sólo tirar hacia delante del modo que fuese. Curiosamente, todos mis compañeros que entonces participábamos en ese proyecto para una compañía eléctrica sueca (Vattenfall) ya no están en la misma empresa, incluido yo. Todos fuimos saliendo poco a poco, encontrando (o buscando) mejores oportunidades laborales y profesionales.

De aquel proyecto me quedó muy clara la extraordinaria importancia de mantener una metodología y un orden mínimos en los desarrollos (abajo no había orden porque en el nivel ejecutivo ni lo había ni se fomentaba). Y también la enorme importancia de un diseño pulcro y eficiente de la base de datos, ya que la aplicación tenía una gran orientación a los datos (data-centric). La base de datos crecía a razón de millones de registros diarios, de modo que continuamente nos encontrábamos con nuevos cuellos de botella, tanto a nivel de software como de hardware. Todo un reto que finalmente pudimos estabilizar (nos llevó más de un año).

Después volví a España y comencé a interesarme por todo lo ágil y el clean code. Fue una época de lecturas frenéticas de toda la literatura relacionada que encontraba interesante (los libros, cómo no, de Martin Fowler, Robert C. Martin, etc.) y poco a poco fui confirmando ciertas intuiciones acerca de los pilares con los que construir buen software.

Como consecuencia natural, muy pronto comencé a darme cuenta de que no todo el mundo entendía igual el concepto de buen software, y de que apenas se prestaba atención a asuntos tan importantes como la organización de un equipo de trabajo, las dinámicas de grupo, la ausencia del concepto de jefe o gestor como alguien que facilita el trabajo de los demás, etc., cuyo resultado termina generando un producto bueno o malísimo.

Continuaba escribiendo software de un modo u otro, a veces en buenas condiciones y casi siempre en muy malas condiciones (exceso de reuniones impuestas, tareas no planificadas para hoy, etc.).

Entre 2008 y 2009 hice mi primera tentativa emprendedora. Fue un fracaso total, pero me permitió meterme de lleno en Drupal. La idea era buena, pero, como se suele decir, la ejecución lo es todo. Por aquella época comencé a leer mucho sobre emprendimiento e intraemprendimiento. Siempre digo que dejé esa compañía, en la que mantenía un contrato fijo y un buen sueldo, porque ya llevaba años preparándome mentalmente para probar otro tipo de cosas. Y es que nos centramos demasiado en la acción, pero se nos olvida una verdad trascendental: no es el hacer, sino el ser (lo que somos), lo que provoca cambios verdaderos. Bueno, que me enrollo con temas de desarrollo personal…

Entre pequeños proyectos de I+D y el mantenimiento del sistema que montamos en Suecia, tenía tiempo para comenzar a interesarme por otras tecnologías fuera del ecosistema de Microsoft. Comencé a hacer mis primeros proyectos web y a leer todo lo que podía sobre Drupal. Y, por supuesto, abracé Node.js desde el primer momento. Entre otras cosas.

Tanto fue mi entusiasmo por Drupal que terminé participando como ponente en dos sesiones (ésta y esta otra) en la Drupalcamp de 2011 de mi ciudad. Descubrí ese ecosistema y una comunidad muy implicada y estimulante.

Drupal

Comencé a hacerme cargo de la gestión de equipos de trabajo sobre 2009. No tenía ni idea de qué iba aquello, así que leí muchísimo al respecto e intenté hacerlo lo mejor posible.

La empresa para la que trabajaba entonces (la ingeniería Telvent Energía, ahora propiedad de Schneider Electric) no se puede decir que fuese una de esas cárnicas, pero lógicamente la presión por sacar proyectos era alta. Como en todo, hay momentos buenos y malos, pero todo lo que quiero recordar de aquel periodo (trabajé en esa compañía desde 2000 hasta 2012) es bueno e incluso excepcional. Considero que no todo el mundo tiene la suerte de entrar en una empresa y tener las experiencias nacionales e internacionales que tuve en Telvent, asistiendo a eventos importantes, etc. Viajé varias veces a Estados Unidos (estuve una semana asistiendo al programa TAP de Microsoft en Seattle, toda una experiencia viendo, oyendo y hablando con auténticos gurús, de los de verdad), además de viajar a diferentes ciudades de Suecia, Holanda, Eslovenia, etc., y hasta pasar una semana en Beirut.

Pero el ciclo se fue acabando y comencé a interesarme por otras cosas y otras posibilidades laborales. Digamos que dejé de verme trabajando para la misma compañía en un futuro lejano.

Ya entonces se hablaba también, de forma muy incipiente pero cada vez más presente, de conceptos como IaaS, PaaS y SaaS, así como del mundo cloud que estaba por llegar y que hoy ya es una realidad y la base de mi actividad profesional actual en un ámbito laboral completamente diferente.

Con la popularización de CMS como WordPress y Drupal, entre otros, se oía mucho aquello de Kill the webmaster, y la tendencia en las compañías era dejar de depender precisamente de un webmaster dedicado a tiempo completo a esa actividad. Algunas voces agoreras también aplicaban el mismo concepto a los responsables de TI, en relación con el auge del mundo cloud. Me consta que la industria se mueve en esa dirección, sencillamente porque las cuentas salen para la mayoría de los proyectos, si no para todos. Por si no te has dado cuenta, nuestra profesión es muy volátil y, salvo que te dediques a mantener un software funcionando en un AS/400 antediluviano para algún banco, lo demás cambia continuamente.

SOLID Stack

Desde mi época en Telvent me ha acompañado mi rol de gestión. En 2012 monté para otra compañía de ámbito nacional (Telecontrol STM) una oficina y un grupo de desarrollo para dedicarnos de lleno a crear productos relacionados con el mercado eléctrico. Hace ya cinco años de aquello y, aunque hemos tenido momentos álgidos y otros no tan buenos, como en todo, comenzamos este año en una posición muy diferente, con mayor consolidación y a punto de empezar a trabajar bajo el paraguas de una marca distinta (SOLID Stack), cómo decirlo, un nombre más de software.

Por alguna razón, me han perseguido proyectos de software relativamente grandes que tienen que gestionar grandes volúmenes de información (en su día fue Titanium y, a día de hoy, la Plataforma de Telegestión IRIS), así como la participación en algún proyecto de I+D con Hadoop.

Con Node.js comencé a interesarme por otra forma de crear proyectos usando npm y diseñando microservicios. De ahí surgió este proyecto lúdico que de momento no he podido continuar: Green Kiwi Games, escrito totalmente con Node.js y Angular. También fue toda una experiencia registrar la marca. Programación orientada a eventos… fantástico.

Gestionar, estar más en contacto con la parte directiva y de desarrollo de negocio de la compañía, y tratar más de cerca a los clientes tiene el lado malo de apartarte más de lo técnico, pero te permite ver de cerca que el desarrollo de negocio tiene un lenguaje propio, distinto del que emplean en su día a día los desarrolladores volcados al cien por cien en su actividad. También te das cuenta de lo importante que es liderar y mantener a personas competentes, pero también identificar elementos tóxicos que deben apartarse cuanto antes para evitar males mayores. Sí, en ocasiones me ha tocado despedir, y es un mal trago por el que hay que pasar (y que, literalmente, te quita el sueño cuando tienes que tomar decisiones de ese tipo).

Y, por supuesto, me he equivocado mucho, muchísimo, pero, como dice mi gran amigo Raimón Samsó, “hay que duplicar la tasa de fallos”, porque se aprende más de un fracaso que de un éxito. Lo sutil es ver que los éxitos llegan después de varios fracasos, de modo que me siento orgulloso tanto de aquellos como de éstos.

Fruto de mucha reflexión acerca de por qué se van al garete tantos proyectos de software fue la publicación de El Libro Negro del Programador, que me abrió las puertas al mundo de la publicación independiente y todo lo relacionado con ella. Si quieres profundizar en algo, intenta escribir un libro sobre ese tema; no hay mejor maestro, créeme.

Para mí, ese libro fue un proyecto más (que, por cierto, estoy revisando a modo de segunda edición), y he cosechado bastantes reseñas en Amazon (tanto en la tienda española .es como en la americana .com). También he aprendido (a uno no le queda más remedio) a relativizar la crítica. Aunque, por lo general, los comentarios son muy buenos, alguno que otro es, en mi opinión, excesivamente duro. Tío, que te has gastado 2,99 € (dos cafés y medio) y algo habrás aprendido, digo yo. Afortunadamente, son reseñas puntuales, pero si tienes el valor y el arrojo de publicar tus opiniones, también debes hacerte de una fuerte coraza y relativizar toda crítica. De nuevo, hay que ver cualquier crítica como una oportunidad de mejorar.

Escribir un libro es, en cierto modo, hablar mucho de ti, y por ello se requiere valentía.

Y también he tenido y tengo mis éxitos, tanto personales como profesionales, así como la publicación de mi primera novela, Patricia. Estamos en fase de consolidación de nuestros proyectos, crecemos y, en breve, este año 2017 lo haremos bajo un nombre de marca que nos gusta mucho.

Porque me gusta el software, me gusta crear cosas que solucionen un problema a un cliente (y que te paguen por ello, claro) y, sobre todo, me gustan los ingresos pasivos (aunque ésa es otra historia).

Durante este tiempo también he sabido de algunos compañeros de la universidad que, sencillamente, han abandonado la profesión y ahora se dedican a cosas totalmente diferentes. Y no me extraña: sigo pensando que los desarrolladores de software, al menos en mi país, siguen sin estar suficientemente valorados. Además, el sector sufre un intrusismo tremendo por parte de personas que también se tienen que ganar la vida, legítimamente, claro está, pero es algo que no existe en otros sectores. Quiero decir, ésta es una profesión que necesita mucha vocación y paciencia para prosperar y continuar al pie del cañón durante años.

Uno no tiene una careta para el ámbito profesional y otra para el personal. Estos años también me ha acompañado un fuerte crecimiento personal a través del yoga y la meditación, lo que, lógicamente y de alguna manera, influye en la forma en la que afronto todos los asuntos.

También he aprendido que los mejores profesionales con los que me he encontrado (algunos siguen trabajando en Microsoft) tienen algo en común que pasa desapercibido: son extraordinariamente humildes. Toda una declaración de principios.

¿Y de aquí en adelante?

A seguir disfrutando de un sector pujante que realmente aporta valor a la economía y tiene capacidad para cambiar el mundo (yo lo creo así), sabiendo disfrutar de los éxitos y digiriendo lo mejor posible aquello que no funcione tan bien.

Para mí, éste es el año en que me voy a meter de lleno con Docker, blockchain desde Ethereum, Xamarin, el software basado en microservicios y todo lo relacionado con servicios cloud. Y, por supuesto, SOLID Stack.