Tutorial · práctica de ingeniería

De RFC a ADR: Alcanzando la Decisión y Manteniendo el Razonamiento

Todos están de acuerdo en que los ADR son buenos. Casi nadie los mantiene actualizados, porque el debate y el registro viven en lugares diferentes. Cierra la brecha y el ADR se escribe solo.

AT
Argumentree Team
Engineering Practice
August 24, 2026
11 min leer

De RFC a ADR: Alcanzando la Decisión y Manteniendo el Razonamiento

Un RFC suele tratar sobre alcanzar un acuerdo; un ADR registra el acuerdo una vez alcanzado — y la razón por la que los ADR se deterioran es que el debate vive en los comentarios del chat y de las solicitudes de extracción mientras que el registro se escribe después, de memoria, por una persona. Para ejecutar el flujo de RFC a ADR de modo que el registro se desprenda del debate: declara la propuesta como una afirmación raíz (el título del futuro ADR); añade contexto como argumentos pro separados para que cada fuerza pueda ser desafiada individualmente; da a cada opción considerada su propio nodo hermano con sus propios pros y contras — incluyendo las rechazadas; ejecuta la ronda de comentarios del RFC como cadenas (cadenas de preguntas y respuestas para aclaraciones, cadenas de revisión para objeciones — cada una un diálogo de cuatro turnos entre el revisor y el autor de la opción, con N revisores significando N cadenas paralelas; cadenas de compromiso para reconciliar divisiones, donde una cadena completada registra el intento, ya sea que se haya resuelto o no); haz que los tomadores de decisiones califiquen las opciones como evidencia de dónde estaba la sala — la calificación no es la decisión, un humano nombrado aún la llama; registra las consecuencias aceptadas como hijos contrarios de la opción elegida; y modela la sustitución vinculando una decisión posterior a la que reemplaza, manteniendo la anterior legible. La siembra a partir de ADRs markdown existentes o transcripciones con mucho contenido de decisiones funciona a través de extracción de IA con procedencia sellada. Límites honestos: esto no reemplaza los ADRs rastreados por el repositorio (exporta y compromete el registro); no hay un campo de estado de ADR incorporado, por lo que propuesto/aceptado/sustituido es una convención que mantienes; una cadena completada no significa que las partes estén de acuerdo — lo que precisamente hace que el desacuerdo y compromiso sea legible.

Share:
Resumen

Un RFC suele tratar sobre alcanzar un acuerdo; un ADR registra el acuerdo una vez alcanzado. Los ADR se deterioran porque el proceso de alcanzar un acuerdo ocurre en el chat y el registro se realiza más tarde, de memoria. Ejecuta ambos en una sola estructura:

  • La propuesta es una reclamación raíz; las fuerzas contextuales son separadas, argumentos pro desafiables; cada opción — incluidas las rechazadas — obtiene su propio nodo.
  • La ronda RFC son cadenas: Preguntas y respuestas para aclarar, Revisión para objetar, Compromiso para reconciliar — diálogos de cuatro turnos, N revisores = N cadenas paralelas
  • La calificación no es la decisión: los tomadores de decisiones califican como evidencia; un humano nombrado lo llama — y escribe por qué, especialmente en contra de la sala.
  • El ADR es el árbol: nada se transcribe, por lo que nada se pierde en la transcripción — exporta al repositorio si tu organización lo requiere

La decisión que nadie pudo reconstruir

El nuevo líder técnico hace una pregunta razonable: ¿por qué cada servicio se comunica con el sistema de facturación a través de esa cola? Hay un ADR — ADR-014, cuatro oraciones, escrito hace once meses. Contexto: "necesitábamos una integración de facturación confiable." Decisión: "usar la cola." Consecuencias: "algo de latencia añadida." Técnicamente es un registro. No responde nada.

Estuviste allí, así que sabes lo que ADR-014 no dice: la discusión de tres semanas a través de dos canales de Slack y un hilo de PR acalorado; la opción de API sincrónica que perdió debido a un límite de tasa que desde entonces se ha elevado; la objeción del ingeniero de personal que fue respondida con un punto de referencia que nadie puede encontrar ahora. El debate ocurrió. El registro fue escrito después, de memoria, por una persona, un viernes.

Este es el modo de fallo documentado, casi universal, de una práctica genuinamente buena. La guía prescriptiva de AWS y los documentos Well-Architected de Microsoft recomiendan ambos los ADR — y ambos señalan el dolor: mantenerlos actualizados lleva tiempo, y gestionarlos se vuelve complejo a medida que los equipos y las opciones se multiplican. La causa raíz es estructural: el debate y el registro viven en lugares diferentes, por lo que el registro siempre es una transcripción con pérdida. La solución es hacer que sean el mismo lugar. Tampoco es una práctica específica de ingeniería, ni siquiera específica de ADR. Google requiere un documento de diseño — problema, enfoque propuesto, alternativas consideradas, compensaciones — escrito y revisado antes de que comience un trabajo técnico significativo, una práctica establecida en el propio Software Engineering at Google de la empresa. Es la misma disciplina que un ADR, aplicada un paso antes: el ADR registra la elección a la que un documento de diseño llegó tras argumentar. Ambos fallan de la misma manera por la misma razón, y ambos se solucionan con el mismo movimiento: mantener el argumento donde vive el registro, en lugar de transcribir uno en el otro después. Lee cada paso a continuación como si cubriera ambos artefactos.

Por qué se pudren los ADRs

Una frase del propio material de la comunidad ADR lleva todo el diagnóstico: un RFC suele tratar sobre alcanzar un acuerdo; un ADR registra el acuerdo una vez alcanzado. Dos artefactos, dos momentos — y todo lo que hay entre ellos se filtra. Las alternativas que eran "obviamente" incorrectas no se registran (hasta que dejan de ser obvias). La objeción que dio forma al diseño final sobrevive solo como un comentario en PR en un hilo cerrado. La sección de contexto se escribe al final, de la peor manera, por quien perdió el juego de no ser. Reuniones que deberían haber producido decisiones producen resúmenes en su lugar, y el razonamiento que hace que una decisión sea duradera — la cosa de la que depende toda la cadena de calidad de decisiones — es exactamente lo que la transcripción deja caer.

Lo que necesitas

Una discusión de Argumentree por RFC. Si tienes un corpus existente de ADRs en markdown o una transcripción de reunión con muchas decisiones, súbelo: la extracción de IA lo convierte en argumentos estructurados a favor y en contra con los pasajes de origen adjuntos, marcados como extraídos para que las afirmaciones importadas nunca se confundan con las actuales (cómo funciona la extracción).

Paso 1–3: La propuesta, el contexto, las opciones

  1. 1Declara la propuesta como la afirmación raíz — la decisión propuesta, no una pregunta: "Enrutaremos todas las escrituras de facturación a través de una cola duradera." Esta oración es el título del futuro ADR. Punto de control: la raíz existe, una oración, escrita por el proponente.
  2. 2Contexto como argumentos pro separados. Cada fuerza que hace necesaria la decisión — el requisito de fiabilidad, el límite de tarifa del sistema de facturación, el mandato de auditoría — es su propio argumento bajo la raíz. Un párrafo monolítico de "Contexto" no puede ser impugnado; tres afirmaciones de contexto separadas pueden ser cuestionadas, confirmadas o derribadas individualmente. Punto de control: ≥2 argumentos de contexto, cada uno una fuerza.
  3. 3Cada opción tiene su propio nodo. La cola, la API síncrona, el trabajo por lotes — argumentos hermanos, cada uno con sus propios pros y contras. El pro/con es relativo al padre, por lo que las desventajas de una opción dependen de esa opción, no de la decisión. Incluye las opciones que esperas rechazar: el hermano rechazado es lo que responde al "¿por qué no simplemente…?" del próximo año. Punto de control: existe cada opción sobre la que un lector podría preguntar.

Paso 4–6: La ronda RFC que deja un registro

Ahora la ronda de revisión — normalmente la parte que se dispersa en chats, comentarios y pasillos. Aquí se presenta como tres tipos de intercambio estructurado, cada uno un diálogo de cuatro turnos entre un revisor y el autor de la opción:

Cadena de preguntas y respuestas — aclarar

"¿Qué pasa con los clientes síncronos existentes?" El autor de la opción responde, el revisor hace un seguimiento, el autor responde de nuevo — completo. Ninguna opción debería llevar una pregunta sin respuesta a la decisión.

Cadena de revisión — objeto

Un revisor evalúa una opción como insostenible; el autor responde; seguimiento; respuesta. N revisores = N cadenas paralelas sobre la misma opción — cada objeción es su propio intercambio atribuible, no un comentario perdido en un hilo compartido.

Cadena de compromiso — reconciliar

¿Dos campos divididos? Uno propone la opción intermedia al otro autor. Si se resuelve, tienes un nuevo nodo de opción. Si no, la cadena completada es el registro de que se intentó — lo cual vale casi tanto.

Completado ≠ acordado

Una cadena que llega a completada significa que el intercambio siguió su curso — pregunta formulada y respondida dos veces — no que las partes estuvieran de acuerdo. Mantén esa distinción; a punto está de importar.

Paso 7: Decidiendo — y lo que la calificación no es

Los tomadores de decisiones califican las opciones: cada una etiquetada con una calificación. La distribución es evidencia genuina — donde se encontraba la sala, en el registro, antes de la llamada. Pero la calificación no es la decisión. Un humano nombrado aún decide, y si la llamada va en contra de la distribución, el nodo de decisión es donde eso se explica. (Quién debería ser ese humano nombrado, y cómo asignar el rol antes del debate en lugar de después, es su propia disciplina — consulta el tutorial sobre derechos de decisión.)

La pregunta para tu equipo

¿Quién decidió tu última llamada arquitectónica — y puedes probarlo? No quién estuvo en la reunión: ¿quién tomó la decisión y dónde está escrita su justificación?

Paso 8–9: El ADR que no tuviste que escribir

Aquí está la recompensa. El registro no es un documento que escribes después — es el nodo de la opción elegida más todo lo que ya está adjunto a él: los argumentos de contexto (Context), los hermanos rechazados (Options Considered), las cadenas completadas (la discusión, con autores), las calificaciones (dónde estaba la sala), y el argumento de decisión con su justificación (Decision). Nada se transcribe, por lo que nada se pierde en la transcripción.

  1. 1Registra las consecuencias que estás aceptando. Los inconvenientes conocidos —la latencia adicional, la carga operativa de la cola— se consideran como hijos de la opción elegida, reconocidos por el decisor. Escribirlos es lo que convierte esto en una decisión en lugar de una preferencia. Punto de control: ≥1 consecuencia aceptada en el registro.
  2. 2Exporta si tu organización requiere ADRs rastreados por el repositorio. Muchas lo hacen, correctamente: el ADR en markdown junto al código permanece como el artefacto de cumplimiento. Escribe el resumen de cuatro secciones del árbol (cinco minutos, no un viernes), enlaza de vuelta a la discusión para el debate completo. Punto de control: el ADR del repositorio cita el árbol; el árbol contiene el razonamiento.

Disentir y comprometerse, en el registro

El patrón que Amazon hizo famoso — discrepar y comprometerse — tiene un problema de legibilidad: ¿cómo puede alguien saber más tarde que la discrepancia fue real, escuchada y respondida, en lugar de ser ignorada? La mecánica de la cadena lo responde. Una cadena de Revisión que completó sus cuatro turnos y finalizó sin acuerdo es precisamente el recibo: se presentó la objeción, se respondió, se insistió y se respondió nuevamente, en el registro, antes de que el disidente se comprometiera. El disidente está documentado como que fue escuchado — lo que hace que comprometerse después sea razonable en lugar de meramente obediente.

No interpretes la finalización como consenso.

Completado significa que el intercambio terminó, no que alguien cambió de opinión. Si informas la finalización de la cadena como un acuerdo, fabricarás un falso consenso y quemarás la confianza que el mecanismo existe para construir. La lectura honesta: consultado, respondido, aún opuesto, comprometido de todos modos — los cuatro hechos visibles.

Paso 10: Sustitución sin eliminar

Las decisiones envejecen. Cuando se eleva el límite de tasa que eliminó la opción sincrónica, el movimiento correcto es una nueva decisión que hace referencia a la que reemplaza — un nuevo argumento vinculado al nodo de ADR-014, indicando qué cambió. La antigua decisión permanece legible; su razonamiento es exactamente la razón por la cual la nueva decisión sabe qué está anulando.

Una brecha honesta a gestionar explícitamente: no hay un campo de estado ADR incorporado. Propuesto / aceptado / sustituido no es un estado de primera clase en un argumento; la sustitución se modela mediante enlaces, y la convención es tuya para mantener. Establece esto en el acuerdo de trabajo de tu equipo en lugar de asumir que el producto lo impone.

Limitaciones honestas

  • Esto no reemplaza los ADR en tu repositorio si tu organización los requiere versionados junto al código. Exporta y confirma el resumen; utiliza el árbol para la parte en la que markdown es deficiente: el debate.
  • No hay campo de estado ADR. Propuesto/aceptado/sustituido es una convención de enlace que mantienes, no algo que el producto impone.
  • Una cadena son cuatro vueltas. Una profunda discrepancia arquitectónica necesitará una llamada; la cadena es el registro de lo que ya se intentó antes.
  • Las calificaciones son un único valor etiquetado, no una puntuación ponderada de múltiples criterios.
  • No hace que nadie escriba un buen contexto. La estructura reduce el costo de un buen registro; no proporciona el juicio.

Lecciones prácticas

  • Un RFC, una discusión. Resiste al mega-árbol que cubre toda la arquitectura del trimestre: los enlaces de supersesión conectan decisiones mejor que la anidación.
  • Semilla de lo que existe. Un transcrito cargado de decisiones o tu antigua carpeta ADR, extraída, le da al debate un buen comienzo — etiquetado como importado, para que los argumentos en vivo permanezcan distinguibles.
  • Ponga los nombres de los revisores en sus cadenas y déjelos allí. La atribución es la responsabilidad; las objeciones arquitectónicas anónimas se convierten en folclore con el tiempo.
  • La sección de consecuencias es del decisor, de nadie más. Los inconvenientes aceptados escritos por la persona que los aceptó tienen un peso diferente al de las advertencias de un revisor.

ADR-014, la versión que responde

Volviendo a la pregunta del nuevo líder técnico. En la versión reconstruida, ADR-014 es un nodo: la decisión de la cola con su justificación, tres fuerzas contextuales (una ahora obsoleta — visiblemente), un hermano de API sincrónica rechazado cuyo nombre fatal menciona el antiguo límite de tasa, cuatro cadenas de revisión completadas, incluida la del ingeniero de personal, y el punto de referencia adjunto como evidencia. El líder técnico lee durante diez minutos, ve que el límite de tasa ha cambiado y abre una propuesta que sustituye a la antigua nodo. Nadie excava en Slack. Esa es toda la promesa: las cadenas alcanzan el acuerdo, el árbol lo registra — y el registro responde preguntas que no sabías que se harían.

Fuentes y lecturas adicionales

Preguntas Frecuentes

¿Cuál es la diferencia entre un RFC y un ADR?

Un RFC (solicitud de comentarios) es el proceso de llegar a un acuerdo: se circula una propuesta, se argumentan alternativas, se plantean y responden objeciones. Un ADR (registro de decisiones de arquitectura) documenta el acuerdo una vez alcanzado: contexto, opciones consideradas, decisión, consecuencias, estado. El modo de fallo de ejecutarlos como artefactos separados es que todo lo que hay entre ellos se filtra: el debate vive en el chat y en los comentarios de PR mientras que el registro se escribe después de memoria. Ejecutar el RFC como un árbol de argumentos estructurado hace que el ADR surja del propio debate: nada se transcribe, por lo que nada se pierde en la transcripción.

¿Por qué los ADR se vuelven obsoletos o dejan de escribirse?

Porque escribirlos es un trabajo de transcripción. El razonamiento genuino ocurre en hilos de Slack, comentarios de revisión y reuniones; después, una persona reconstruye una sección de Contexto de memoria, generalmente de manera breve y al final. Las propias guías de AWS y Microsoft señalan el problema: los ADRs llevan tiempo para escribir y actualizar, y la gestión se vuelve compleja a medida que las decisiones se multiplican. Los equipos no dejan de creer en los ADRs; dejan de pagar el impuesto de transcripción. Hacer que el debate y el registro sean la misma estructura elimina el impuesto.

¿Cómo se lleva a cabo una ronda de revisión de RFC con un registro?

Tres movimientos estructurados, cada uno un diálogo de cuatro turnos con el autor de la opción. Cadenas de preguntas y respuestas para aclaraciones: pregunta, respuesta, seguimiento, respuesta. Cadenas de revisión para objeciones: evaluación, respuesta, seguimiento, respuesta — con N revisores abriendo N cadenas paralelas sobre la misma opción en lugar de un hilo compartido, de modo que cada objeción permanezca atribuible y respondida. Cadenas de compromiso para divisiones: un lado propone la posición intermedia al otro, y ya sea que se resuelva o no, la cadena completada registra que se intentó. El punto de control antes de decidir: ninguna opción lleva una pregunta sin respuesta, y cada objeción sustantiva existe como una cadena completada.

¿Cómo funciona 'discrepar y comprometerse' con los registros de decisiones?

La mecánica de la cadena la hace legible. Una cadena de revisión que sigue su curso completo —objeción, respuesta, seguimiento, respuesta— y se completa sin acuerdo es el recibo de que la disidencia fue real, escuchada y respondida antes de que el disidente se comprometiera. Críticamente, completado no significa acordado: significa que el intercambio terminó. Reportar la finalización como consenso fabrica un falso acuerdo y destruye el valor del mecanismo. El registro honesto muestra cuatro hechos a la vez: consultado, respondido, aún opuesto, comprometido de todos modos —lo cual es exactamente lo que hace que el compromiso después de la discrepancia sea razonable.

¿Deben los registros de decisiones reemplazar a los ADR en el repositorio de código?

No, y este tutorial lo dice explícitamente. Si tu organización requiere ADRs controlados por versiones junto al código (muchas lo hacen, correctamente, por cumplimiento y acceso sin conexión), manténlos: escribe el resumen en markdown de cuatro secciones del árbol en cinco minutos y enlázalo de nuevo a la discusión. La división del trabajo es clara: el ADR del repositorio es el artefacto de cumplimiento duradero; el árbol contiene lo que el markdown no maneja bien: el debate en vivo, las opciones rechazadas con su razonamiento, las objeciones y sus respuestas, y las calificaciones.

¿Cómo marcas un ADR como sustituido?

Por convención, no por un campo — y vale la pena ser honesto en que no hay un estado propuesto/aceptado/sustituido incorporado en un argumento. Modela la sustitución creando la nueva decisión como su propio argumento vinculado al que reemplaza, indicando qué cambió (el límite de tasa elevado, el nuevo requisito). La decisión antigua sigue siendo legible — eliminarla destruiría exactamente el razonamiento al que la nueva decisión necesita hacer referencia. Establece la convención en el acuerdo de trabajo de tu equipo para que se mantenga deliberadamente.

Deja de transcribir decisiones. Empieza a guardarlas.

Ejecuta tu próximo RFC como un árbol: opciones con su razonamiento, objeciones como cadenas respondidas y un ADR que se escribe solo.

Comienza una prueba gratuita de 14 días
No se requiere tarjeta de crédito

Artículos relacionados