Módulo 6: Diseñar para el cambio
Mantener las puertas abiertas
Descripción
La lección anterior instaló que la arquitectura es un flujo que va a recibir cambios. Esta lección responde una pregunta que sale directo de ahí: si el sistema va a recibir un cambio incierto —uno que quizá venga, quizá no—, ¿cuánto vale dejar una puerta abierta para él? La respuesta viene de una idea potente que la ingeniería tomó prestada de las finanzas: la optionality. Una opción es el derecho, pero no la obligación, de hacer algo en el futuro. Y una opción tiene valor aunque nunca la ejerzas, del mismo modo que un seguro contra incendios tiene valor aunque tu casa nunca se incendie: pagas una prima para tener la posibilidad de reaccionar barato si el evento incierto ocurre. En arquitectura, mantener una puerta abierta —una costura, una abstracción, un contrato— es comprar una opción sobre un cambio futuro.
Pero —y esto es lo que separa la optionality de un cliché sobre "ser flexible"— la opción cuesta una prima, y esa prima no siempre vale la pena. Comprar la opción tiene sentido cuando el cambio es bastante probable y bastante caro de improvisar; se convierte en desperdicio cuando el cambio es tan improbable que la prima nunca se recupera. Un arquitecto que compra todas las opciones para todo cambio imaginable termina pagando primas por seguros que nunca cobrará —eso es el over-engineering de la lección 5—. Un arquitecto que no compra ninguna se pinta en una esquina cuando el cambio probable llega —el under-engineering de la lección 6—. Esta lección te da la herramienta para decidir: el punto de equilibrio de una opción, calculado, que dice cuándo la prima se paga sola y cuándo se tira.
Conexión con el módulo. Es la segunda pieza de la postura (la primera: la arquitectura es un flujo; esta: mantener opciones abiertas bajo incertidumbre; la tercera: construir para tirar). La optionality es la lente económica que hace mensurable la intuición de "dejar puertas abiertas". Y prepara el terreno de los dos abismos: el punto de equilibrio que calculas aquí es exactamente la línea que separa el over-engineering (comprar la opción cuando su probabilidad no la justifica) del under-engineering (no comprarla cuando sí). Frontera con la guía hermana: la mecánica de clasificar una decisión como puerta de una o de dos vías —cuándo una decisión es reversible— es architecture-decisions; aquí trabajamos la postura de valorar la puerta abierta y saber cuánto vale mantenerla.
Una analogía: la casa con muros que se mueven contra la que fijó todo en concreto
Vuelve a la casa, pero ahora enfoca un solo detalle: los muros interiores.
La casa que fijó todo en concreto. Al construirla, el dueño decidió que cada muro interior fuera de concreto armado, sólido, definitivo. Es más barato de una: no hay que pensar en refuerzos móviles ni en tabiques desmontables, se cuela el concreto y listo. La casa queda perfecta para la distribución que el dueño imaginó ese día. El problema aparece cuando la vida cambia: quiere unir la cocina y el comedor en un espacio abierto, o convertir dos cuartos chicos en uno grande para un estudio. Cada uno de esos cambios choca contra un muro de concreto, y tumbar concreto armado es una obra mayor —polvo, estructura, permisos, una fortuna—. El dueño no compró ninguna opción sobre la distribución futura; ahorró la prima, y cuando el cambio llegó, pagó el precio completo de la reforma.
La casa con muros no estructurales. Otro dueño, al construir, hizo algo que costó un poco más: los muros interiores que no sostienen el techo los hizo de tabique ligero, desmontable, en vez de concreto. Pagó una prima —esos muros costaron algo más que colar concreto—. A cambio, compró una opción: la posibilidad de reconfigurar el interior barato en el futuro. Cuando quiere el espacio abierto, un muro no estructural se quita en un día; cuando quiere el estudio, dos cuartos se unen en un fin de semana. No demolió nada estructural, no pidió permisos mayores, no gastó una fortuna. Y aquí está el matiz honesto: si nunca hubiera querido cambiar la distribución, la prima que pagó por los muros ligeros habría sido dinero tirado —habría pagado por una flexibilidad que no usó—. La opción valió la pena porque el cambio era probable; si hubiera sido casi imposible, no.
Aquí está el punto: una opción abierta —el muro que se mueve— tiene valor cuando el futuro es incierto y el cambio es bastante probable, pero cuesta una prima que se desperdicia si el cambio no llega. La maestría no es "haz todos los muros móviles" (over-engineering: pagarías la prima en toda la casa, incluso donde nunca reconfigurarás) ni "haz todo de concreto" (under-engineering: barato hoy, carísimo el día que quieras cambiar); es saber cuáles muros conviene dejar móviles —los de las zonas donde probablemente reconfigurarás— y cuáles fijar. En Mercado, un "muro móvil" es una abstracción sobre el proveedor de pagos, una interfaz entre catálogo y pedidos, un contrato que deja intercambiar una pieza. Esta lección te da la calculadora para decidir cuáles dejar móviles: el punto de equilibrio de la opción.
Ejemplo trabajado: el valor de una opción y su punto de equilibrio
Vamos a poner número al valor de una puerta abierta. Modelamos una decisión de Mercado ante un cambio incierto —uno que puede llegar con probabilidad p—, y comparamos dos posturas:
rigid— no compra la opción. No paga nada por adelantado (ahorra la prima). Pero si el cambio llega, tiene que pagar el rework completo: reescribir, porque nada estaba postulado para moverse. Es la casa de concreto.flexible— compra la opción. Paga una prima por adelantado (construye la costura, la abstracción, el muro móvil) y, si el cambio llega, solo paga una adaptación barata a través de esa costura. Es la casa de muros ligeros.
El costo esperado de cada postura depende de la probabilidad del cambio. rigid no paga nada a menos que el cambio llegue, y entonces paga caro: su costo esperado es p × rework_completo. flexible paga la prima siempre, y si el cambio llega paga una adaptación chica: su costo esperado es prima + p × adaptación. El cruce entre esas dos rectas es el punto de equilibrio: la probabilidad a partir de la cual comprar la opción sale más barato que arriesgarse a reescribir.
# Optionality: mantener una opcion abierta tiene VALOR cuando el futuro es incierto,
# aunque nunca la ejerzas. Un cambio no previsto puede llegar con probabilidad p.
# rigid : no paga nada por adelantado; si el cambio llega, paga el rework COMPLETO
# (reescribir, porque nada estaba disenado para moverse).
# flexible : paga una PRIMA por adelantado (una costura/abstraccion que deja la
# puerta abierta) y, si el cambio llega, solo paga una adaptacion barata.
FULL_REWORK = 80000 # R: rehacer desde cero si no habia costura
ADAPT_THRU_SEAM = 8000 # A: adaptar a traves de la costura si la habia
OPTION_PREMIUM = 6000 # C: lo que cuesta construir la costura por adelantado
def expected_rigid(p):
return p * FULL_REWORK
def expected_flexible(p):
return OPTION_PREMIUM + p * ADAPT_THRU_SEAM
breakeven = OPTION_PREMIUM / (FULL_REWORK - ADAPT_THRU_SEAM)
print(f"{'p(cambio)':>10}{'rigid':>12}{'flexible':>12} quien gana")
print("-" * 52)
for p in [0.05, 0.10, 0.20, 0.40, 0.60]:
r = expected_rigid(p)
f = expected_flexible(p)
winner = "flexible" if f < r else "rigid"
print(f"{p:>10.2f}{r:>12,.0f}{f:>12,.0f} {winner}")
print("-" * 52)
print(f"Punto de equilibrio: p = {breakeven:.3f} ({breakeven * 100:.1f}%).")
print(f"Por DEBAJO de {breakeven * 100:.1f}% de probabilidad, la prima de la opcion se")
print("desperdicia (rigid gana): construir la costura seria over-engineering.")
print("Por ENCIMA, la opcion vale su prima: el cambio es bastante probable para")
print("que dejar la puerta abierta salga mas barato que reescribir.")
Qué esperar. Al correr el archivo, la salida es exactamente esta:
p(cambio) rigid flexible quien gana
----------------------------------------------------
0.05 4,000 6,400 rigid
0.10 8,000 6,800 flexible
0.20 16,000 7,600 flexible
0.40 32,000 9,200 flexible
0.60 48,000 10,800 flexible
----------------------------------------------------
Punto de equilibrio: p = 0.083 (8.3%).
Por DEBAJO de 8.3% de probabilidad, la prima de la opcion se
desperdicia (rigid gana): construir la costura seria over-engineering.
Por ENCIMA, la opcion vale su prima: el cambio es bastante probable para
que dejar la puerta abierta salga mas barato que reescribir.
Lee la tabla de arriba a abajo, siguiendo cuál postura gana en cada fila, porque el cambio de ganador es todo el argumento.
Con p = 0.05 (5% de probabilidad), gana rigid. El cambio es tan improbable que pagar la prima de 6000 por la opción no se recupera: rigid cuesta 4000 esperados (5% de arriesgarse a los 80000) contra 6400 de flexible. Aquí, comprar la opción sería tirar dinero —la casa de muros ligeros para una distribución que casi seguro no vas a cambiar—. Este es el territorio del over-engineering: por debajo del punto de equilibrio, dejar la puerta abierta es un desperdicio.
A partir de p = 0.10 (10%), gana flexible, y la ventaja crece rápido. Con 10%, flexible cuesta 6800 contra 8000 de rigid —ya conviene la opción—. Con 40%, la diferencia es brutal: 9200 contra 32000. Con 60%, 10800 contra 48000. Fíjate en el patrón: el costo de flexible crece despacio (de 6800 a 10800 cuando p va de 10% a 60%), porque cada vez que el cambio llega solo paga la adaptación barata. El costo de rigid crece rápido (de 8000 a 48000), porque cada vez que el cambio llega paga el rework completo. Mientras más probable el cambio, más obvia la ventaja de haber comprado la opción.
Y en el medio está el número que hace útil todo esto: el punto de equilibrio, p = 8.3%. Ese 8.3% no es una opinión; sale de la fórmula prima / (rework − adaptación) = 6000 / (80000 − 8000). Debajo de 8.3% de probabilidad, no compres la opción (rigid gana). Encima, cómprala (flexible gana). Ese umbral es la herramienta que este módulo te da para no discutir "flexibilidad" en abstracto: ante cualquier cambio incierto, estimas su probabilidad, la comparas con el punto de equilibrio, y decides. La optionality deja de ser una virtud vaga y se vuelve una cuenta.
Fíjate en lo que el punto de equilibrio revela sobre los dos abismos del módulo, porque los une en una sola línea. El over-engineering es comprar opciones por debajo de su punto de equilibrio —pagar primas por cambios demasiado improbables—. El under-engineering es no comprar opciones por encima de su punto de equilibrio —negarse a pagar una prima barata por un cambio bastante probable, y pagar el rework completo cuando llega—. El arquitecto que diseña para el cambio no es "el que deja muchas puertas abiertas" ni "el que las deja todas cerradas"; es el que compra cada opción cuya probabilidad supera su punto de equilibrio, y ninguna otra. Las lecciones 5, 6 y 7 desarrollan cada lado; esta lección te dio la línea que los separa.
Como rectas, el cruce se ve así:
Costo esperado (USD) segun la probabilidad del cambio
48,000 | rigid /
| /
32,000 | /
| /
16,000 | /
8,000 | / ......................... flexible (crece despacio)
|___/____:_______________________________________
0% 8.3% 20% 40% 60% -> p(cambio)
rigid gana | flexible gana
(over-eng | (dejar la puerta abierta se paga sola)
comprar |
aqui) |
Profundización: la optionality como seguro, y su prima
Vale la pena hacer explícita la analogía con las finanzas y el seguro, porque aclara por qué la optionality no es lo mismo que "flexibilidad" a secas y por qué tiene un precio que hay que respetar.
Una opción financiera es el derecho a comprar o vender algo a un precio fijo en el futuro, sin la obligación de hacerlo. Vale dinero porque te da la posibilidad de reaccionar si el mundo se mueve a tu favor, protegiéndote si se mueve en contra. Y cuesta una prima por adelantado: pagas hoy por el derecho de decidir mañana con más información. Un seguro es la misma estructura: pagas una prima anual por el derecho a que te cubran si ocurre el evento incierto (el incendio, el choque). Nadie compra un seguro esperando cobrarlo; lo compra por el valor de estar cubierto ante la incertidumbre. Si el evento no ocurre, la prima "se pierde" —pero no fue un error pagarla, fue el precio de no estar expuesto a una catástrofe improbable pero costosa—.
En arquitectura, una costura es una opción y su costo de construcción es la prima. Dejar una abstracción sobre el proveedor de pagos es comprar la opción de cambiar de proveedor barato; la prima es el esfuerzo extra de diseñar esa abstracción hoy. Si nunca cambias de proveedor, la prima "se perdió" —pero, igual que el seguro, no necesariamente fue un error: dependía de la probabilidad—. Aquí está la disciplina que separa al arquitecto maduro del que solo repite "sé flexible": una opción solo vale la pena si su prima es menor que el valor esperado de la protección que da, y eso depende de tres cosas medibles —qué tan probable es el cambio (p), qué tan caro sería sin la opción (el rework completo), y qué tan cara es la prima (construir la costura)—. El punto de equilibrio es exactamente donde esos tres se balancean.
Esto explica por qué "sé flexible siempre" es un mal consejo, tan malo como "no seas flexible nunca". Comprar todas las opciones —dejar todos los muros móviles, abstraer todo, hacer todo configurable— es como asegurar tu casa contra la caída de un meteorito, un tsunami en el desierto y un ataque de dragones: pagas un montón de primas por eventos que no van a ocurrir, y el costo de todas esas primas juntas te arruina, aunque cada seguro individual "por si acaso" suene prudente. Ese es el over-engineering, y la lección 5 lo mide. La disciplina de la optionality no es comprar muchas opciones; es comprar las opciones correctas —aquellas cuya probabilidad de ejercerse supera su punto de equilibrio— y dejar cerradas las demás. El arquitecto no maximiza flexibilidad; maximiza el valor esperado, que es una cosa muy distinta.
Un matiz sobre la incertidumbre honesta. El punto de equilibrio depende de estimar p, la probabilidad del cambio, y esas estimaciones no son exactas —nadie sabe con precisión si Mercado abrirá un segundo país el año que viene—. Pero esto no invalida la herramienta; la hace más útil. Aunque no conozcas p al decimal, casi siempre puedes decir si está claramente por encima o claramente por debajo del punto de equilibrio. Si el negocio ya está hablando de expandirse a otro país, la probabilidad de necesitar multi-moneda está muy por encima de 8.3% —compra la opción, sin necesidad de precisión—. Si alguien propone abstraer el sistema "por si algún día Mercado se convierte en una red social", eso está muy por debajo —no la compres—. La herramienta no te pide adivinar p exacto; te pide ubicarlo respecto a un umbral, y eso casi siempre se puede. El punto de equilibrio convierte una discusión de opiniones ("deberíamos ser flexibles" / "no compliquemos") en una comparación con un número.
Errores comunes
Comprar la opción por debajo de su punto de equilibrio. Qué pasa: el arquitecto deja una puerta abierta —una abstracción, una capa de configuración, una costura— para un cambio tan improbable que la prima nunca se recupera; construye el muro móvil en una zona de la casa que nunca reconfigurará. Por qué pasa: "dejar la puerta abierta" suena siempre prudente, y cada opción individual "por si acaso" parece barata y sensata; el costo aparece cuando se suman muchas. Cómo detectarlo: si al preguntar "¿qué tan probable es de verdad este cambio?" la respuesta honesta es "casi nunca, pero por si acaso", estás comprando por debajo del equilibrio. Cómo corregirlo: estimar la probabilidad del cambio y compararla con el punto de equilibrio; si está claramente por debajo, no compres la opción —esa es la disciplina del YAGNI que la lección 5 desarrolla—. En el ejemplo, con p = 5%, rigid gana (4000 vs 6400): comprar la opción ahí es tirar la prima.
No comprar la opción por encima de su punto de equilibrio. Qué pasa: el arquitecto se niega a pagar una prima barata por un cambio bastante probable —"no compliquemos, hagámoslo directo"— y cuando el cambio llega, paga el rework completo; fijó todo en concreto en una zona que iba a reconfigurar. Por qué pasa: la prima se ve como complejidad innecesaria en el momento, y "hacerlo simple/directo" suena virtuoso; el costo del rework es futuro e invisible. Cómo detectarlo: si al preguntar "¿y si este cambio probable llega, cuánto cuesta?" la respuesta es "carísimo, habría que reescribir", y el cambio es probable, no compraste una opción que debías. Cómo corregirlo: pagar la prima barata por las opciones cuya probabilidad supera el equilibrio —esa es la costura que evita pintarse en una esquina, la lección 6—. En el ejemplo, con p = 40%, no comprar la opción cuesta 32000 contra 9200: negarse a la prima de 6000 fue carísimo.
Confundir "optionality" con "maximizar flexibilidad". Qué pasa: el arquitecto entiende que las opciones tienen valor y concluye "entonces hagamos todo flexible" —todo abstracto, todo configurable, todo intercambiable—, sin notar que cada opción cuesta una prima y que comprarlas todas arruina el presupuesto de complejidad. Por qué pasa: se lee la optionality como una virtud a maximizar, no como un cálculo de valor esperado a optimizar. Cómo detectarlo: si el sistema tiene abstracciones e indirecciones por todos lados, la mayoría con un solo caso de uso real, se maximizó flexibilidad en vez de valor. Cómo corregirlo: recordar que el arquitecto no maximiza opciones, maximiza el valor esperado —compra solo las opciones cuya probabilidad supera su punto de equilibrio—. Asegurar la casa contra dragones es prudente por opción individual y ruinoso en conjunto. La optionality bien entendida es selectiva por definición.
Ejercicios
Ejercicio 1 — ¿Comprar la opción? Para cada uno de estos cambios inciertos en Mercado, di si comprarías la opción (dejarías la costura) o no, comparando a ojo la probabilidad del cambio con la idea del punto de equilibrio, y justifica: (a) abstraer el proveedor de pagos, cuando finanzas ya está negociando con un segundo proveedor para el próximo trimestre; (b) dejar el sistema de catálogo preparado para soportar productos en 40 idiomas, cuando Mercado opera solo en un país hispanohablante y no hay planes de expansión; (c) dejar una interfaz entre orders y shipping en vez de una llamada directa, cuando el equipo ya sabe que shipping se va a extraer a un servicio el año que viene.
Ver solución
-
(a) Comprar la opción (dejar la abstracción de pagos). La probabilidad del cambio está altísima —finanzas ya está negociando el segundo proveedor para el próximo trimestre—, muy por encima de cualquier punto de equilibrio razonable. La prima de abstraer el proveedor es barata comparada con el rework de meter un segundo proveedor a un sistema que asumió uno solo. Es exactamente el caso
palto dondeflexiblegana por goleada. Compra la opción. -
(b) No comprar la opción (no preparar los 40 idiomas). La probabilidad es bajísima —un país hispanohablante, sin planes de expansión—: soportar 40 idiomas es asegurar la casa contra un tsunami en el desierto. La prima (la complejidad de un sistema de internacionalización completo) se desperdiciaría porque el cambio casi seguro no llega. Está muy por debajo del punto de equilibrio. No la compres —eso es over-engineering (lección 5)—. Nota el matiz: no necesitas conocer
pexacto; basta ver que está claramente por debajo del umbral. -
(c) Comprar la opción (dejar la interfaz). El equipo ya sabe que shipping se extrae el año que viene: la probabilidad es prácticamente 1. La prima de dejar una interfaz en vez de una llamada directa es mínima, y evita el rework de desenredar una llamada directa cuando shipping se vuelva un servicio de red. Muy por encima del equilibrio. Compra la opción —esta es la costura que evita pintarse en una esquina (lección 6)—.
El patrón: (a) y (c) son cambios probables → compra la opción; (b) es improbable → no la compres. La herramienta no te pide adivinar probabilidades exactas, solo ubicarlas respecto al umbral, y en los tres casos eso se puede hacer con claridad.
Ejercicio 2 — Mueve el punto de equilibrio. El punto de equilibrio del ejemplo es 8.3%, con una prima de 6000, un rework de 80000 y una adaptación de 8000. Sin correr código, razona qué le pasa al punto de equilibrio (sube o baja) en cada caso, y qué significa en términos de cuándo conviene comprar la opción: (a) la prima de construir la costura sube a 30000 (una abstracción muy compleja); (b) el rework completo sube a 200000 (un cambio que tocaría medio sistema).
Ver solución
La fórmula del punto de equilibrio es prima / (rework − adaptación).
-
(a) Prima sube a 30000. El punto de equilibrio sube:
30000 / (80000 − 8000) = 30000 / 72000 = 0.417, o sea 41.7%, contra el 8.3% original. Significado: cuando la opción es cara de construir, el cambio tiene que ser mucho más probable (41.7% en vez de 8.3%) para que comprarla valga la pena. Una costura cara solo se justifica para cambios bastante seguros. Esto es intuitivo: pagar una prima alta por un seguro solo tiene sentido si el evento es bastante probable. Muchas costuras "flexibles" no valen la pena no porque el cambio sea improbable, sino porque la costura misma es demasiado cara —y entonces conviene la postura rígida y reescribir si acaso llega—. -
(b) Rework sube a 200000. El punto de equilibrio baja:
6000 / (200000 − 8000) = 6000 / 192000 = 0.031, o sea 3.1%, contra el 8.3% original. Significado: cuando reescribir sin la opción sería catastróficamente caro, comprar la opción se justifica incluso para cambios bastante improbables (basta 3.1% de probabilidad). Es la lógica del seguro contra catástrofes: aunque el incendio sea improbable, la prima vale la pena porque el daño sin cobertura sería ruinoso. Para cambios de impacto enorme, el umbral para "dejar la puerta abierta" es muy bajo.
La lección de los dos casos: el punto de equilibrio no es un número fijo; depende de la prima y del impacto. Costuras baratas que protegen contra reworks enormes se justifican casi siempre (umbral bajísimo); costuras caras que protegen contra reworks modestos casi nunca (umbral altísimo). Por eso la optionality es un cálculo, no una virtud.
Ejercicio 3 — El seguro contra dragones. Un arquitecto de Mercado defiende una capa de abstracción enorme diciendo: "siempre es bueno dejar puertas abiertas, nunca sabes qué va a pasar". Usando la analogía del seguro y la idea del valor esperado, explica por qué "siempre es bueno dejar puertas abiertas" es un principio equivocado, y cómo lo reformularía la disciplina de la optionality.
Ver solución
"Siempre es bueno dejar puertas abiertas" es equivocado por la misma razón que "siempre es bueno tener más seguros" es equivocado: cada puerta abierta cuesta una prima, y comprar primas sin mirar la probabilidad del evento te arruina. Asegurar tu casa contra incendio (probable, catastrófico) es prudente; asegurarla además contra meteoritos, tsunamis en el desierto y ataques de dragones es ruinoso —pagas un montón de primas por eventos que no van a ocurrir—, aunque cada seguro individual "por si acaso" suene sensato. Una capa de abstracción enorme "por si acaso" es el seguro contra dragones de la arquitectura: cada indirección que agrega tiene un costo (complejidad, primas), y comprarlas todas sin evaluar probabilidades produce un sistema caro y enredado cuya flexibilidad nadie usa. Ese es el over-engineering que mide la lección 5.
La disciplina de la optionality lo reformula así: el arquitecto no maximiza puertas abiertas; maximiza el valor esperado. Ante cada posible costura, pregunta tres cosas medibles —¿qué tan probable es el cambio (p)? ¿qué tan caro sería el rework sin la costura? ¿qué tan cara es la prima de construirla?— y compra la opción solo si su probabilidad supera el punto de equilibrio (prima / (rework − adaptación)). Eso convierte "nunca sabes qué va a pasar" —que suena a sabiduría pero es una excusa para no pensar— en una decisión concreta: para este cambio, con esta probabilidad estimada, ¿la prima se paga sola o se tira? A veces sí (compra la puerta), a veces no (déjala cerrada, reescribe si acaso). "Siempre" y "nunca" son las dos formas de no hacer la cuenta.
Resumen y siguiente paso
En esta lección instalaste la segunda pieza de la postura: la optionality, el valor de mantener las puertas abiertas bajo incertidumbre. Viste, con la casa de muros móviles contra la de concreto, que una opción abierta tiene valor aunque nunca la ejerzas —como un seguro— pero que cuesta una prima que se desperdicia si el cambio no llega. Y lo mediste: comparando la postura rigid (reescribir si el cambio llega) con la flexible (pagar la prima y adaptarse barato), encontraste el punto de equilibrio en 8.3% —por debajo, la opción se desperdicia (over-engineering); por encima, se paga sola—. Aprendiste que ese umbral une los dos abismos del módulo en una sola línea, que la optionality no es "maximizar flexibilidad" sino "maximizar valor esperado", y que la herramienta no te pide adivinar probabilidades exactas, solo ubicarlas respecto al umbral.
Antes de avanzar deberías poder: explicar por qué una opción tiene valor aunque no se ejerza, y por qué cuesta una prima; calcular a ojo si un cambio incierto de Mercado está por encima o por debajo de su punto de equilibrio; y refutar tanto el "sé flexible siempre" como el "no compliques nunca" con el argumento del valor esperado.
La lección 4 toma la tercera pieza de la postura, y es la más contraintuitiva: la arquitectura sacrificial. A veces la mejor manera de manejar la incertidumbre no es mantener una puerta abierta, sino construir a sabiendas algo que vas a tirar —un prototipo desechable que valida los requisitos reales y luego se reemplaza—. Vas a ver por qué eso no es desperdicio sino inversión, y a ejecutar cuándo el prototipo sale más barato que construir "de una". Con números, para que "constrúyelo para tirarlo" deje de sonar a herejía y sea una decisión medible.
Recursos
- Michael Feathers, Working Effectively with Legacy Code (Prentice Hall, 2004) — el libro que popularizó el concepto de seam (costura): el punto donde puedes alterar el comportamiento de un sistema sin editar en ese lugar. La costura como opción arquitectónica de esta lección viene de ahí. En inglés.
- Chris Matts y Olav Maassen, "Real Options Underlie Agile Practices" (InfoQ, 2007) — infoq.com/articles/real-options-enhance-agility. El texto que trajo la teoría de opciones reales al software: una opción tiene valor, cuesta una prima, y no debe ejercerse antes de tiempo. La base económica de esta lección. En inglés.
- Andrew Hunt y David Thomas, The Pragmatic Programmer, 20th Anniversary Edition (Addison-Wesley, 2019), tema "Reversibility" — sobre por qué el buen software mantiene opciones abiertas y evita las decisiones que cierran puertas caro. En inglés. La mecánica de clasificar decisiones por su reversibilidad (puertas de una/dos vías) es la guía hermana
architecture-decisions. - Martin Fowler, "Yagni" (2015) — martinfowler.com/bliki/Yagni.html. El complemento imprescindible: por qué comprar opciones por debajo de su punto de equilibrio (construir para futuros improbables) es el error del over-engineering, que la lección 5 desarrolla. En inglés.