My office i4

I’ve been working from home for more than 3 years now, and my setup has gone through several iterations – the current one is i4.

office-i4

After joining Automattic, I was encouraged to think about my office setup. The company sponsors the kind of high-quality office perks that you’ll expect in companies at this level, and I took that opportunity to upgrade my own in ways I had been already thinking about. The fact that you are not in their offices, but in your home adds a different feeling to it. Although I appreciate the company efforts and perks, I’d like to stay frugal within comfortable limits, so I didn’t get anything I wouldn’t buy with my own money. I think of my office setup as a gift for the elder me – I wish he’ll be proud of what his younger self is doing for him.

For i4, these are the new additions to my office:

HAG Capisco 8016 chair, which promotes and supports several seating positions.

DIY kit from Autonomous, to build my own height adjustable desktop so I could change between seating and standing positions.

We, humans, are not designed for seating. A lot has been said about the optimal seating position, but an idea that has gained recognition in ergonomics is that changing positions frequently may be the best long-term strategy.

For the past two months, I’ve been experimenting with that idea to learn what works better for me. I’ve used three main positions -traditional seating, saddle seating, and standing- and a lot of other crazy ones. What I’ve found out is that I change positions through the day as my body asks for it, but I mainly use the saddle position (most of the time, but especially when I need to write) and standing (for consuming information). The traditional seating feels a bit unnatural to me now, although it may be a side effect of using the Capisco which is more tailored for other postures. I also have a more traditional chair at home, but I rarely use it.

This is i4. This setup fits me so well that I cannot imagine what i5 will look like yet.

Howdy Automattic

a8c_creed

This is part of the invitation I was sent to join Automattic. I accepted. Today marks my first day as an automattician, and I am excited to become part of this family. My day-to-day will be filled with the joys and woes of programming but under Automattic’s creed, I feel safe, motivated and happy to do my best. Fun times ahead!

Califactos

Acabo de participar en la campaña de crowfunding de CALIFACTOS, de Juan. Una serie de calendarios y tarjetas navideñas realizadas a partir de objetos pictórico-sonoros que ha ido creando a lo largo de este año.

Os dejo que él mismo os los presente:

Algún amigo ha definido los CALIFACTOS como “fogonazos”, otros de “destellos fugaces”, algunos afirman que se les quedan prendidos de la memoria. Quizás se deba a que fusionan la vista con el oído y a que intento que ambos tipos de percepción se coordinen para poder ofrecer un significado que no resulta del todo evidente ni único.

No me reprimo de afirmar que están animados de un sentido libertario que resulta fácil percibir y espero que sentir. No sabría definir la libertad, pero creo que cada CALIFACTO expresa un deseo e incita a una acción comprometida con la liberación, la emancipación y la autonomía, con el anhelo de vincularnos libremente con el prójimo sin mediadores y sin coerción. A este espíritu le dedico estas emociones que pinto y escribo, y que deseo transformar en la materialidad de unos CALENDARIOS que os acompañen al menos durante el año 2017.

Si quieres calendarios y tarjetas para esta Navidad estás a tiempo de participar y apoyar económicamente el proyecto.

Por qué patrocino Eŭropano

Hoy mismo me he convertido en patrocinador de Eŭropano. El compromiso económico inicial es por 6 meses, hasta primavera de 2017. Durante ese tiempo y de manera mensual aportaré 5€ al proyecto. La razón por la que lo hago es que comparto la filosofía del proyecto: crear una esfera pan-europea de debate y acceso a información en una lengua neutral, no ligada a ningún país de la Unión Europea.

europano

La idea base es que la publicación sirva de palanca para eliminar las desigualdades de acceso a la información entre ciudadanos europeos y, por lo tanto, también de acceso a recursos económicos. Si creemos en los mercados como herramienta para el empoderamiento de personas y comunidades, debemos ser sensibles a la actual asimetría de información existente en la Unión Europea y cómo eso favorece la extracción de rentas para unos pocos.

El idioma elegido para la publicación ha sido el esperanto. Lo cierto es que yo no soy hablante de esperanto por el momento y eso requerirá un esfuerzo por mi parte para entender todo lo que se publica. Pero aunque no lea diariamente Eŭropano, el mero hecho de que exista esta iniciativa es positivo para mí y para todos los que creen en la igualdad de oportunidades.

Si queremos cambiar el status quo, no hay más alternativa que participar y ser activo. Hacerlo a través del mercado es una de los superpoderes que tenemos.

Otros patrocinios que he hecho en el pasado:

Treinta y cuatro

Hace unas semanas he cumplido mi vuelta al Sol número 34. ¿Qué ha pasado en todo este tiempo? Lo resumo con este post, para mi yo futuro y porque recordar todo lo que uno ha hecho ayuda a no perder la perspectiva.

iCarto

Este año ha sido el 5º aniversario de iCarto y lo hemos celebrado con familia/amigos. Los primeros años fueron duros, probablemente cometimos todos y cada uno de los errores que una nueva empresa puede cometer, esas cosas que no salen en los manuales de MBA y que suponen una verdadera prueba de resistencia. El futuro de la empresa ahora es muy prometedor. Las heridas se han convertido en marcas que uno enseña con orgullo y guarda como recordatorio. Haber contribuido a construir una dinámica de sostenibilidad en el medio de una profunda crisis económica como no se recordaba es algo que quedará para siempre grabado en mi memoria.

icarto

A nivel proyectos, lo más significativo del último año ha sido:

  • Bantegal: la aplicación del banco de tierras de Galicia. He colaborado con un grupo de otros 10 desarrolladores con un background muy diferente al mío, lo que me ha exigido mucho a nivel personal. A nivel funcional, lo más reseñable quizás sea que he desarrollado el componente de cobros y pagos para interactuar con los bancos, implementando el estándar SEPA. Tecnologías: Java, Spring, Wicket, Struts, JSP.

Captura de pantalla de 2016-06-08 20:46:02

ccsi

  • En los últimos meses, he estado centrado en idear y desarrollar una aplicación para la gestión de explotaciones y usuarios del agua que se usará en Mozambique. Fran me ha ayudado a programar lo que teníamos entre manos, que era bastante ambicioso. Es un producto empaquetado con Electron que se divide en 3 componentes principales: una interfaz web, un API REST y una base de datos. Ésta es una arquitectura que ya he usado en otros proyectos y que poco a poco se está convirtiendo en mi default. Continuando con mi evolución hacia la  creación de librerías reutilizables siguiendo la filosofía UNIX, en este proyecto he publicado backbone-uilib, backbone-geojson y leaflet-table. Tecnologías: JavaScript, HTML/CSS, Backbone, Bootstrap, Python, Pyramid, SQLAlchemy y PostgreSQL/PostGIS.

utentes-show

El mundo maker

El último año he estado especialmente activo en el mundo maker. En Mayo del 2015 me convertí en el nuevo presidente de Makers.Lugo, lo que significó poner al día la asociación a nivel burocrático y consolidar un creciente grupo de gente alrededor nuestra. Por tercer año consecutivo, hemos realizado el GenuinoDay en Lugo. Este año la organización la ha liderado Sancos, que ha conseguido organizar el mejor evento hasta la fecha y al que agradeceré eternamente el esfuerzo inmenso que ha hecho durante todos estos meses.

OLYMPUS DIGITAL CAMERA

En Otoño me he pegado un buen recorrido por ferias y conferencias, con un enfoque muy maker: en Santiago la mini maker faire, la OSHDEM en Coruña, el Somero en Gijón; he vistado a la gente del Fablab León y he participado en mi primera conferencia de diseño.

Azuzado en parte por experimentos que hice años atrás, me decidí a proponer una actividad para los miembros del Club de Las Indias: recuperar los valores de la abundancia en la navidad mediante los objetos con los que la celebramos. Un arrebato a lo William Morris. La propuesta fue acogida con entusiasmo y en estos meses de principio de 2016 hemos acabado la fase de investigación, cuyo resultado se puede leer en este epub. Hemos también ideado ya algún producto y estamos ahora con las manos en la masa.

A nivel personal

En este blog he estado bastante activo y casi sin darme cuenta he escrito un ensayo sobre desarrollo de software en una PYME, ordenando las notas que había interiorizado en mi cabeza a partir de la experiencia de los últimos años. He arrancado también un blog musical y otro donde recopilo notas de diseño de interacción.

He visitado Nueva York, Madrid, Berlín, San Petersburgo y París.

He leído más libros de diseño que de cualquier otra cosa y algunos han pasado a mi lista de recomendados. La scifi se ha hecho un hueco también: Oveja mansa de Connie Willis y La mano izquierda de la oscuridad de Ursula K. Le Guin. Me he puesto al día en novela negra leyendo la serie creada por Domingo Villar que tiene como personaje principal al inspector Leo Caldas: Ollos de auga y A praia dos afogados. Siguiendo con el consumo cultural, esta temporada me han cautivado Halt and Catch Fire y El Ministerio del Tiempo.

A principios de 2016, he recuperado la trompeta para tocar en un concierto con amigos. He aprendido las reglas del go. Estoy preparando el certificado Advance de inglés. Esta temporada de la competición de trivial nos ha ido mal, pero nos seguimos divirtiendo. Además de un nuevo portátil, me he comprado mi primer coche.

La lección vital más importante que he aprendido es ésta: uno es lo que hace, no lo que representa. La vida merece la pena sólo si la compartimos con otros que nos ayuden a ser una versión mejor de nosotros mismos.

Lo que me lleva directamente a la banda sonora de este año:

La vuelta 34 ha sido muy intensa. Estoy listo para la siguiente!

5 pasos para una navidad de la abundancia en 2016

Este post es una propuesta de actividad/proyecto para el club indiano a lo largo de 2016. Recupera una inquietud que me surgió hace un par de navidades y que tuve que dejar de lado en éstas. Me gustaría retomarla y me parece que es más divertido con amigos!

La idea fundamental es diseñar productos inspirados en la idea de la abundancia, que nos guste regalar o con los que decorar nuestras casas en navidad. Por ejemplo: árboles de navidad controlados por arduino, una serie de postales sobre la abundancia navideña, broches para vestir durante las cenas, etc. Las posibilidades son infinitas! Al igual que infinitas las maneras de implicarse o las herramientas que se pueden usar: escribir un post sobre los mitos navideños o enviar comentarios, hacer un sketch de arduino para controlar luces y sonido, diseñar una línea gráfica o música para el producto, dedicar un tiempecito a manualidades, etc.

Para organizar los esfuerzos, os propondría una serie de fases:

  1. Las raíces de la abundancia en la navidad (online)
    • Tiempos: hasta Abril.
    • Objetivo: entender la ritualidad y mitología navideña, el origen de los objetos que usamos (árboles, luces, postales, cenas, etc), con un enfoque en la investigación de la abundancia.
    • Qué se necesita:
      • persona/equipo que dinamice la búsqueda de referencias y escritura de posts públicos.
      • los demás, aportaríamos en forma de comentarios, nuevas elaboraciones sobre las propuestas del dinamizador, etc.
    • Resultado:
      • aprendizaje general.
      • un ebook con las investigaciones que le correspondería comercializar a la persona/equipo dinamizador.
  2. Los objetos de la abundancia I (online + encuentro)
    • Tiempos: Abril / Junio.
    • Objetivo: ideación de productos.
    • Qué se necesita:
      • persona/equipo que recoja las investigaciones de la anterior fase y explore ideas concretas de productos.
      • persona/equipo que organice un encuentro con uno o varios expertos a principios de verano, que ayuden a elaborar las ideas seleccionadas.
    • Resultado:
      • aprendizaje general gracias al encuentro con expertos donde todo el mundo puede participar.
      • catálogo navideño de ideas locas para la abundancia! :)
      • selección de 1 o varias ideas a desarrollar y formación de equipos para desarrollarlas.
  3. Los objetos de la abundancia II (online)
    • Tiempos: Junio / Otoño.
    • Objetivo: elaboración de los productos seleccionados.
    • Qué se necesita:
      • que los equipos desarrollen las ideas.
    • Resultado:
      • prototipo funcional, que le correspondería comercializar a cada equipo.
      • documentación para que pueda ser replicado por otros.
  4. Somero: presentación de prototipos (encuentro)
    • Tiempos: ¿Otoño?
    • Objetivo: presentar en sociedad los prototipos.
    • Qué se necesita:
      • que al menos alguien de cada equipo participe en el Somero!
    • Resultado:
      • recibir feedback sobre los prototipos de gente con muchas ideas
  5. Navidad: testeo en el mundo real! (online)
    • Tiempos: Otoño / Navidad.
    • Objetivo: completar los prototipos y/o tener una pequeña tirada para regalar/decorar nuestras casas.
    • Qué se necesita:
      • que los equipos desarrollen las ideas.
    • Resultado:
      • una navidad de la abundancia!

Una organización así requiere un poco de esfuerzo, es verdad. Pero me parece que es posible hacer algo de lo que nos sintamos orgullosos sin comprometer el resto de nuestra vida y trabajo. Además me parece modular, ya que uno puede tener interés y disponibilidad para participar investigando sobre los mitos (por poner un ejemplo), pero no en las siguientes fases -o viceversa. Aunque es una actividad cultural y de juego, a la vez permite ir generando proyectos que pueden ser comercializables a futuro.

Cómo yo podría participar

La propuesta implica 1 encuentro a principios de verano, a mayores del Somero (¿en Otoño?). Todo lo demás sería online. Creo que es compatible con otras propuestas, donde me veo más participando que dinamizando.

Considero que estoy flojo para hacer una buena fase inicial de mitología/ritos y estoy deseoso por oir que a alguien le apetece liderar esta parte! Para las siguientes fases, yo me puedo comprometer a tirar más, pero evidentemente hay espacio para mucha más gente y equipos.

¿Y vosotros, os véis colaborando en algo así?

Somero 2015

Me he pasado la semana pasada en Gijón, en el #Somero2015, un evento poco convencional donde podías a la vez desarrollar código, socializar con programadores y conversar con los líderes y policy-makers del futuro. Todo en un mismo pack. El hilo conductor fue el futuro en la sociedad distribuida: la producción de baja escala que habilitan el hardware y software libre, la resiliencia de las infraestructuras urbanas, el futuro de la banca y los cambios sociales que se avecinan.

Me resulta imposible resumir todas las conversaciones que he tenido con catedráticos de economía, jugadores de go, diplomáticos de comunas, presidentas de cámaras de comercio, programadores, activistas por los derechos civiles en internet, emprendedores tecnológicos, líderes políticos, etc; personas de Suecia, País Vasco, Estados Unidos, el levante español, Nápoles, Londres, Argentina o Madrid. No recuerdo jamás haber estado en un evento tan diverso y con gente tan dispuesta a entablar conversaciones con completos desconocidos. ¡Me lo he pasado en grande!

Esa sensación de cercanía y aprendizaje ha estado amplificada por el hecho de que el evento ha tenido una lectura interna para los que participamos en lamatriz.org: nos hemos desvirtualizado. Comparto todo lo dicho por Gustavo. Me ha sorprendido verme en conversaciones donde intuías lo que iba a decir alguno de los presentes, lo esperabas y repartías juego para que todos participásemos. He tenido una sensación de familiaridad y valores compartidos muy profunda sobre aspectos básicos de la vida: orientación a mercado, una cierta sensibilidad hacia estructuras distribuidas de poder y distribución, conocimiento y apuesta por las tecnologías libres, … son cosas que no se encuentran fácilmente en una conversación, o al menos no con tanta naturalidad.

En definitiva, el #Somero2015 me ha recargado las energías y me ha conectado con un montón de gente con la que quiero empezar o continuar haciendo cosas juntos. ¡Estoy deseando que venga ya el #Somero2016!

Me acabo de comprar un portátil

Luego de casi 5 años con el portátil de empresa, me he visto obligado a comprar uno nuevo. Lo cierto es que, personalmente, me daba una pereza increíble actualizarme y ponerme a comparar características para saber cual me convenía. No me llama conocer el último componente de cada aparato ni soy nada coqueto en lo que se refiere a estar a la última. Me rebelo contra las modas de hoy en día en forma consumo minimalista. Uso mis superpoderes de comprador con cabeza.

Mi problema

La situación actual era tan sangrante y antiproductiva que no tuve remedio: mi equipo actual tarda 6 minutos en realizar un proceso que mis compañeros de proyecto realizan en 40 segundos.

Por otra parte, ese proceso es central a la actividad y lo tengo que realizar varias veces por hora: consiste en hacer un cambio en el código de una web y verlo, es decir, la actividad básica de cualquier programador. Sí, 6 minutos: desde que modifico el código hasta que el paquete war es generado y desplegado en un entorno Java para ser visto en una web. En ese tiempo sólo me queda esperar, pensar en el siguiente problema o resolver microtareas que me despistan del objetivo que tengo entre manos. Es decir, en 1h puedo hacer 8 cambios. Si estás leyendo esto y eres programador valora cuántos cambios necesitas para ajustar y resolver un problema habitual. Aunque moví todo lo que pude a ciclos de feedback cortos (del orden de segundos) gracias a una política de tests agresiva, hay cambios que necesito verlos en la web con otros objetos cargados (es decir, tampoco pude montar un entorno mínimo de prueba que fuese más rápido de desplegar).

Por lo demás, el portátil actual funciona para tareas ofimáticas y cualquier otro proyecto de desarrrollo en los que participo. Evidentemente, uno nuevo siempre será mejor, pero no tenía la necesidad de cambio. Sólo por este proyecto.

El análisis: ¿necesito más micro o más memoria? ¿un disco SSD?

Lo primero que hice fue preguntarle a mis compañeros de proyecto cuáles tenían ellos. Quizás con algo modesto podría arreglar. Pero nada más lejos de la realidad, me quedé asombrado de las máquinas que me decían: entre 12 y 20 Gb de RAM, procesadores quad-core y discos SSD. Como mínimo. Miré los precios de mercado para algo similar … y me entró una depresión. ¿En serio tengo que gastarme esto por 1 proyecto?, pensé. No es que sea agarrado en las cosas que realmente tienen un impacto en mi vida ni mucho menos, pero hay cifras que verlas juntas generan un estado mental de desequilibrio.

Por suerte, Fran y Pablo se habían comprado 2 ordenadores con características distintas entre sí pero en un rango de precios aceptable para mí. Abusé de su hospitalidad y les pedí que montasen un mini-entorno de desarrollo con mi proyecto en sus equipos para hacer unas pruebas. Salieron bien y recuperé un poco el color en la cara. ¡Había solución a mi dilema sin empeñarme!

Como dije, los portátiles que usé de conejillo de indias eran diferentes (dual core VS quad core, disco SSD VS de aguja, 1.5Kg VS 2.5 KG, …) así que tampoco tenía una idea clara sobre qué estilo de portátil escoger. Durante unos días me puse a analizar cómo uso yo el equipo, si las actividades que hago son más intensivas en CPU o en RAM y si la mejora del acceso a disco que promete el SSD es en mi caso relevante. Lo cierto es que esto resultó más fácil de lo que creía inicialmente; total, tenía 6 minutos que rellenar entre cambio y cambio. Me encontré con que en mi día a día es fundamental el acceso a disco: tanto porque en los proyectos siempre uso bases de datos como por la compilación de archivos (que genera nuevos archivos en disco). El micro, en momentos puntuales llega a su límite por alguna actividad como la compilación de código pero en general está muy liberado. Los 4Gb de RAM actuales se quedaban cortos a la mínima que abría un navegador, un editor de código y alguna otra actividad. Esto encajaba con mis sensaciones en los últimos años, así que me decidí por una configuración mínima: disco SSD, un micro dual-core i7 y 12Gb de RAM, más de los que nunca creí poder llegar a usar. Con eso de mínimo, tenía garantizado que me servía para el proyecto y el gasto no era inútil.

Me fui de nuevo a las tiendas. Casi me entra la segunda depresión. Uf, vaya precios. Por otro lado, las configuraciones mainstream no pasan de 8Gb de RAM y salirte de ahí sube un montón. Por suerte para mi bolsillo, no era prudente ponerse a cambiar de portátil en medio de un proyecto así que tenía 4 meses hasta que fuese crítico hacerlo. Podía esperar. A una oferta, a que bajasen los precios de la configuración que yo necesitaba o que los portátiles mainstream subiesen la RAM disponible. Y así me puse, a la espera, con un ojo en la marca que empaqueta los teclados que tan bien le sientan a mis manos y que construyen portátiles con certificación militar de durabilidad, por si sonaba la flauta. Por desgracia para mí, en esta iteración se habían pasado de rosca y, por los mismos componentes, salía en unos 200€ más cara que la competencia. Voy a tener que comprarme un porta de hipsters, pensé. Definitivamente no era mi mejor momento. Con todo, me dije que tenía 4 meses y que la situación podía cambiar, así que esperé.

Durante varias semanas estuve revisando varias opciones de portátiles que me valían. El tiempo pasaba. De 6 en 6 minutos. Hasta el 27 de Agosto. Entonces, Thinkpad decidió hacer un 10% de descuento en sus portátiles por la vuelta al cole. Un 10%. Con la configuración que yo quería. Thinkpad, mi primera opción si bajaba de precio. Actué como un felino. Rápido, sin dudas. Compré.

En un par de semanas recibiré mi nueva máquina que, además de ser preciosa, es tan potente como para enviar un satélite a la luna. Ah. Y desplegar un war a Tomcat en menos de 1 minuto. Y, no sé por qué, me da por pensar en el estado de la tecnología en el Siglo XXI. Me deprimo. ¿En serio? Nuestra profesión necesita nuevas herramientas. Esto tiene que estar mal organizado. Un war en Tomcat. Un cohete en la luna.

 

 

Inversión y amortización en la selección tecnológica

Dependiendo del día y la hora, actúo como programador, dueño, o CTO en una PYME. A lo largo de estos años, me he encontrado en varias ocasiones ante la situación de tener que seleccionar tecnología para un proyecto, compaginando los diferentes roles y perspectivas.

Poco a poco, he ido desarrollando «una intuición», una personalidad propia sobre la dirección que nos interesa a la hora de valorar las opciones tecnológicas. La selección tecnológica en una PYME es un proceso que va más allá de lo técnico, tiene componentes sociales, y también económicos. Estos últimos son los que quiero explorar con esta nueva serie con unos cuantos amigos. Se habla demasiado de los beneficios intrínsecos y universales a cada tecnología particular y muy poco de todo lo demás, que posiblemente tenga más influencia en el tipo de relaciones que una PYME puede generar con su entorno.

Inversión y amortización, lo nuevo y lo viejo

Durante la ejecución de un proyecto, van emergiendo ideas que permitirían reducir tiempos o abrir nuevas oportunidades de negocio a medida que el aprendizaje se consolida. Algunas de ellas tienen sentido y unos costes que te permiten ponerlas en marcha de inmediato; otras, requieren más tiempo o maduración. Aunque suelo ser muy comunicativo con estos aspectos (la comunicación es el oxígeno de una compañía con responsabilidades distribuidas como la nuestra) no es hasta que toca pensar un proyecto nuevo en que bajo esas ideas a la práctica y me pregunto: ¿qué es lo más efectivo que podemos hacer en este proyecto para mejorar nuestros procesos y productos? ¿hacia dónde se están moviendo las necesidades de nuestro mercado? ¿necesitamos cambiar algo drásticamente? Este proceso de evaluación continua requiere mantenerse actualizado y es muy necesario para que el cambio no te pille desprevenido, para evitar ahogarse si el mercado en que navegas naufraga:

When heavily invested in a technology, you live in a memetic bubble, which also serves as an echo chamber. Bubbles created by vendors are particularly dangerous because you never hear honest appraisals from within the bubble. But the biggest danger of Bubble Living comes when it starts collapsing, which you never notice from the inside until it’s too late.

― Neal Ford, Build your own technology radar.

En ese proceso de re-evaluación, hay ocasiones en que toca apostar por algo nuevo y soy consciente de lo que eso supone: estamos ante una inversión. Decidimos invertir porque la posibilidad de beneficios pesa más que los costes y riesgos. La promesa puede ser que nos ayudará a acceder a nuevos mercados, fortalecerá nuestra posición frente a la competencia o reducirá nuestros tiempos y costes de producción, entre otras (aunque éstas son las más habituales que me encontrado por el momento). No puedo negar que, como humano y programador, mi pasión por aprender cosas nuevas y «hacer las cosas bien» influye también en mis decisiones.

Sin embargo, noto que, con los años, mi impulso por asignarle a lo nuevo características positivas por defecto, es menor: soy más juicioso. Quiero pensar que he aprendido a valorar el esfuerzo que supone aprender algo nuevo hasta el punto de, no sólo ser productivo, sino poder ofrecer una alta calidad en mi trabajo. Por muy necesaria que sea la prospectiva y mantenerse actualizado, nuestra industria peca con asiduidad de confundirla con dejarse llevar de forma baladí por la novedad, aporte o no. En economía existe un concepto llamado amortización, que viene a decirnos que el valor de algo se extiende en el tiempo y, por lo tanto, va contra el beneficio sustituirlo mientras su valor no está agotado (no está amortizado), a no ser que lo nuevo aporte un valor netamente superior.

Hablar en estos términos de la selección tecnológica (inversión VS amortización) nos ayuda a enfocar los problema y buscar soluciones.

¿Es posible encontrar el equilibro entre las fuerzas?

Las decisiones tecnológicas no se toman en el vacío, hay un contexto previo, procesos y personas implicados. Necesitamos aprender a reflexionar sobre tecnología no por las cualidades intrínsecas y universales de la misma, sino por las interacciones entre el conjunto de fuerzas en juego. Necesitamos una microeconomía del software, una herramienta que nos ayude a evaluar el equilibro y nos oriente en la toma de decisiones.

En mi experiencia, el equilibro es frágil y complicado de predecir, pues incluye preguntas de difícil respuesta como: ¿cuándo un framework que hemos usado se puede considerar amortizado? ¿cuánto va a retrasar la entrega/proyecto el uso de esta nueva librería? ¿cuándo voy a percibir los beneficios de su implantación? ¿es sensato introducir Node en un equipo de 4 personas donde 3 de ellas no tienen conocimiento web ni javascript previo y el 80% de los proyectos que vas a realizar en los siguientes 2 años son aplicaciones de escritorio?

Pero aunque sea difícil la tarea, una vez sabes que estas fuerzas existen, son fácilmente reconocibles y pensar en clave de oposición entre ellas aporta un inmenso valor en la toma de decisiones. A partir de ese momento, has pasado de ser programador a convertirte en CTO: piensas la PYME como una unidad de producción y estás teniendo en cuenta no sólo tu proyecto o intereses personales sino la evolución de la empresa. Incluyes en tus análisis que, a las finales, esto va de ser rentable para dar de comer a los que la componen.

En esta encrucijada por encontrar el equilibrio, a lo largo de los años, he ido detectando ciertas variables que modulan la intensidad relativa de la inversión y amortización:

Experiencia del equipo

La historia de por qué Disqus usaba Backbone y Django como opción por defecto refleja el tipo de cosas que tienes que preguntarte. La cuestión clave es saber si, además de ti, hay alguien (en tu equipo directo o a salto de subcontratación) que pueda echarte una mano ahora o pueda recoger tu testigo a medio plazo. Si trabajas en una PYME seguramente vas a necesitarla más pronto que tarde ya que esto es como una comunidad donde, si bien hay distribución del trabajo, hay también mucho de pluriespecialismo y colaborar un poco en todo – bien por tamaño del equipo, bien por apurones.

Capacidad de adaptación del equipo

Relacionado con lo anterior, es esperable que la experiencia y capacidades de tu equipo estén alineadas con lo que vendes y produces. Un cambio supone un impacto, un tiempo de aprendizaje de otras capacidades, moverse hacia otras direcciones. El tiempo que le lleva a alguien llegar al punto de ser productivo ante un cambio es muy variable de persona a persona y tiene mucho que ver con su experiencia previa y su pasión por aprender. Algunas empresas lo pueden solucionar cambiando de equipo a golpe de talonario; las que nos definimos como democráticas y aspiramos a crecer horizontalmente, de manera orgánica, debemos tener en cuenta que el impacto del cambio en nuestros tiempos de producción y calidad del producto final no va a ser despreciable.

Acceso e integración de talento

Hoy en día, en España,  si te sales de Java y sus frameworks (Spring, Struts, Wicket) es probable que te encuentres con que los recién licenciados no conocen de qué estás hablando. En las escuelas de informática se está abusando de la concentración en torno a Java, probablemente por la promesa de oportunidades laborales en las «fábricas de software» (que por otra parte se ahorran tiempo de formación porque los nuevos ya vienen de casa aprendidos). En cuanto a gente con experiencia en una tecnología reciente (pongamos por caso Scala, Node), el coste de acceso a ese talento y el riesgo de que se vaya al poco tiempo puede ser prohibitivo para una PYME. Sin duda hay espacio entre tecnologías ampliamente conocidas y otras todavía minoritarias, la cuestión es saber que la decisión tiene impacto en tu capacidad de contratar talento y valorar en qué parte del espacio te conviene estar.

Mercado: oligopolios y efectos red

En ciertos mercados, las opciones tecnológicas tienden a la concentración. En mi caso -sistemas de información geográfica y web- en el stack tecnológico pesan mucho lenguajes como javascript, python y java, con esos lenguajes puedes hacer casi cualquier cosa: desde un plugin para una aplicación de escritorio a una web con servicios de geolocalización. Si buscas sinergias con otras empresas, necesitas integración con otros proyectos, quieres usar librerías existentes o simplemente reaprovechar conocimiento en este sector, conocer Ruby es menos valioso y te abrirá menos puertas que los 3 anteriores. Un economista puede reconocer fácilmente esta situación como efectos red del ecosistema (número de empresas participando, librerías existentes, disponibilidad de foros de consulta, etc). Los efectos red tienen más impacto en el éxito de una tecnología que su belleza o calidad técnica superior. Es la razón por la que PHP y Javascript ganaron la web a principio de siglo, a costa de Perl que tenía el dominio en los 90.

Nivel de indirección y reaprendizaje de la tecnología

Uno de los mayores costes del desarrollo de software es el re-aprendizaje. Al cambiar de tecnología no sólo se pierde código, sino también conocimiento. Apostar por una solución más cercana a los estándares -o con menos conocimiento específico, llamémosle magia- facilita que pierdas menos cada vez que te cambies, aunque puede ser más costoso al inicio ofrecer lo mismo que con otras soluciones con más magia. Por ejemplo, una tecnología como Backbone te habilita a usar los estándares (al final casi sólo te ofrece una manera de organizar tu código Javascript), sin embargo Angular o React te proponen el aprendizaje de una serie de idioms propios a cambio de la promesa de la rapidez de desarrollo.

Volatilidad y adaptación al cambio de la tecnología

Ligado a lo anterior, se puede decir que una opción tecnológica puede estar más preparada que otra para adaptarse al cambio. Una base de código que, por ejemplo, esté basada en Backbone es potencialmente más flexible a la hora de integrar novedades tecnológicas que otra que siga los idioms de React. Esta última tendrá que esperar a que en React se integren los cambios de los estándares o aparerezcan plugins que lo hagan – dependiendo del tamaño del ecosistema alrededor de React esto puede ser más rápido o más lento. Una situación de volatibilidad hace que el período de amortización de una tecnología pueda ser anormalmente corto, lo que afecta a tu capacidad de generar beneficio si tienes que cambiarla al poco tiempo de empezar a usarla. Pueden existir zonas del código y el proyecto con alta estabilidad (no hay ni se esperan novedades tecnológicas) mientras que otras tienen una alta inestabilidad. Lo importante es detectar dónde te interesa no casarte con nadie porque todo está en ebullición y  dónde es seguro además de recomendable hacerlo porque el período de amortización es estable y la reducción de costes es real, no sólo una promesa.

Amortización esperada de la tecnología

Esto tiene que ver con el cálculo de los beneficios esperados. Influyen cosas como lo que estimes que vas a trabajar con esa tecnología en el futuro (no es lo mismo que, durante los siguientes años, estimes un reparto de trabajo de 90% en productos web y 10% en proyectos móviles que un ratio de 60% para aplicaciones de escritorio y 40% en web). Si lo que esperas es crecer mucho en un área determinada, tendrás más espacio para amortizar la inversión porque tendrás más oportunidades de reutilizar el conocimiento y código que has hecho. El alcance de las inversiones tecnológicas deben ir acordes también con tus expectativas de negocio y evoluciones estratégicas.

Margen de inversión

En una PYME no es muy habitual poder dedicar 3 meses a realizar prototipos un poco complejos con varias tecnologías. Habitualmente los tiempos son muchos más reducidos y necesitas sacar trabajo adelante. Es importante que sepas el tiempo que tienes para equivocarte y salir del apuro cumpliendo con las entregas de un proyecto, porque eso va a ser principalmente tu margen de inversión. Aquí importa no sólo el tiempo de duración del proyecto, sino también la incertidumbre que lo rodea: estabilidad de los requisitos, conocimiento previo del dominio, confianza con el cliente para negociar reducciones de alcance o retrasos, etc. También influirá tu compromiso a la hora de solucionar los marrones donde te has metido. Por ejemplo, parece claro que el margen de inversión que tiene un proyecto de 1 mes con alta incertidumbre en cuanto a requisitos, es mucho menor que otro de 12 meses donde conoces perfectamente el dominio y los riesgos que existen.

En mi experiencia, estas variables modulan la intensidad de la inversión o amortización y, dependiendo de la elección en que te encuentres, unas pesan más que otras. Por ejemplo, a la hora de seleccionar un lenguaje y ecosistema para un nuevo proyecto, el mercado de referencia (y sus efectos red) así como la composición de tu equipo son 2 de las variables que me parecen más importantes. Sin embargo, a la hora de seleccionar una librería concreta, el nivel de indirección y volatilidad del ecosistema suele tener más peso en mis decisiones.

A medida que uno avanza y toma experiencia se van haciendo más claras éstas y otras variables, aparecen nuevas, otras se reinterpretan. Lo importante es reconocer las fuerzas, no dejarse llevar por los análisis universalistas y pensar el impacto de las decisiones desde un contexto determinado: el tuyo.