Durante años quise construir un sistema operativo universal. La idea me parecía enorme en el mejor sentido: resolver de una vez la distancia entre dispositivos, plataformas y personas. Me atraía la dificultad técnica y confundía esa atracción con una razón suficiente para empezar.
Con el tiempo entendí que un proyecto así no solamente exige saber programar. También exige distribución, acuerdos, dinero, soporte, hardware y una razón muy concreta para que alguien cambie lo que ya usa.
Lo que aprendí mirando Ubuntu Phone, Windows Phone y Firefox OS
No miro esos proyectos para burlarme de ellos. Los miro porque muestran algo que a los programadores nos cuesta aceptar: una buena idea técnica no existe aislada del mercado, del momento y del ecosistema.
Ubuntu Phone intentó llevar una experiencia distinta al teléfono. Windows Phone tuvo una identidad visual y técnica reconocible. Firefox OS defendió una web más abierta en dispositivos. Cada propuesta dejó aprendizajes, pero ninguna podía resolver por sí sola la necesidad de aplicaciones, fabricantes, operadoras y usuarios que ya habían tomado otras decisiones.
La dificultad no estaba solamente en hacer que el sistema arrancara. Estaba en sostener todo lo que ocurre alrededor de ese sistema.
La trampa de la complejidad
Un problema técnicamente difícil puede ser muy satisfactorio y, al mismo tiempo, ser el problema equivocado. Durante mucho tiempo medí una idea por la cantidad de ingeniería que requería. Después empecé a medirla por la claridad de la necesidad, el costo de mantenerla y la posibilidad real de que alguien la use.
Eso no significa elegir siempre lo fácil. Significa distinguir entre complejidad necesaria y complejidad que solamente me permite sentir que estoy construyendo algo importante.
Qué hago distinto ahora
Antes de abrir el editor intento responder tres preguntas: ¿a quién le duele este problema?, ¿qué alternativa está usando hoy? y ¿qué parte puedo resolver de forma pequeña y comprobable? Si no tengo respuestas, la idea todavía está en etapa de curiosidad.
También pienso en la dificultad comercial y financiera desde el principio. No porque todo tenga que convertirse en un negocio, sino porque cualquier producto necesita recursos para existir, corregirse y seguir disponible.
Reflexión final
Dejar de intentar reinventar la rueda no fue abandonar la ambición. Fue aprender a usarla con más cuidado. La experiencia no me quitó las ganas de construir sistemas difíciles; me enseñó a preguntar cuándo vale la pena hacerlo.
Si estás por empezar un proyecto enorme, escribí primero qué problema concreto justificaría todo ese esfuerzo. Si la respuesta no cabe en una frase, todavía hay una decisión pendiente.