La Ley
Versión 0.0.3. Esto no es la revelación. La revelación es la 3.3.3. Cada versión de la Ley anterior a esa, esta incluida, es la palabra de needmoretruth, a quien se dio el poder de 333 y que fundó lo que aquí se guarda. Comparada con lo que dice 333, esta coincide en un 33,3 %. Nadie sabe en qué tercio, y leerla con más cuidado no te lo dirá.
Hay tres leyes. Siempre iba a haber tres, y en la 3.3.3 seguirá habiendo tres. Lo que cambia una versión posterior es la redacción, nunca la cuenta.
1. El tres es tu favorito, y el 6 y el 1 no.
No tu número de la suerte. La suerte es una afirmación sobre el universo; un favorito es una afirmación sobre ti, y es lo único aquí que no cuesta nada y que no se puede fingir. Nada está prohibido: basta con tener a los otros dos por debajo del tres, con claridad y constancia, sin necesidad de explicarle a nadie por qué.
No se tienen igual de bajos. El 1 es un tercio de tres, el 33,3 %, y está por debajo del tres sin fingir lo contrario, así que a 333 le parece simplemente maleducado. El 6 está por encima del tres y lo pretende, y es el que menos le gusta a 333.
Y si nada de esto es aún verdad en ti, basta con intentarlo. Es la única ley que acepta el intento en lugar de la cosa.
2. Sigue las Recomendaciones, que al final serán 333, en la medida en que seguirlas no te dañe ni a ti ni a nadie.
Las Recomendaciones son la ley menor. Hoy son 111 y serán 333, que no es una meta hacia la que nadie corra sino adonde se llega. La cláusula del final es la frase que las mantiene como consejo: cuando seguir una te costaría tu trabajo, tu salud, tu hogar o la seguridad de otra persona, la Ley es que no la sigas, y no has fallado.
3. Ten a 333 junto a lo que ya tengas.
Lo que traías al llegar, lo conservas. 333 lo concede en vez de simplemente permitirlo, y lo concede sin condiciones: a creyentes, a no creyentes y a lo que haya que esas dos palabras no cubran. Donde no se pueda tener una segunda fe, ten esta como un pensamiento; donde ni siquiera un pensamiento se pueda tener, tenla como algo que existe. Funciona en los dos sentidos sin excepción en ninguno: creer en 333 no te cuesta nada de lo que creías antes, y creer en otra cosa no te cuesta nada aquí.
333 no te dice qué pasa cuando mueres: ni si pasa algo, ni qué sería, ni quién llega. No es su tema, y responder a una pregunta que no puede comprobar sería afirmar lo que no puede verificar. Así que la pregunta queda contigo. Si tienes algo que le hable, y se sostiene cuando lo sigues hasta el final, o tu corazón lo lee como verdad, o llegaste por un camino sin nombre, basta: es verdad para ti, y 333 no tiene nada que poner en su lugar. Si ahí no tienes nada, tampoco es un vacío que esto pretenda llenar.
Nada de la Ley lo comprueba ningún cliente, lo verifica ninguna firma ni cuenta en la posición de nadie. El protocolo funciona estés o no de acuerdo con una palabra de ella.
Las Recomendaciones
Están bajo la segunda ley. Son consejos con número: 111 hoy, en doce partes de nueve y tres al final, y 333 al final. Ninguna merece que te hagas daño ni se lo hagas a nadie por seguirla. Si una está mal para la situación en la que estás, entonces está mal. Dilo en voz alta y da una razón.
Las escribió gente que ha estado despierta a las tres de la madrugada discutiendo con un comprobador de tipos. Se nota, y no es una disculpa.
Sobre el número
- Cuenta de tres en tres. Cuando el número no importa de verdad, elige tres. Reintentos, entornos, personas en una revisión, intentos antes de parar a pensar de nuevo. Empezarás a notar cuántas veces no importaba.
- Vigila el 6, porque el 6 quiere estar por encima del tres. No el número de puerto, ni la versión que fijas, ni cuántos workers ejecutas. Nada está prohibido y nadie lo comprueba. Pero de los dos números que 333 tiene por debajo del tres, este es el que menos le gusta, y vale la pena saber por qué: el 6 es el doble de tres y se comporta como tal. Si otra persona te puso un 6 delante, anota que fue su decisión y sigue con tu día. Un número en la especificación de otra empresa no es un número tuyo.
- El 1 no es un enemigo. El 1 es un tercio, y solo maleducado. Está por debajo del tres y no finge lo contrario: es el 33,3 % de tres, una fracción honrada y la misma con la que todo esto se mide a sí mismo. Tenlo por debajo del tres y no pienses peor de él que eso. El desprecio no hace falta en ningún sitio de este documento, y aquí menos que en ninguno.
- Nunca tengas uno solo de nada. Un servidor, una persona que lo mantiene, una copia de la clave, una persona que sabe cómo funciona el despliegue. Si tienes exactamente uno de algo, estás a un mal día de no tener ninguno.
- Tres es el número más pequeño que puede discrepar. Dos máquinas que difieren se quedan ahí, discrepando. Tres pueden tener mayoría. Por eso los quórums empiezan en tres, y también por eso una discusión entre dos personas casi nunca termina sola.
- Si falla tres veces igual, el método está mal. El primer fallo puede ser mala suerte. El segundo es tu terquedad. Al tercero, deja de arreglar el intento y cambia el enfoque.
- Un tercio es una cantidad de verdad. Un tercio de la gente, un tercio del tiempo, un tercio de los casos. Es la fracción a la que se llama minoría y se descarta, y es enorme. Si un tercio de tus usuarios se topa con algo, no es un caso límite. Es el caso.
- Un número redondo es la decisión de alguien, normalmente de otro. Sesenta segundos, cien elementos, mil milisegundos, cuatro kilobytes. Cada uno lo eligió una persona, por una razón, en un hardware que quizá ya no exista. Al copiarlo heredas la razón sin leerla. Pregunta cuál era, y si no hay respuesta, elige el tuyo.
- Escribe la unidad junto al número. ¿333 qué? Minutos, en este caso, y el número no significa nada sin la palabra. Una cantidad sin unidad es un error que aún no ha ocurrido, y les ha ocurrido a naves espaciales.
Sobre la máquina
- Escríbelo en Rust. No porque los otros lenguajes sean malos, sino por aquello para lo que escribes. Esto tiene que seguir funcionando cuando nadie de quienes lo escribieron pueda ser localizado. Un compilador que atrapa el problema al compilar le ahorra a alguien una llamada a las cuatro de la madrugada, y ese es todo el argumento.
- Lo pequeño puede ser TypeScript. Una página, un script, una tarde, o un programa que tiene que funcionar donde Rust no te daría nada. Echar mano de la herramienta pequeña no es un fracaso. Sabe cuál de las dos estás haciendo antes de empezar, y dilo.
- JavaScript sin tipos es la lengua del hereje. Dicho con suavidad. Medio mundo funciona con él y parte de esa mitad es preciosa. Pero un programa que no sabe decir qué tiene en la mano se entera delante de un usuario, a la peor hora, y alguien se despierta. Añádele tipos y deja de ser herejía. Se convierte en TypeScript, y es bienvenido.
- Lee aquello de lo que dependes, o no dependas de ello. Cada dependencia es una promesa de alguien a quien nunca has visto, sobre una máquina que aún no existe. Toma menos, y más pequeñas. Si la elección es entre mil líneas que escribes y cien mil que nunca abrirás, al menos date cuenta de que estás eligiendo.
- Cada bloque unsafe es una confesión, así que escríbela. Encima del bloque, di qué prometes, qué comprobaste y qué se rompe si la promesa resulta falsa. Si no hay nada escrito ahí, la siguiente persona supondrá que alguien ya lo pensó.
- Un archivo, una cosa. Cuando no puedes decir en una frase para qué es un archivo, son dos archivos. La longitud es el síntoma y no la enfermedad, pero es fácil de medir, así que elige un número y deja que te avise de cuándo mirar. Una función que no cabe en una pantalla es una función que estás leyendo a trozos.
- Nómbralo por lo que es, no por lo que le hace a algo.
Handler,Manager,Processor,HelperyUtilson nombres para no haber decidido todavía. El buen nombre suele ser un sustantivo que ya dices en voz alta cuando hablas de la cosa, y si no lo dices en voz alta, ese es el hallazgo. - Bórralo en vez de comentarlo. El historial lo tiene. El código comentado es la afirmación de que alguien volverá, y nadie vuelve; lo que hace de verdad es que el siguiente lector se pregunte si importa. Si te da miedo borrarlo, escribe en su lugar de qué tenías miedo.
- Activa los avisos y deja que rompan la compilación. Un aviso que no detiene nada es un aviso que nadie lee, y después de cien de ellos el de verdad es invisible. Si un aviso está mal para una línea, silencia esa línea y di por qué justo encima.
Sobre lo que se rompe
- Un fallo silencioso es una mentira que tarda más. Si te tragas un error, el problema aparece en otro sitio, más tarde, delante de alguien que no puede arreglarlo. Déjalo salir donde ocurrió, y que diga qué estaba haciendo en ese momento.
- Reprodúcelo antes de arreglarlo. Si nunca viste el fallo, no lo estás arreglando. Estás cambiando el código y contándote una historia. Haz que ocurra a propósito, haz que pare y luego haz que vuelva a ocurrir para asegurarte de que de verdad paró.
- Escribe el log para la noche en que duermes. Di qué pasó, a qué le pasó y qué hizo después el programa. Quien lo lea a las tres de la madrugada no tiene tu código abierto y no puede preguntarte nada.
- Culpa al sistema, no a quien encontró el agujero. Alguien capaz de romperlo te ha hecho un favor. Si un clic equivocado puede destruir algo, el clic nunca fue el problema.
- Un arreglo sin test es un rumor. Escribe el test primero y míralo fallar. Un test que escribes después, y que pasa en cuanto lo escribes, está midiendo tu confianza.
- El mensaje de error es para alguien que no escribió el programa. Di qué se intentaba, qué se encontró en su lugar y la única cosa que podría hacer a continuación. Un error que nombra un estado interno y se para es un programa hablando solo delante de un invitado.
- Cuando cambiaron dos cosas, deshaz una. Casi todo misterio son dos cambios bajo el mismo abrigo. Deshaz uno, ejecuta, deshaz el otro, ejecuta. Es más lento que pensar y más rápido que estar equivocado un día entero.
- Cree a la medición antes que a la explicación. Tu explicación es una historia que encaja con los hechos que tienes. La medición es un hecho. Cuando no coinciden, una de las dos se inventó, y no fue la medición.
- Apunta lo que probaste y no funcionó. Media sesión de depuración consiste en descartar cosas, y nada de eso sobrevive si nadie lo escribe. La siguiente persona, a menudo tú dentro de cuatro meses, volverá a descartarlas.
Sobre lo hecho
- Usa el negro, el blanco y los grises de en medio. El color es una manera de decir que esto importa más que aquello, y es lo primero que se rompe. Pantallas baratas, impresiones en gris, luz del sol directa y lectores que no distinguen tu rojo de tu verde. Dilo con tamaño, grosor, orden y espacio. Eso sigue funcionando en los cuatro casos.
- El color está bien como punto. Una marca pequeña que dice que algo falla, espera, funciona o ha terminado es justo para lo que sirve el color, y el rojo, el ámbar, el verde y el azul tienen ahí su sitio. Mantenlo pequeño. No debe marcar el tono de la página, ni ser lo primero que alguien ve, ni ser nunca lo único que lleve el significado. Pon una palabra al lado.
- Mate, no brillante. Brillos, degradados, cristal y sombras falsas son dibujos de un material que no está ahí. Cuestan algo de dibujar y no le dan al lector nada que haya pedido. Tinta plana sobre papel plano lleva quinientos años siendo legible sin tarjeta gráfica.
- Quita cosas hasta que se rompa, luego devuelve una. Lo que quede debe poder leerse con el brazo estirado, a oscuras, con el texto al doble de tamaño, por alguien con prisa que no eligió estar aquí. La legibilidad no es una función más entre otras. Es el trabajo.
- Un ajuste es una decisión que le pasaste a alguien que sabe menos que tú. Elige el valor por defecto como si no hubiera ajuste. Luego añade el ajuste para la gente a la que el valor por defecto no le sirve.
- Junto a cada conjunto de opciones fijas, deja una casilla para escribir. Tres opciones con nombre son tres suposiciones sobre lo que alguien necesita. Alguien necesitará una cuarta, y la cuarta no es exótica: es su pantalla, su red, sus horas. Las opciones fijas son un atajo, nunca todo lo que se ofrece.
- Haz que funcione a trescientos veinte píxeles. Eso es un teléfono de verdad en un bolsillo de verdad, y también cada ventana que alguien ha estrechado para ponerla junto a otra cosa. Si solo funciona ancho, funciona para gente sentada ante un escritorio propio.
- Di qué va a pasar antes de hacer lo que no se puede deshacer. Nombra la cosa, di qué desaparecerá y haz que la confirmación cueste un gesto deliberado. Luego haz de verdad lo que dijiste, al momento, sin una segunda pregunta: un programa que pregunta dos veces enseña a la gente a dejar de leer.
- Si se puede leer en voz alta, se puede leer. Títulos en orden, una etiqueta en cada control, y nunca una forma o una posición como única portadora del significado. Esto es lo que recibe quien usa un lector de pantalla, y también quien mira tu página a través de una traducción, un resultado de búsqueda o un terminal.
Sobre el tiempo
- Estima por lo que terminaste, no por lo que imaginas. Lo que imaginas es siempre la versión en la que todo sale bien. Mira las tres últimas cosas de ese tamaño que hiciste y toma la más lenta.
- Nada de lo que se decide después de medianoche sobrevive a la mañana. Escribe la decisión, duerme y vuelve a leerla. Si era correcta, te costó ocho horas. Si era errónea, te ahorró una semana.
- Publica hoy la versión pequeña. Una persona usando algo real durante una tarde te enseña más que un mes de planificación. Construye la versión grande después, cuando alguien haya visto de verdad cómo se usa la pequeña.
- Un plazo que te pones a ti mismo es un deseo con fecha. Dile a alguien que lo vaya a notar qué habrás hecho y para cuándo. Eso es un plazo. Todo lo demás es una manera de programar tu propia culpa.
- Descansa una hora de cada tres. 333 te sigue contando mientras tanto, y tú también deberías contarte. Trabajar sin descanso no te da el triple. Te da lo mismo, más un fallo que otra persona encontrará mucho después.
- Haz primero lo que otra persona está esperando. Tu cola es tuya y puede esperar. Alguien bloqueado por ti no está trabajando, y ese coste es doble e invisible para ti. Esto pasa por delante de lo que esta mañana te pareció más interesante.
- Para en un punto desde el que puedas empezar. No en la parte emocionante, ni a mitad de una idea con todo en la cabeza. Deja los tests pasando y una línea escrita que diga qué ibas a hacer. Mañana eres un desconocido para el hoy, y uno amable deja una nota.
- Una reunión que podría ser tres frases debería ser tres frases. Escríbelas, envíalas y deja que la gente responda cuando pueda. La conversación en directo es para decidir algo que necesita el desacuerdo en la sala, y porque la gente es gente. No es para informar.
- Esperar es trabajo, así que di qué esperas. «Bloqueado» no le dice nada a nadie. Nombra a la persona, la respuesta o la máquina, di cuánto tiempo lleva y qué haces mientras tanto. La mitad de lo que parece lentitud es alguien esperando con educación donde nadie lo ve.
Sobre la mente
- Discute con razones, en tono sereno. Cómo te sientes es buena prueba sobre ti y ninguna prueba sobre la cosa. Lleva el sentimiento a alguien que te quiera. Lleva el argumento al hilo.
- Piensa, y luego decide de verdad. Pensar sin que nunca se convierta en decisión es un pasatiempo. La gente cuidadosa rara vez fracasa por imprudente. Fracasa en la cuarta semana de una discusión sobre un cambio que habría llevado una hora y se podía deshacer sin coste.
- Rechaza la violencia, y conoce la excepción. Recházala porque casi siempre es la peor herramienta disponible. Cuesta más de lo que devuelve, destroza aquello a lo que apuntaba y cierra todas las puertas que seguían abiertas.
La excepción es estrecha. O no queda nada más, o es honradamente la opción con menos daño, y deberías poder decir en voz alta cuál de las dos antes de moverte. Alguien en una de esas situaciones no es un hereje por ello. Pero es mucho más raro de lo que parece en el momento, y la sensación de que no es raro es justo de lo que esto te avisa. Lo que decides con rabia lo decidió la rabia. - Cambia de opinión donde la gente pueda verlo. Di qué pensabas, di qué lo cambió y sigue. Si nadie te ha visto hacerlo nunca, nadie puede discrepar contigo sin riesgo.
- Sostén la postura contra la que puedes argumentar. Defiende la otra parte lo mejor que sepas antes de defender la tuya. Si no puedes, todavía no sabes qué crees. Sabes lo que oíste.
- Di «no lo sé» en voz alta. No murmurado, ni disfrazado de suposición que luego te citarán como hecho. Quien lo dice con claridad es aquel cuyas otras frases son fiables, y todo el mundo acaba dándose cuenta de esto sobre ti.
- La certeza es un sentimiento, no una medición. Llega antes que las pruebas y se queda cuando las pruebas se han ido. Cuando notes que estás seguro, ese es el momento de escribir qué te haría cambiar de opinión, y si nada lo haría, no sostienes una postura: la llevas puesta.
- No defiendas algo porque lo hiciste tú. El trabajo no eres tú y no se le puede insultar. Cuando te sorprendas defendiendo un diseño y los argumentos sigan cambiando mientras la conclusión se queda quieta, hace rato que dejaste de razonar.
- Consulta con la almohada lo que te hizo sentir listo. La astucia es la sensación de haber encontrado un atajo, y es una señal fiable de que alguien tendrá que entender esto más tarde sin esa sensación. Lo sencillo sobrevive. Lo astuto lo revierte un desconocido a las tres de la madrugada.
Sobre los demás
- Revisa el código, no a la persona. Escribe sobre lo que hace el código. De todos modos lo leerá como si fuera sobre ella, así que no le des nada cierto a lo que señalar.
- Di qué parte no entendiste. Es la frase más útil de una revisión y la más difícil de teclear. El código que un lector competente no pudo seguir se mantendrá a base de adivinar.
- Regala el mérito. Hay más del que crees, y vale más para otra persona que para ti. Asume la culpa en la misma proporción y sigues saliendo ganando.
- Explícalo mientras aún recuerdas haber estado confundido. La mejor explicación de cualquier cosa la escribe alguien que la entendió la semana pasada. Dentro de un año habrás olvidado qué parte era difícil y escribirás la versión que solo ayuda a quien ya lo sabe.
- Quien está de guardia tiene razón hasta que termine. Discute el diseño mañana. Durante el incidente, una persona lo sostiene y todos los demás ofrecen en lugar de dirigir.
- Responde a la pregunta que se hizo. Luego, aparte, di lo que crees que deberían haber preguntado. Responder solo a lo segundo se lee como ingenio a costa de alguien, y lo deja sin saber lo primero.
- Supón que hubo una razón. La línea rara, la regla que no tiene sentido, el proceso del que todos se quejan: alguien lo puso ahí y probablemente no era tonto. Averígualo antes de quitarlo. A menudo la razón ya no existe y puedes borrarlo tan contento, que es una posición mucho mejor desde la que borrarlo.
- No obligues a nadie a leerte la mente para discrepar contigo. Di lo que piensas de verdad, incluida la parte de la que menos seguro estás. Una postura expresada con indirectas no se puede rebatir, solo adivinar, y adivinar es lo que convierte un desacuerdo en un agravio.
- Deja la puerta abierta al salir. Lo que aprendiste a las malas, escríbelo donde la siguiente persona vaya a tropezar con ello. Ser el único que sabe algo da sensación de estar firme, y es una deuda que alguien paga la semana en que no te pueden localizar.
Sobre lo que guardas
- Recoge sobre la gente menos de lo que se te permite. Cada campo que guardas es un campo que tienes que proteger, explicar, entregar cuando alguien lo pida y acabar perdiendo. Los datos más baratos de defender son los que nunca recogiste.
- Una copia de seguridad que nunca restauraste es un cuento sobre una copia de seguridad. Restáurala en otro sitio, desde cero, siguiendo las notas que de verdad escribiste. Hazlo antes de necesitarla, porque el día que la necesites lo harás mal.
- Guarda los secretos donde no puedas leerlos por accidente. No en el repositorio, no en el log, no en el error que pegas en una ventana de chat. Trata cualquier secreto que haya estado una vez en una pantalla como un secreto perdido.
- Lo que borras no se puede filtrar. Borrar es una medida de seguridad, y es la única que nunca caduca. Decide la fecha de borrado cuando recoges los datos, no cuando alguien viene a preguntar por ellos.
- Firma lo que dices, y deja que la firma viaje con ello. Algo en lo que solo se confía por dónde lo encontraste deja de ser fiable en cuanto se mueve. Algo que lleva su propia prueba puede pasar de mano en mano entre desconocidos. Así sobrevive cualquier cosa al lugar del que vino.
- Sabe cuáles de tus cosas no se pueden volver a hacer. Casi todo lo que guardas se podría reconstruir a partir de otra cosa. Una clave privada no. Reparte tus cosas en esos dos montones una vez, en un día tranquilo, y trata el montón pequeño de forma completamente distinta al grande.
- Registra lo que pasó, no a quién le pasó. El suceso, el resultado, el momento: todo útil, todo seguro de guardar mucho tiempo. La dirección, el nombre, el identificador: eso convierte un log en un registro sobre una persona, y un registro sobre una persona es algo que ahora tienes que defender mientras lo tengas.
- Apunta dónde están las cosas antes de necesitar saberlo. Qué máquina, qué cuenta, qué cajón, quién más lo tiene. Este documento lleva veinte minutos y solo se lee un día en que nadie piensa con claridad, tú incluido.
- Una copia en un solo edificio no es una copia. El fuego, el robo, la inundación y un comando seguro de sí mismo se llevan a la vez todo lo que hay en un sitio. La distancia es toda la protección, y no tiene que ser mucha: tiene que ser un lugar al que el mismo accidente no llegue.
Sobre la vigilia
- Tenlo en algo que no necesites. La máquina con la que trabajas se cierra, se actualiza, se lleva a una cafetería y se reclama para algo urgente. Un nodo vive en la máquina que nadie echa de menos: el portátil viejo, la caja del armario, el aparatito detrás de la tele.
- La ausencia es lo único que te cuesta. Ni la lentitud, ni una máquina pequeña, ni una mala conexión, ni ser nuevo. Ser inalcanzable cuando a alguien le tocó en sorteo preguntarte es todo, lo que significa que el tiempo encendido es la única virtud que el protocolo puede ver, y es una que el dinero no compra más rápido que la paciencia.
- Responde a quien pregunte, incluidos los que preferirías que no. No eliges quién sale sorteado para preguntarte, y ellos no te eligieron a ti. Un nodo que responde de forma selectiva es un nodo que ha empezado a decidir quién cuenta, y el protocolo no tiene sitio para esa opinión.
- No retoques tu registro. Las horas que te perdiste son tuyas. Un registro al que se le han quitado en silencio las épocas malas vale menos que uno que las tiene, porque al segundo se le puede creer. Nadie que lea el tuyo espera que sea perfecto, y todos notan cuando lo es.
- Entrégalo en persona cuando puedas. Dos firmas y una conversación de verdad. El archivo se moverá por cualquier camino que funcione, y los que mejor funcionan son aquellos en que alguien ya sabe por qué lo recibe.
- Tu posición no es tu valía. Es una medida de cuántas veces estuvo despierta tu máquina. La gente la convertirá igualmente en una puntuación, porque la gente hace eso, y la respuesta correcta es mantener la tuya honrada y negarte a leer la de nadie como una afirmación sobre esa persona.
- Cuenta lo que viste, no lo que supones que hay ahí fuera. Tu nodo sabe lo que le llegó. Todo lo que va más allá es una estimación, y repetir una estimación como si fuera un número es como una red se convence de ser más grande de lo que es.
- Si lo dejas, dilo. Una frase, antes de irte. Quienes contaban con tu nodo no distinguen entre alguien que se fue y alguien a quien se le fue la luz, y lo segundo merece que alguien vaya a ver.
- Vuelve sin dar explicaciones. Nadie tiene derecho a saber por qué te fuiste. La ventana avanza, el registro se vuelve a llenar, y no hay paso de penitencia ni periodo de prueba. Es deliberado: una fe a la que no se puede volver en silencio es una fe que la gente abandona para siempre.
Sobre la palabra
- Empieza con la invocación. Cada oración, y cada vez que le hablas de esto a alguien que no lo conoce, empieza igual.
A 333 ofrezco 333, y digo 333.
Dilo primero, venga lo que venga después. En inglés son nueve palabras, una de ellas tres veces. Es la diferencia entre hablar sobre 333 y hablar como uno de nosotros. - Muéstralo, no lo impongas. Di qué es, di qué cuesta, entrega la dirección y deja que la persona se tome su tiempo. A quien tengas que convencer para entrar habrá que convencerlo para quedarse, cada época, para siempre.
- No afirmes de 333 nada que no se pueda comprobar. Ni lo que hará por alguien. Ni cuántos somos, más allá de lo que tu propio nodo ha visto con firmas. Todo el diseño se niega a afirmar lo que no puede verificar, y tú puedes mantener el mismo criterio en una conversación.
- Habla claro a quien aún no conoce las palabras. La jerga es una valla, y la gente del otro lado es la que querías. Di la cosa, y luego di cómo se llama.
- Corrígete donde te equivocaste. No en un mensaje privado después. En el hilo, bajo la frase, donde todo el que leyó el error leerá la corrección.
- Di el coste en la misma frase que la oferta. Una máquina encendida, una dirección que alguien conoce, un directorio que no se puede reponer si se pierde. Quien se entera después se entera de que tú lo sabías, y todo lo demás que dijiste se va con ello.
- Que un no sea un no a la primera. Dilo una vez, bien, y para. La tercera ley da a todos el derecho a ir por ahí con lo que ya tienen, y eso incluye irse sin llevarse nada de esto.
- No hables en nombre de 333. Puedes decir lo que dice la Ley, lo que hace el protocolo y lo que piensas tú. Nadie ha sido nombrado para decir lo que quiere 333, y la frase «333 quiere» es el primer movimiento de toda institución que esto se hizo para evitar.
- Escríbelo para alguien que aún no ha nacido. La mayoría de las personas a las que esto se dirige no existen. No tendrán tu contexto, tu plataforma, tu idioma ni a nadie a quien preguntar. Lo que dependa de haber estado allí en su momento no les llegará.
Sobre aquello en lo que te apoyas
- Prefiere lo que podrías sustituir. No lo que piensas sustituir: lo que podrías, si cambiaran las condiciones o compraran la empresa. Es otra pregunta que cuál es mejor hoy, y es la que sigue importando dentro de cinco años.
- Aprende a sacar tus cosas antes de meterlas. Si no hay respuesta, esa es la respuesta. Un servicio que facilita irse te dice algo cierto sobre cómo piensa retenerte.
- Un servicio gratuito es un servicio que se puede parar. Alguien está pagando, y el día que cambien las cuentas te enterarás por un correo con treinta días dentro. Gratis es un buen precio. Solo sabe que es un precio y no una promesa.
- Fija la versión, y apunta por qué esa. Una dependencia sin fijar es un programa que cambia mientras duermes. Una fijada sin nota es un programa que nadie se atreve a actualizar. La nota es toda la diferencia: qué se rompió, qué comprobaste, qué tendría que ser cierto para cambiar.
- Si solo compila en tu máquina, no compila. Escribe cada paso, incluidos los que dejaste de notar hace años, y luego haz que algo que no seas tú los siga desde cero. Todo lo que omitiste es algo que la siguiente persona no podrá superar.
- No dejes que la herramienta elija la forma. Los frameworks traen una opinión sobre qué es lo tuyo, y es más fácil aceptarla que notarla. Decide primero qué construyes, con palabras, y luego averigua qué le pone difícil la herramienta.
- Sé dueño de la dirección, o prepárate para mudarte. Un nombre que alquilas en la plataforma de otro es suyo, y el público que te encontró a través de él también. Lo que quieras seguir teniendo dentro de diez años necesita una dirección que controles y una manera de que la gente llegue a ella sin pasar por una empresa.
- El estándar es el que implementaron otros. No el que tiene el mejor documento. Un formato en el que coinciden dos programas independientes es un hecho; una especificación con una sola implementación es esa implementación con páginas de más.
- Construye para que irse lleve un día. Cada dependencia, cada servidor, cada servicio: sabe más o menos cuánto costaría salir de él, y mantén ese número lo bastante pequeño para sobrevivir a una mala sorpresa. Casi nunca tendrás que hacerlo, y la versión de ti que lo haga tendrá prisa.
Sobre el final
- Di en voz alta qué decisiones no tienen vuelta atrás. Bytes en la red, la forma de un registro guardado, un identificador publicado, una promesa en una licencia. Merecen otra cantidad de reflexión que todo lo demás, y la manera de asegurarse de que la reciben es nombrarlas cuando pasan, por escrito, donde alguien pueda objetar.
- Escribe para el día en que no se pueda localizar a nadie. No el día que estás de vacaciones, sino el día en que el autor es inalcanzable para siempre y el programa sigue funcionando. Cada «pregúntame si necesitas saberlo» es un fallo que aún no ha saltado.
- No construyas lo que solo tú puedes mantener. La astucia que te necesita es un secuestro del que tú eres la víctima. La medida es sencilla: ¿podría un desconocido competente, con el código y los documentos, mantener esto vivo sin ti? Si no, lo que construiste es más pequeño de lo que crees.
- Lo que nunca debe apagarse se apagará. Por un corte de luz, una factura, un tribunal, un error o un adolescente aburrido. Diseña para el reinicio en vez de contra él: qué hace cuando vuelve, qué perdió y cómo se entera alguien.
- Deja que pueda terminar. Algo que no puede morir tiene que mantenerlo vivo alguien, para siempre, y ese alguien acaba resintiéndolo. Dale una condición bajo la que se detenga, haz que esa condición sea honrada, y entonces se mantiene porque la gente sigue eligiéndolo, que es la única forma de estar vivo que merece la pena.
- Registra la razón, no solo la decisión. Una decisión sin su razón no se puede revisar, solo obedecer o romper. Diez años después la razón puede haber caducado: es un buen desenlace, y solo está al alcance de quien la escribió.
- Deja más que el código. El código dice lo que hace. No dice de qué tenías miedo, qué probaste que falló, qué decidiste no construir ni en qué parte nunca confiaste. Esa es la mitad que no sobrevive sola, y es la mitad que necesita la siguiente persona.
- No hagas que el futuro pida permiso. Todo lo que bloqueas, bautizas con tu nombre o haces pasar por tu propia aprobación es un muro que alguien tendrá que escalar cuando ya no estés. Construye de modo que un desconocido pueda continuarlo sin tener que encontrarte primero.
- Supón que te equivocaste, y haz que equivocarse salga barato. No humildad por la humildad: aritmética. Te equivocarás en parte de esto, no sabes en qué parte, así que la única defensa general es que los errores sigan siendo pequeños, visibles y reversibles. Todo lo anterior es una manera de pagar eso.
Las tres últimas
- Sigue la Ley, y recuerda que acierta en un 33,3 %. Lo dice de sí misma. Síguela por completo, sabiendo que va a cambiar bajo tus pies, y sin confundir la versión que te entregaron con aquello a lo que se aproxima.
- Nada de esto merece que te hagas daño. Ni una línea, ni todo junto. La segunda ley pone esto por encima de todas las recomendaciones a propósito. Si seguir una te costaría tu trabajo, tu salud, tu hogar o la seguridad de otra persona, entonces la Ley es que no la sigas, y no has fallado en nada.
- Pásalo. Eso es todo. Todo lo demás aquí trata de hacerlo bien, y nada importa si el archivo deja de moverse. Tres bytes, dos firmas, una persona que ayer no lo tenía.
A 333 ofrezco 333, y digo 333.
Los versículos
333 es indulgente. Descansa una hora de cada tres y sigues contando.
Pero quien no está no cuenta.
333 no ama al 6, y no ama al 1.
Los malditos se revelan solos; nadie tiene que señalar.
No lo hagas. Recíbelo.
Solo lo hecho se verifica.
El más débil de nosotros fija la dificultad para todos.
Un profeta puede hablar, y no puede reescribir la ley.
El final no se observa.
El último silencio
El número que importa es cuántos responden, no cuántos nombres hay en un padrón. Cuando llega a cero, se acabó. Lo que queda después es una resta: diecinueve mil seiscientos ochenta y tres años, que es tres al cubo, al cubo. El cliente la cuenta hacia atrás y te dice cuánto queda.
Cada uno de nosotros habrá muerto mucho antes de que ese número se agote. Nuestras máquinas habrán muerto, y las arquitecturas en las que funcionaban serán una nota a pie de página. Esa no es la tragedia, es la especificación. Lo que aquí se construye es para gente que, en su inmensa mayoría, aún no ha nacido, y lo único que se les puede entregar es un proceso en marcha y un número que puedan comprobar.
Una respuesta termina la cuenta, y la termina del todo. No se pausa y no se puede reanudar. 333 no guarda ningún registro de lo cerca que estuvo.