Industria del software: más teatro que código
Miles de programadores ocupados en sostener burocracia en lugar de escribir software útil
Si hay una palabra que define la industria del software no es innovación ni creatividad: es exceso. Exceso de burocracia, exceso de capas, exceso de lentitud, exceso de reuniones, exceso de todo. Es un monstruo enorme que se mueve a paso lento.
Burocracia: Hacer un cambio en el código es algo que da vueltas durante semanas en QA, legal, seguridad, varios niveles de aprobación y más cuando en la práctica se podría resolver en una hora preguntando a la persona adecuada.
Complejidad innecesaria: El código se escribe con una sobrearquitectura desbordada y complicada no solo en el código base sino también en microservicios y frameworks, saboteando así cualquier intento de ser productivo en ese entorno. Los equipos de desarrollo terminan atrapados en una maraña que resuelve menos de lo que complica.
Reuniotis: La famosa reunión diaria de 15 personas donde solo hablan 3, la retroalimentación semanal que repite lo mismo una y otra vez y la planeación de mediodía que solo rompe el poco flujo de trabajo que se pudo iniciar. Sumas y te das cuenta de que un desarrollador puede pasar 20 horas semanales en reuniones. Eso es la mitad de la semana sin programar.
Y como cereza del pastel, los beneficios laborales modernos: que ping-pong, que mesas de billar, que cerveza los viernes. Todo eso que se vende como 'cultura cool' no es más que maquillaje de una estructura que no tiene mucho interés en hacer avances de desarrollo de software en su día a día.
La crítica más incómoda: muchos desarrolladores no son necesarios. Y eso que estoy describiendo un mundo pre-inteligencia artificial...
La verdad es que la mayoría de los productos de software estables y maduros no necesitan cientos (¿miles?) de desarrolladores. Probablemente bastarían unos pocos equipos pequeños y bien organizados.
Pero lo que ocurre es lo contrario: las empresas mantienen mucha gente. Y ese ejército no está ahí porque el producto lo requiera, sino porque hay que justificar estructuras. El grueso del trabajo es redundante, burocrático o irrelevante para el producto y para la sociedad. Dicho claramente: gran parte del trabajo en las grandes empresas de software es trabajo de mierda, parafraseando al gran David Graeber.
El marco de Bullshit Jobs aplicado al software:
David Graeber, en Bullshit Jobs, lo describió a la perfección: existen trabajos que no deberían existir porque no aportan nada, pero se sostienen porque las estructuras los necesitan.
En software se ve clarísimo:
-
Los de nivel bajo no optimizan porque si automatizan o simplifican algo, se quedan sin tareas. Es preferible estirar lo que ya tienen que matar su propia función.
-
Los de nivel medio saben que el trabajo se puede optimizar, pero no lo hacen porque su poder depende de tener mucha gente a cargo. Cuanto más grande sea el equipo, más importantes son. Reducir gente a cargo sería reducir su poder.
-
Los de nivel alto ya están en un punto de gran abstracción respecto del día a día del negocio y no tienen claro si se puede o no optimizar. Entonces prefieren ir por lo seguro y no lo hacen. Mientras el negocio siga boyante, haya margen y dinero, mantener una maquinaria lenta y llena de capas es más cómodo que arriesgarse a romper algo queriendo reducir estructuras.
El resultado es una cultura donde nadie tiene incentivos para simplificar. Optimizar es visto como peligroso, no como valioso. Entonces todo se sostiene aunque sea ineficiente.
Además, en el caso de empresas que cotizan en bolsa, quienes toman decisiones no tienen ninguna motivación para hacer un uso eficiente de los recursos si eso significa beneficiar al accionista anónimo que posee un 0.0001% de la compañía. Pensémoslo: si un trabajador prefiere mantener su puesto y un cargo medio prefiere sostener a su miniejército de minions en lugar de reducirlo, ¿por qué habrían de recortar burocracia solo para que un fondo de inversión o un accionista desconocido se haga un poco más rico?
La decisión es clarísima: primero los nuestros, antes que el accionista anónimo que ni se entera de si ganó un dólar más o menos. Y eso no es corrupción en el sentido clásico. Es algo más simple: ineficiencia pura. Una cultura donde cada nivel de la organización busca redirigir recursos hacia sí mismo, aunque eso implique multiplicar procesos inútiles.
En otras palabras, la lentitud, la ineficiencia y el desperdicio no son errores: emergen naturalmente de la estructura existente.
La pregunta incómoda es si gran parte de lo que se hace en la industria del software es realmente trabajo o si es teatro corporativo. Un teatro donde lo importante no es el producto ni el usuario, sino mantener ocupada a la gente, justificar mandos medios y sostener beneficios laborales que dan la ilusión de cultura.
La industria del software presume de estar construyendo el futuro, pero no es muy diferente a las otras industrias. Gran parte de lo que hace es sostener un teatro costoso de burocracia, egos y capas innecesarias. El verdadero futuro estaría en hacer más con menos, en reducir ruido, en simplificar y bajar precios a sus clientes; siempre bajar precios. Pero eso no pasa, ese futuro nunca llega porque no conviene a quienes están adentro.
Mientras tanto, seguiremos viendo equipos gigantescos trabajando meses para producir lo que un grupo pequeño, sin laberintos de procesos, podría haber resuelto en semanas. Y ahí está la ironía: lo que se vende como progreso es en realidad un sistema lento, caro y diseñado para no cambiar.
El software cambió el mundo, pero el mundo corporativo cambió la industria del software, convirtiéndola en teatro.