Read in English · Lire en français · Auf Deutsch lesen
Sección 4.1 de 4.8 · Intermedio · 18 min de lectura
Por qué y cuánto documentar
Videolección
5 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
Todo sistema tiene una arquitectura, la ponga alguien por escrito o no. En esta lección verás quién lee la documentación de arquitectura y cómo decidir qué merece la pena escribir.
Piensa en la documentación de una casa. Un comprador quiere un plano de la planta, un electricista quiere el esquema de la instalación eléctrica y una aseguradora quiere el informe de tasación. Nadie quiere una lista de todos los ladrillos. Y un plano que muestra una pared que ya se ha derribado es peor que no tener ningún plano. Quien la reforme dentro de veinte años quiere saber por qué nunca se movió aquella pared. La documentación de arquitectura es igual: unos pocos documentos precisos que explican lo que el código no puede mostrar.
La descripción de arquitectura es el conjunto de documentos, diagramas y registros mediante los cuales las personas comparten una arquitectura. En un equipo de tres personas que trabajan juntas, gran parte de ella puede vivir en su cabeza. A medida que el equipo crece y la gente se va, eso se convierte en un riesgo. El libro Views and Beyond señala tres usos. La documentación forma a los recién llegados, transmite la comunicación entre las partes interesadas y es la base para el análisis. Un documento que no sirve a ninguno de ellos es un desperdicio.
Es el lector quien decide si la documentación ha funcionado, y los distintos lectores traen preguntas diferentes. Un recién llegado pregunta qué hace el sistema y por dónde empezar. Una visión general de una página y un diagrama de contexto son lo que mejor le sirve. El personal de operaciones pregunta dónde se ejecuta, de qué depende, cómo falla y cómo recuperarse. Necesita una vista de despliegue y runbooks. Los auditores quieren ver que las decisiones se tomaron de forma deliberada y que los cambios pueden rastrearse: registros de decisiones con fechas y responsables. Y los futuros responsables del mantenimiento se preguntan por qué demonios se hizo esto. Por encima de todo, necesitan la justificación.
El Manifiesto Ágil de 2001 valora el software que funciona por encima de la documentación exhaustiva. A menudo se cita como permiso para no documentar nada. Pero sus autores dicen que la documentación sigue teniendo valor. Es una prioridad para cuando ambos compiten. Lo que rechaza es la documentación como fin en sí misma: cientos de páginas aprobadas antes de escribir código y luego abandonadas. Así que apunta a lo justo y necesario. Un prototipo de dos personas necesita un archivo README y quizá un diagrama. Una plataforma de pagos regulada y gestionada por ocho equipos necesita mucho más. Y si los recién llegados no dejan de hacer la misma pregunta, pon la respuesta por escrito.
Esta cuadrícula te ayuda a decidir cómo documentar cualquier información. El eje vertical pregunta si puede recuperarse a partir del código. El eje inferior pregunta con qué frecuencia cambia. Arriba a la izquierda está lo que el código no puede decirte y que cambia poco: el contexto y el alcance, los objetivos de calidad y las decisiones con sus razones. Escríbelos a mano y consérvalos. Arriba a la derecha está lo que cambia con más frecuencia, como las vistas de contenedores y de despliegue y los escenarios clave de ejecución. Mantenlas junto al código y revísalas con cada cambio. Abajo a la derecha está lo que el código ya expresa y cambia a menudo, como los diagramas de clases y las referencias de interfaces. Genéralos en el pipeline, para que no puedan desviarse. Abajo a la izquierda está lo que puedes leer en el código y que cambia poco, como la pila tecnológica o los comandos de compilación. Basta con una breve referencia.
Apliquemos esto a una plataforma de reparto de comida con treinta ingenieros en cinco equipos y una auditoría a la vista. El arquitecto propone una breve visión general: el propósito, los usuarios, los objetivos de calidad por orden de prioridad y un orden de lectura para los recién llegados. Tiene un responsable concreto y una revisión trimestral. Hay dos diagramas C4, uno del contexto del sistema y otro de los contenedores, generados a partir de un modelo guardado en el repositorio. Hay una bitácora de decisiones de unos cuarenta registros breves. Cuando una decisión cambia, un registro nuevo sustituye al antiguo. Hay una vista de despliegue para cada entorno, diagramas de secuencia de los cuatro flujos que más importan y un runbook para cada alerta. Y los diagramas de clases, las listas de endpoints y los esquemas se generan, no se escriben a mano. Cada elemento tiene un lector, un responsable y un desencadenante de actualización.
Views and Beyond establece siete reglas para una documentación sólida, y casi todos los fallos incumplen alguna. El más común es la wiki obsoleta: cientos de páginas, en parte ciertas y sin forma de saber qué parte. El documento big-bang es una especificación de ciento veinte páginas, aprobada una vez y nunca vuelta a leer. Los diagramas sin leyenda dejan que cada lector invente un significado. Y un solo diagrama que mezcla una app móvil, una única clase y un proceso de negocio son varias vistas apelotonadas. Por último, el qué sin el porqué: una descripción completa de la estructura, sin ninguna justificación. Los equipos futuros no pueden saber qué restricciones son esenciales y cuáles fueron accidentes.
La sección completa expone las siete reglas, la documentación como código y una guía sobre qué poner por escrito. A continuación, en la sección cuatro punto dos, veremos por qué un solo diagrama nunca basta. Nos vemos allí.
Lo que necesitas saber
- Una descripción de arquitectura es el conjunto de documentos, diagramas y registros mediante los cuales las personas comparten una arquitectura; sirve para la formación, la comunicación entre las partes interesadas y el análisis.
- Los distintos lectores (recién llegados, desarrolladores, operaciones, seguridad, auditores, futuros responsables del mantenimiento y responsables de las decisiones) traen preguntas diferentes, por lo que la documentación debe organizarse en torno a los lectores y sus tareas.
- El Manifiesto Ágil valora el software que funciona por encima de la documentación exhaustiva, pero dice explícitamente que la documentación sigue teniendo valor; rechaza la documentación como fin en sí misma, no la documentación.
- Escribe a mano lo que no puede recuperarse a partir del código (el contexto, los objetivos de calidad, las decisiones y sus razones, los principios); genera lo que el código ya expresa y cambia a menudo.
- Las siete reglas de Views and Beyond: escribe para el lector, evita la repetición innecesaria, evita la ambigüedad, usa una organización estándar, registra la justificación, mantén la documentación al día pero no demasiado al día, y revísala para comprobar que es adecuada para su propósito.
- La documentación como código y la documentación viva mantienen la documentación bajo control de versiones, revisada junto con los cambios de código y derivada del sistema siempre que sea posible, lo que constituye la defensa más fiable contra la obsolescencia.
- Los antipatrones habituales son la wiki obsoleta, el documento big-bang que nadie lee, los diagramas sin leyenda, los niveles de abstracción mezclados y las descripciones que omiten el porqué.
Por qué hay que poner una arquitectura por escrito
Todo sistema tiene una arquitectura, la describa alguien o no (consulta la Sección 1.1). La descripción de arquitectura es otra cosa: los documentos, diagramas, modelos y registros de decisiones mediante los cuales las personas comparten un entendimiento de esa arquitectura. En un equipo de tres personas que trabajan juntas y escribieron cada línea, gran parte de la descripción puede vivir en su cabeza. En cuanto el equipo crece, alguien se va, se incorpora un segundo equipo, llega un auditor o el sistema sobrevive a sus autores, el conocimiento que solo existe en la cabeza de las personas se convierte en un riesgo. La definición de Ralph Johnson de la arquitectura como el entendimiento compartido de los desarrolladores expertos encierra una advertencia: un entendimiento que no está por escrito solo puede compartirse hablando, y hablar no escala.
Documenting Software Architectures: Views and Beyond (Paul Clements y sus colegas del Software Engineering Institute, 2.ª edición, 2010) señala tres usos de la documentación de arquitectura, y siguen siendo la forma más clara de pensar por qué merece la pena el esfuerzo. Forma: presenta el sistema a los nuevos miembros del equipo, a los revisores externos y a los nuevos arquitectos. Es el principal vehículo de comunicación entre las partes interesadas: desarrolladores, operadores, personal de seguridad y directivos discuten sobre el sistema a través de ella, y las decisiones alcanzadas en una reunión llegan a quienes no estuvieron presentes. Y es la base para el análisis y la construcción: indica a quienes implementan lo que pueden y no pueden hacer, y es lo que examina un evaluador cuando se pregunta si el sistema cumplirá sus objetivos de calidad (los métodos de evaluación del Capítulo 11 necesitan una descripción de la que partir).
De ello se derivan dos consecuencias. Primero, la documentación es un medio, no un fin: un documento que no sirve a ninguno de estos usos es un desperdicio, por bien formateado que esté. Segundo, es el lector quien decide si ha funcionado. Una descripción que su autor considera completa pero que un recién llegado no puede usar ha fracasado en la formación, y un diagrama que el equipo de operaciones no puede relacionar con los servidores reales ha fracasado en el análisis.
Quién lee la documentación de arquitectura y qué necesita
| Lector | Preguntas que trae | Lo que mejor le sirve |
|---|---|---|
| Recién llegados (nuevos desarrolladores, contratistas, un nuevo arquitecto) | ¿Qué hace este sistema, para quién y por dónde empiezo? ¿Cuáles son las partes principales y las palabras que usa la gente? | Una visión general de una página, un diagrama de contexto del sistema, un diagrama de contenedores, un glosario y un breve orden de lectura |
| Desarrolladores actuales | ¿Dónde encaja esta nueva funcionalidad? ¿De qué puedo depender? ¿Por qué está construido así y puedo cambiarlo? | Estructura de módulos o componentes, convenciones, conceptos transversales (gestión de errores, seguridad, logging) y registros de decisiones |
| Personal de operaciones y SRE | ¿Dónde se ejecuta, de qué depende, cómo falla y cómo nos recuperamos? | Vista de despliegue por entorno, dependencias externas, runbooks, monitorización y objetivos de recuperación |
| Personal de seguridad y privacidad | ¿Dónde están los límites de confianza? ¿Por dónde fluyen y dónde se almacenan los datos personales? ¿Quién puede llamar a qué? | Vistas de contexto y de flujo de datos, concepto de identidad y acceso, lista de servicios de terceros |
| Auditores y reguladores | ¿Se puede demostrar que los controles existen, que las decisiones se tomaron de forma deliberada y que los cambios son trazables? | Registros de decisiones con fechas y responsables, trazabilidad desde los requisitos hasta el diseño y las pruebas, historial de versiones |
| Futuros responsables del mantenimiento | ¿Por qué demonios se hizo esto? ¿Qué restricciones siguen vigentes? ¿Qué se puede eliminar sin riesgo? | Ante todo, la justificación: las decisiones con su contexto, las opciones rechazadas y los supuestos asumidos |
| Responsables de las decisiones (patrocinadores, responsables de producto y de ingeniería) | ¿Cuáles son los riesgos, los costos y las opciones? ¿Qué tengo que decidir y para cuándo? | Un resumen de una página, los objetivos de calidad, los principales riesgos y la deuda técnica, las decisiones pendientes de un responsable |
El software que funciona por encima de la documentación exhaustiva
El Manifiesto Ágil (2001) enumera cuatro pares de valores, uno de los cuales es Software que funciona por encima de la documentación exhaustiva
. Se cita, a menudo, como permiso para no documentar nada. Leído completo, el manifiesto dice algo más acotado. Sus autores afirman que, aunque valoran los elementos de la derecha, valoran más los de la izquierda. El valor es una prioridad para cuando ambos compiten, no un rechazo de la documentación.
Lo que el valor rechaza es el proyecto dirigido por la documentación de la década de 1990: cientos de páginas de especificaciones aprobadas antes de escribir el código, tratadas como un avance en sí mismas y abandonadas en cuanto el código se aparta de ellas. La palabra que importa es exhaustiva: una documentación que intenta describirlo todo, como fin en sí misma, y que se valora más que el sistema en funcionamiento. Nada en el manifiesto se opone a un diagrama de contexto, a un breve registro de por qué el equipo eligió la mensajería asíncrona o a un runbook que permite al ingeniero de guardia restablecer el servicio a las tres de la madrugada.
Los profesionales sí discrepan sobre hasta dónde llegar. Algunos coaches ágiles sostienen que la conversación y las pruebas casi siempre bastan, y que la documentación escrita de arquitectura se queda obsoleta antes de amortizarse. Otros, sobre todo quienes mantienen sistemas de larga vida o trabajan en sectores regulados, señalan que las personas que más necesitan la documentación (los sucesores, los auditores, el equipo de operaciones) son precisamente las que están ausentes de las conversaciones. Ambas posturas coinciden en la economía subyacente: la documentación tiene un costo de escritura, un costo de mantenimiento y un costo de lectura, y solo merece producirse donde su valor para los lectores supera esos costos.
Documentación justa y necesaria
La expresión de Scott Ambler "just barely good enough" (apenas lo bastante buena) describe el objetivo: un modelo o un documento es suficiente cuando cumple su propósito para su público, y el esfuerzo más allá de ese punto cuesta más de lo que aporta. Su idea de que es el público, y no el autor, quien decide si un artefacto es suficiente es el mismo principio que escribir para el lector. George Fairbanks hace el argumento equivalente para el trabajo de arquitectura en su conjunto en Just Enough Software Architecture (2010): haz tanto como justifiquen los riesgos (consulta la Sección 1.8).
Por tanto, la documentación justa y necesaria no es una cantidad fija. Crece con el tamaño y la vida útil del sistema, el número de equipos, la rotación de personas, el costo de un fallo y las exigencias de los reguladores. Un prototipo de dos personas necesita un README y quizá un diagrama. Una plataforma de pagos gestionada por ocho equipos bajo regulación financiera necesita vistas de contexto, de contenedores y de despliegue, una bitácora de decisiones que se remonte años atrás, conceptos de seguridad documentados y evidencias de que los documentos se revisan.
Una señal práctica es la pregunta repetida. Si los recién llegados preguntan lo mismo en su primera semana, o la misma discusión de diseño vuelve cada pocos meses, la respuesta debe ponerse por escrito. Otra es el error costoso: si un equipo incumplió una regla no escrita ("no llamar nunca al proveedor de pagos desde la app de restaurantes") porque nadie se la dijo, esa regla era arquitectura y debería haberse puesto por escrito.
Qué merece documentarse y qué no
La información difiere en dos aspectos que deciden cómo debe documentarse. El primero es si puede recuperarse a partir del código. Los nombres de las clases, las firmas de los métodos y las tablas de la base de datos pueden leerse en el código fuente en cualquier momento; las razones por las que se tomó una decisión, los objetivos de calidad a los que sirve el sistema y las opciones que se rechazaron no, porque nunca estuvieron en el código. El segundo es con qué frecuencia cambia. El propósito del sistema y sus principales socios externos cambian poco; la lista de clases de un módulo cambia cada semana.
La documentación de arquitectura escrita a mano debe concentrarse en lo que es a la vez importante y no recuperable a partir del código: el contexto y el alcance del sistema (quién lo usa y de qué otros sistemas depende), sus objetivos de calidad y restricciones, las decisiones clave y sus razones, la estructura de grano grueso (las principales partes desplegables y sus responsabilidades), el despliegue sobre la infraestructura, los escenarios de ejecución importantes y los conceptos transversales que toda parte debe seguir, como la forma de gestionar los errores, de autenticar a los usuarios y de proteger los datos personales. Esta lista se parece mucho a la estructura de la plantilla arc42, que se trata en la Sección 4.6.
Lo que no merece escribirse a mano es todo lo que el código o las herramientas ya expresan con precisión y que cambia a menudo: los diagramas de clases de todo un código base, las listas de endpoints que ya contiene un archivo OpenAPI o las descripciones de cada función. Cuando esas vistas sean útiles, genéralas a partir del código fuente en el pipeline de compilación para que no puedan desviarse. Omite también el contenido aspiracional (diagramas de cómo debería ser el sistema, presentados como si ya lo fuera), las actas de reuniones cuyo resultado ya está recogido en otro lugar y el texto duplicado, que acabará contradiciendo a su copia.
Cómo decidir la forma de documentar una información
Siete reglas para una documentación sólida
Views and Beyond establece siete reglas para una documentación sólida. Vale la pena saberlas de memoria, porque casi todos los fallos de documentación incumplen alguna de ellas.
- 1. Escribe para el lectorLa documentación se escribe una vez y se lee muchas, así que optimízala para el lector. Decide quiénes son los lectores y qué intentarán hacer con el documento, organízalo para la consulta y no para la lectura lineal, y evita la jerga privada. Una señal de que se incumple esta regla: el documento está organizado en el orden en que al autor se le fueron ocurriendo las cosas.
- 2. Evita la repetición innecesariaCada información debe tener un único lugar, con enlaces desde otras partes. La repetición alarga los documentos y, peor aún, deja que las copias diverjan hasta que los lectores no pueden saber cuál es la verdadera. La repetición deliberada para comodidad del lector, como un resumen, está bien si se señala claramente.
- 3. Evita la ambigüedadUn diagrama de cajas y líneas sin leyenda puede leerse de varias maneras: ¿una línea es una llamada, un flujo de datos o una dependencia de despliegue? Define la notación en una leyenda, usa un solo nombre para cada cosa e indica qué significa cada elemento y cada relación.
- 4. Usa una organización estándarUna estructura conocida (una plantilla como arc42 o la plantilla de Views and Beyond) indica a los lectores dónde buscar y muestra a los autores lo que falta. Una sección vacía marcada como "no aplicable, porque..." informa más que un hueco silencioso.
- 5. Registra la justificaciónPon por escrito el porqué, incluidas las opciones rechazadas. Los futuros responsables del mantenimiento suelen poder averiguar qué se construyó; no pueden averiguar por qué, y sin el porqué o temen cambiar cualquier cosa o deshacen una decisión cuyas razones siguen siendo válidas. Para eso existen los registros de decisiones.
- 6. Mantenla al día, pero no demasiado al díaLa documentación desactualizada induce a error. Pero actualizar todos los documentos con cada idea a medio formar genera agitación constante; registra las decisiones una vez tomadas y actualiza la descripción con un ritmo predecible, por ejemplo con cada lanzamiento o con cada cambio significativo.
- 7. Revísala para comprobar que es adecuada para su propósitoSolo los lectores previstos pueden decir si un documento funciona. Pide a un recién llegado que prepare y explique el sistema a partir de los documentos, o pide a un ingeniero de guardia que use la vista de despliegue en un simulacro, y corrige aquello con lo que tropiecen.
Documentación viva y documentación como código
El fallo tradicional de la documentación de arquitectura es la obsolescencia: la descripción se escribe al principio, el sistema cambia y nadie actualiza el documento porque vive en un lugar separado del trabajo. Dos ideas relacionadas atacan este problema de raíz.
La documentación como código, una práctica promovida por la comunidad Write the Docs, consiste en tratar la documentación como código fuente: escrita en formatos de texto plano como Markdown o AsciiDoc, guardada bajo control de versiones (normalmente en el mismo repositorio que el código que describe), modificada mediante los mismos pull requests, revisada por las mismas personas y compilada y publicada por el mismo pipeline. Así, se puede exigir que un pull request que cambia la forma de asignar los pedidos actualice la vista de ejecución en el mismo commit, y el revisor ve ambas cosas.
La documentación viva, un término popularizado por el libro homónimo de Cyrille Martraire (2019), va más allá: siempre que sea posible, la documentación debe derivarse del propio sistema para que no pueda desviarse. Los diagramas de dependencias generados a partir del código, las referencias de API generadas a partir de archivos OpenAPI, las reglas de arquitectura comprobadas por pruebas automatizadas y los diagramas generados a partir de un modelo guardado junto al código son ejemplos de ello. El texto escrito a mano se reserva para lo que no puede derivarse, principalmente la intención y la justificación.
Ninguna de las dos ideas elimina la necesidad de criterio sobre qué escribir. La Sección 4.7, Diagramas como código, trata en detalle las herramientas y los hábitos.
Guía de decisión
Guía de decisión: ¿deberíamos poner esto por escrito?
Hazte estas preguntas en orden sobre una pieza de conocimiento arquitectónico.
- ¿Cometería alguien un error costoso, o haría la misma pregunta una y otra vez, si esto no estuviera por escrito?SíContinúa: es candidato a documentarse.NoDéjalo por ahora a la conversación y al código; vuelve a planteártelo si la pregunta empieza a repetirse.
- ¿Puede leerse de forma fiable en el código, en la configuración o en una herramienta?SíGenéralo o enlaza al lugar donde está; no lo copies a mano.NoContinúa: necesita que lo escriba una persona.
- ¿Es una decisión con razones y opciones rechazadas?SíEscribe un registro de decisiones (consulta la Sección 4.5).NoContinúa.
- ¿Cambiará con la mayoría de los lanzamientos?SíGuárdalo en el repositorio junto al código que describe y haz que actualizarlo forme parte del pull request.NoPonlo en la visión general de la arquitectura o en la sección correspondiente de la plantilla y revísalo con un ritmo fijo.
Ejemplo práctico
Ejemplo práctico: un conjunto de documentación justa y necesaria para la plataforma de reparto de comida
Una empresa de reparto de comida opera una plataforma con una app de clientes, una app de restaurantes, una app de repartidores, servicios de pedidos, de despacho de repartidores y de notificaciones, y un proveedor de pagos externo. Tiene 30 ingenieros en cinco equipos y se prepara para una auditoría de un evaluador de pagos con tarjeta. El arquitecto propone este conjunto de documentación, guardado en su totalidad en un único repositorio de documentación o junto al código, y nada de él más largo de lo necesario.
| Visión general de la arquitectura (de 2 a 3 páginas) | Propósito, usuarios principales, objetivos de calidad por orden de prioridad (por ejemplo: no perder nunca un pedido ni cobrarlo dos veces; confirmación del pedido con p99 inferior a 1.5 segundos en hora punta; app de restaurantes utilizable con conexiones deficientes), restricciones clave y un orden de lectura para los recién llegados. Responsable: el arquitecto. Se revisa cada trimestre. |
|---|---|
| Diagramas de contexto del sistema y de contenedores | Dos diagramas C4 (Sección 4.3) con leyenda, generados a partir de un modelo en el repositorio. Se actualizan en el pull request que añade o elimina un contenedor o una dependencia externa. |
| Bitácora de decisiones (decision log) | Unos 40 registros de decisiones breves, numerados, en el repositorio: eventos de pedido asíncronos, la elección del proveedor de pagos, una base de datos por servicio, etc. Nunca se reescriben; se sustituyen cuando cambia una decisión. |
| Vista de despliegue | Un diagrama y una tabla por entorno: regiones, clústeres, bases de datos gestionadas, el intermediario de mensajes (message broker) y el límite de red en torno a los datos de tarjetas. Responsable: el equipo de plataforma. |
| Escenarios de ejecución | Diagramas de secuencia de los cuatro flujos que más importan: hacer un pedido, rechazo del restaurante, asignación de repartidor, reembolso. Cada uno cabe en una pantalla. |
| Conceptos transversales | Una página para cada uno: autenticación, idempotencia y reintentos, logging y datos personales. Son las reglas que todo equipo debe seguir. |
| Runbooks | Uno por cada alerta que pueda despertar a alguien, enlazado desde la propia alerta. |
| No se escribe a mano | Diagramas de clases, listas de endpoints y esquemas de base de datos (generados en el pipeline); actas de reuniones; la historia de cómo creció el sistema (la bitácora de decisiones y el historial de versiones ya la cuentan). |
Cada elemento tiene un lector concreto, un responsable y un desencadenante de actualización. La documentación sin responsable es la primera en degradarse.
La auditoría se atiende con la bitácora de decisiones, la vista de despliegue y el historial de versiones, no con un documento de auditoría aparte que habría que mantener coherente con ellos.
El conjunto completo puede leerse en unas dos horas, lo que hace verosímil que los recién llegados lo lean de verdad.
Preguntas frecuentes
Nuestro código es limpio y está bien probado. ¿No es documentación suficiente?
El código limpio y las pruebas son una documentación excelente de qué hace el sistema a un nivel de detalle fino. No muestran la visión de conjunto entre servicios y repositorios, los objetivos de calidad, las restricciones ajenas al código ni por qué la estructura es como es. Eso es exactamente para lo que sirve la documentación de arquitectura.
¿Quién debería escribir la documentación de arquitectura?
Las personas que toman las decisiones y conviven con ellas, lo que en la mayoría de los equipos modernos significa tanto los ingenieros como los arquitectos. El arquitecto suele ser responsable de la estructura general y de la coherencia, y los equipos son responsables de las partes que describen sus servicios. Lo que más importa es que cada documento tenga un responsable concreto.
¿Cómo evitamos que la documentación se quede obsoleta?
Mantenla pequeña, mantenla junto al código, haz que actualizarla forme parte de la definición de terminado para los cambios que la afecten, genera lo que pueda generarse y revísala con un ritmo fijo. La Sección 4.7 trata estos hábitos en detalle.
Comprueba lo que has entendido
Nombra los tres usos de la documentación de arquitectura que identifica Views and Beyond.
La formación (presentar el sistema a las personas), la comunicación entre las partes interesadas y servir de base para el análisis y la construcción.
¿Significa "el software que funciona por encima de la documentación exhaustiva" que los equipos ágiles no deben documentar su arquitectura?
No. El manifiesto afirma que los elementos de la derecha siguen teniendo valor; establece una prioridad para cuando ambos compiten y rechaza la documentación producida como fin en sí misma, no la documentación útil.
¿Por qué la justificación debe documentarse a mano y los diagramas de clases, en general, no?
La justificación no puede recuperarse a partir del código y cambia poco, así que debe escribirla una persona. La estructura de clases puede leerse o generarse a partir del código y cambia a menudo, así que una copia dibujada a mano se desvía rápidamente.
¿Contra qué advierte "mantén la documentación al día, pero no demasiado al día"?
Tanto contra la documentación obsoleta que induce a error a los lectores como contra la agitación constante de actualizar los documentos con cada idea sin asentar; actualiza con un ritmo predecible una vez tomadas las decisiones.
Fuentes y lecturas recomendadas
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “Tenemos un espacio de Confluence de 300 páginas en el que nadie confía. ¿Cómo decido qué conservar, qué eliminar y qué reescribir?”