The build threshold
El umbral de construcción
For twenty years the rule was: don't build what you can buy. It was correct, and it was correct for a reason that no longer holds.
Durante veinte años la regla fue: no construyas lo que podés comprar. Era correcta, y era correcta por una razón que ya no se cumple.
The reason was never that purchased software is better. Usually it isn't, because it was designed for the average of a thousand companies and you are not the average of anything. The reason was arithmetic. The first working version of anything cost months of an engineer, and an engineer was the scarcest thing a small company had. So every internal tool had to clear a bar: it had to be worth more than whatever those months would have produced instead.
La razón nunca fue que el software comprado sea mejor. Casi nunca lo es, porque está diseñado para el promedio de mil empresas y vos no sos el promedio de nada. La razón era aritmética. La primera versión funcional de cualquier cosa costaba meses de un programador, y un programador era lo más escaso que tenía una empresa chica. Así que toda herramienta interna tenía que superar una vara: tenía que valer más que lo que esos meses hubieran producido en otro lado.
That bar is the build threshold. Nobody wrote it down. It quietly decided which software got to exist.
Esa vara es el umbral de construcción. Nadie la escribió nunca. Decidía en silencio qué software llegaba a existir.
What actually moved
Qué se movió en realidad
It is tempting to say that writing code got cheap. That is not quite it, and the imprecision matters.
Es tentador decir que escribir código se abarató. No es exactamente eso, y la imprecisión importa.
What got cheap is the first working version. The distance between describing a system and having it run went from months to days. Everything after that, deciding what it should do, keeping it alive, being the person there when it breaks, costs what it always did.
Lo que se abarató es la primera versión funcional. La distancia entre describir un sistema y tenerlo corriendo pasó de meses a días. Todo lo que viene después, decidir qué tiene que hacer, mantenerlo vivo, ser el que está ahí cuando se rompe, cuesta lo mismo que costaba siempre.
So the threshold did not disappear. It dropped. And a band of software that used to sit below it is now above it.
Así que el umbral no desapareció. Bajó. Y una franja de software que antes quedaba abajo ahora quedó arriba.
The tools that now exist
Las herramientas que ahora existen
Everything in that band has the same shape. It is software that could never have justified a meeting, let alone a quarter of engineering:
Todo lo que está en esa franja tiene la misma forma. Es software que nunca hubiera justificado una reunión, mucho menos un trimestre de desarrollo:
- A tool three people use every day for one specific job.
- A tool that replaces one recurring task instead of a whole process.
- A tool with an expiration date, built for a season and thrown away after.
- A tool that exists because one person was annoyed and nobody had to be convinced.
- Una herramienta que usan tres personas todos los días para una sola cosa.
- Una herramienta que reemplaza una tarea repetida, no un proceso entero.
- Una herramienta con fecha de vencimiento, hecha para una temporada y tirada después.
- Una herramienta que existe porque una persona se hartó y no tuvo que convencer a nadie.
In the last year I laid the foundations for seven of them. None are finished, and that is the point: internal software is finished on the day it stops following the operation it was built for, which is usually the same week people stop opening it. The ones that are alive are the ones still changing.
En el último año construí las bases de siete. Ninguna está terminada, y ese es el punto: el software interno se termina el día que deja de seguir a la operación para la que se hizo, que suele ser la misma semana en que la gente deja de abrirlo. Las que están vivas son las que siguen cambiando.
The threshold was a permission system
El umbral era un sistema de permisos
The last item on that list is the real change, and it is the part almost nobody talks about. The old threshold was never only a cost. It was a permission system.
El último punto de esa lista es el cambio de verdad, y es la parte de la que casi nadie habla. El umbral viejo nunca fue solo un costo. Era un sistema de permisos.
Something had to be valuable enough to be worth asking for. Asking meant explaining it to somebody who would push back, and the pushing back did work that nobody accounted for: it killed the tools that only sounded good. The asking is gone now, and the filter went with it.
Algo tenía que ser lo bastante valioso como para merecer que lo pidieras. Pedirlo implicaba explicárselo a alguien que iba a objetar, y esa objeción hacía un trabajo que nadie contabilizaba: mataba las herramientas que solo sonaban bien. El pedido desapareció, y el filtro se fue con él.
What did not get cheaper
Lo que no se abarató
Judgment. A model will build the wrong idea beautifully and at speed, and nothing in the process will stop you. The bottleneck moved from typing to deciding, and deciding was always the hard part.
El criterio. Un modelo construye la idea equivocada rápido y bien, y nada en el proceso te frena. El cuello de botella se movió de escribir a decidir, y decidir siempre fue la parte difícil.
Maintenance. Long before any of this, Robert Glass put the number at 40 to 80 percent of what software costs over its life, 60 on average, and that was 2002. The first version was never the expensive part. Now it is the cheap part of the cheap part, which means the ratio got worse, not better. Ten tools you can build in a week are still ten tools somebody keeps alive for a year.
El mantenimiento. Mucho antes de todo esto, Robert Glass ubicaba el número entre el 40 y el 80 por ciento de lo que cuesta un software a lo largo de su vida, 60 en promedio, y eso era 2002. La primera versión nunca fue la parte cara. Ahora es la parte barata de la parte barata, así que la proporción empeoró, no mejoró. Diez herramientas que podés construir en una semana siguen siendo diez herramientas que alguien mantiene un año.
Being wrong about the world. Build on a price that changed, an endpoint that moved, a platform rule that was true two years ago, and the result will be perfectly coherent and completely wrong. Coherence reads as correctness. It isn't.
Equivocarte sobre el mundo. Construí sobre un precio que cambió, un endpoint que se movió, una regla de plataforma que era cierta hace dos años, y el resultado va a ser perfectamente coherente y completamente erróneo. La coherencia se lee como corrección. No lo es.
The question that replaced it
La pregunta que la reemplazó
"Can we build it" used to be a real question, and answering it took most of the conversation. It is now almost always yes, which makes it useless.
"¿Podemos construirlo?" era una pregunta de verdad, y contestarla ocupaba casi toda la conversación. Hoy la respuesta es casi siempre sí, lo que la vuelve inútil.
What replaced it is harder and much less fun: should this exist? Not whether it can be built, not whether it would be useful, but whether it is worth being responsible for, every week, for as long as people depend on it.
La que la reemplazó es más difícil y menos divertida: ¿esto tiene que existir? No si se puede construir, no si sería útil, sino si vale la pena hacerse responsable de eso, todas las semanas, mientras haya gente que dependa.
Name the owner
Nombrá al dueño
There is one test that answers that question in about four seconds, and I have not found a better one.
Hay un test que contesta esa pregunta en cuatro segundos, y no encontré uno mejor.
Name the owner before you write the first line. Not who will build it. Who will keep it alive a year from now.
Nombrá al dueño antes de escribir la primera línea. No quién lo va a construir. Quién lo va a mantener vivo dentro de un año.
If the answer is a person, build it. If the answer is "me, I guess," you have just described the tenth tool of a person who can maintain three, and the honest move is to not start.
Si la respuesta es una persona, construilo. Si la respuesta es "yo, supongo", acabás de describir la décima herramienta de alguien que puede mantener tres, y lo honesto es no empezar.
I have broken this rule more than once, which is how I know what it costs. Seven foundations and one person is not a portfolio, it is a queue. The rule did not come from being disciplined. It came from the week I spent keeping something alive that I had no business building.
Rompí esta regla más de una vez, y así es como sé lo que cuesta. Siete bases y una sola persona no es un portafolio, es una fila de espera. La regla no salió de la disciplina. Salió de la semana que pasé manteniendo vivo algo que nunca debí haber construido.
The threshold dropped. It did not go away. It stopped being enforced by cost, which means somebody has to enforce it on purpose now, and that somebody is whoever is holding the keyboard.
El umbral bajó. No se fue. Dejó de imponerlo el costo, así que ahora alguien tiene que imponerlo a propósito, y ese alguien es el que tiene el teclado.