Yeda AI Tips · #142

English

La Ley de Hyrum: con suficientes usuarios, hasta los bugs generan dependencia

Alguien está dependiendo de tu bug en este momento. Acuñada por el ingeniero de Google Hyrum Wright, la Ley de Hyrum dice: "Con una cantidad suficiente de usuarios de una API, no importa lo que prometas en el contrato: todos los comportamientos observables de tu sistema serán utilizados por alguien." El contrato documentado no es la interfaz. El comportamiento observado sí lo es — incluyendo bugs, detalles de tiempo, la redacción de los mensajes de error y efectos secundarios no documentados.

La interfaz implícita

Todo sistema desarrolla una segunda especificación invisible. Tus docs prometen un tipo de retorno; tus usuarios también dependen del orden exacto, de la latencia en milisegundos, del campo que "por accidente" siempre está presente, y del string de error contra el que aplican regex. El propio resumen de Wright sobre el efecto: con el tiempo "la implementación se convirtió en la interfaz." Por eso los equipos terminan enviando compatibilidad bug por bug — el viejo bug ahora sostiene carga.

La ilustración clásica es xkcd 1172: un usuario escribe diciendo que la barra espaciadora le calienta el café, y resulta que una app se reinicia a propósito cuando se mantiene una tecla presionada. Arregla el "bug" y rompes un flujo de trabajo real. Con suficientes usuarios, no hay cambio tan pequeño del que nadie dependa.

Una deprecación es una migración, no un memo

La trampa es tratar la remoción como un anuncio. Software Engineering at Google es directo: "A menudo es tentador simplemente poner una advertencia de deprecación en un sistema viejo y alejarse sin ningún esfuerzo adicional." Rara vez funciona. El libro divide la deprecación en dos tipos:

TipoQué esQué pasa en realidad
ConsultivaUna advertencia sin obligatoriedad"Esperamos que los clientes migren, pero no podemos forzarlos" — reduce el uso nuevo pero "rara vez lleva a que los equipos migren activamente."
ObligatoriaUn plazo firme de remoción con consecuenciasFunciona solo cuando hay un equipo asignado a hacer el trabajo de migración de los consumidores.

Por qué falla el "solo anúncialo": los usuarios literalmente no pueden cambiarse cuando dependen de un comportamiento que el reemplazo no replica. Y una deprecación obligatoria sin financiamiento, advierte el libro, "puede parecerles a los equipos clientes algo malintencionado." El patrón escalable es concentrar la experticia de migración en el equipo dueño de la remoción — primero los migras, luego borras.

Diseña para el borrado desde el inicio

La deprecación más barata es la que planeaste antes de enviar. El consejo del libro: "la deprecación de un sistema de software puede planificarse mientras esos sistemas se construyen por primera vez." Haz la pregunta en tiempo de diseño, no tres años después:

Para usuarios avanzados

Recursos

¿Envías sistemas sobre los que otros construyen? Yeda AI diseña, audita y migra software y sistemas LLM en producción — con el borrado planificado desde el día uno.

Habla con nosotros · Lee el blog