Hazlo inevitable, no impresionante
El objetivo del oficio no es deslumbrar. Es refinar algo hasta que se sienta inevitable, como si no hubiera podido ser de otra manera. Esa sensación se gana despacio, por sustracción.
Principio Nº Cinco
Diseña para que el buen resultado sea el camino de menor resistencia.
Durante mucho tiempo perseguí lo impresionante. Quería que el trabajo hiciera que la gente notara el ingenio en él — el adorno, el truco, eso que anunciaba cuánta destreza había costado. Lo impresionante apunta de vuelta a su creador; quiere que veas el esfuerzo. Y funciona, brevemente. Pero el trabajo que de verdad admiraba en otras personas no se sentía impresionante en absoluto. Se sentía inevitable — como si solo hubiera podido ser de esta manera, como si tú mismo podrías haberlo pensado, aunque no lo hiciste. Lo impresionante dice mira lo que hice. Lo inevitable no dice nada, porque no hay costura, nada que sobresalga para admirar — solo un resultado tan bien ajustado a su propósito que se lee como el estado natural de las cosas.
Esta es la parte que me llevó años aprender: no llegas a lo inevitable esforzándote más en el momento. Llegas moldeando el terreno para que el buen resultado sea el fácil. La gente del software tiene un nombre para esto — el pozo del éxito: construye la cosa de modo que simplemente usarla con normalidad te deje caer en la práctica ganadora, sin vigilancia ni heroísmos. El camino correcto es cuesta abajo; el camino equivocado es cuesta arriba, o está amurallado por completo. No dependes de que nadie (tú incluido) sea cuidadoso. Estás disponiendo las cosas para que lo cuidadoso sea lo predeterminado.
En concreto, eso significa que tus valores por defecto son decisiones — el valor por defecto es con lo que la mayoría de la gente vivirá, así que hazlo el resultado que de verdad quieres. Significa hacer el movimiento equivocado difícil incluso de expresar: una forma que solo permite el estado válido, una barandilla que detiene la llamada peligrosa antes de que se ejecute, un tipo que no deja escribir en absoluto una combinación ilegal. El esfuerzo se traslada del momento de uso, donde es frágil y fácil de saltarse, al diseño, donde se paga una vez y protege a todos después. (Esto es primo de la sustracción del Principio Nº Dos, apuntada hacia adelante: allí quitas lo que no es el trabajo; aquí quitas las formas de equivocarte.)
Evita
Dejar el camino peligroso abierto y protegerlo con un // TODO: no olvides... y la esperanza de que todos sigan siendo cuidadosos.
Haz
Haz la llamada peligrosa imposible de escribir — un valor por defecto, una barandilla, un tipo — para que el único camino que es fácil sea también el correcto.
Dónde se tuerce
El fallo común es apoyarse en la disciplina y la documentación para prevenir un error que un diseño podría haber hecho imposible — una advertencia en el README en lugar de un muro en el código. La disciplina se agota; el muro no. El fallo opuesto es construir el terreno tan empinado y estrecho que se convierte en una jaula, bloqueando el trabajo legítimo en nombre de la seguridad. Lo inevitable no es aprisionante — el buen camino debería sentirse sin esfuerzo, no forzado. Y recuerda el coste honesto: el trabajo inevitable suele ser más difícil de hacer que el impresionante, porque lograr que lo correcto sea lo fácil requiere más pasadas, no menos — y nadie notará las costuras que quitaste.
Ponlo en práctica
Toma un error que sigues cometiendo — el mismo desliz, el mismo paso olvidado. En lugar de resolver ser más cuidadoso, rediseña para que no pueda ocurrir: cambia el valor por defecto, añade la barandilla, reconfigura la cosa para que el movimiento equivocado simplemente no esté disponible. Si lo logras, dejarás de pensar en ello por completo — que es exactamente cómo sabrás que se volvió inevitable en lugar de impresionante.
De mi propia práctica, y de la idea del “pozo del éxito” (Rico Mariani; popularizada por Jeff Atwood) — haz que lo correcto sea lo fácil.