Cómo documentar arquitectura que no se erosione

Clase 41 de 43Curso Profesional de Arquitectura de Software

Resumen

Una documentación de arquitectura clara convierte ideas en decisiones prácticas y compartidas. Aquí se explica cómo usar modelos y vistas para comunicar con precisión, fijar restricciones de diseño, negociar requerimientos funcionales y no funcionales, y mantener la documentación siempre alineada con la implementación. Como señala George Box: todo modelo es incorrecto, pero útil.

¿Para qué sirve la documentación de arquitectura?

La documentación organiza el conocimiento técnico en un modelo que guía y describe el sistema. Cumple dos funciones clave: restringir decisiones de diseño pendientes y describir el estado actual cuando ya existe implementación. Además, facilita la comunicación entre roles, la estimación de recursos y la medición de calidad.

¿Qué diferencia hay entre arquitectura restrictiva y descriptiva?

  • Arquitectura restrictiva: define límites y opciones para futuras decisiones de diseño.
  • Arquitectura descriptiva: refleja el estado actual del sistema ya implementado.
  • Conexión necesaria: documentar cómo las restricciones del pasado se materializaron en la implementación.
  • Valor práctico: reduce incertidumbre y acelera decisiones del equipo.

¿Cómo evitar la erosión de la arquitectura?

  • Mantener la documentación sincronizada con la implementación final.
  • Actualizar modelos y vistas ante cada cambio relevante.
  • Usar la documentación como contrato vivo para alinear equipos.
  • Apoyarse en métricas de calidad para detectar desvíos.

¿Quién usa el modelo y cómo aporta valor?

La documentación sirve a múltiples roles, cada uno con objetivos distintos. Bien redactada, evita malentendidos y reduce retrabajo. En metodologías ágiles, el propio equipo genera y mantiene el modelo; en enfoques tradicionales, puede percibirse como restricción, pero orienta el desarrollo hacia el objetivo común.

¿Cómo negocian arquitecto y analista los requerimientos?

  • Identificar trade-offs entre necesidades funcionales y no funcionales.
  • Registrar decisiones y argumentos en el modelo.
  • Priorizar lo que permite cumplir garantías y plazos.

¿Qué necesita operaciones para estimar costos?

  • Detalle de recursos: servidores, licencias, almacenamiento y redes.
  • Requisitos de despliegue: publicación en app store y registro asociado.
  • Capacidad de crecimiento: entender consumos previstos y picos.

¿Qué obtiene el equipo de desarrollo?

  • Restricciones claras y libertades explícitas para implementar.
  • En ágil: el equipo se autoimpone límites desde el modelo.
  • En tradicional: las restricciones orientan sin microgestionar el cómo.

¿Cómo se coordinan equipos y calidad con la documentación?

Cuando hay productos externos o múltiples equipos, la documentación asegura interoperabilidad, define contratos y evita sorpresas. También permite a calidad medir lo prometido: disponibilidad, seguridad y conformidad con la arquitectura prescripta.

¿Cómo asegurar interoperabilidad con productos externos?

  • Comunicar interfaces y dependencias entre equipos.
  • Acordar si consumirán nuestros servicios y si requieren una REST API.
  • Definir cómo consumiremos servicios de terceros.
  • Mantener sincronización para no perder compatibilidad.

¿Cómo planifica el gestor de proyecto con el modelo?

  • Identificar módulos y etapas del diseño.
  • Alinear prioridades operativas y arquitectónicas.
  • Dimensionar equipos según hitos.
  • Anticipar habilitación de servidores y trámites necesarios.

¿Qué mide el equipo de calidad o QA?

  • Criterios de disponibilidad y seguridad con métricas aplicables.
  • Verificación de conformidad del sistema con la arquitectura prescripta.
  • Evaluación del artefacto de ejecución y del proceso de desarrollo.
  • En ágil: testers y QA dentro del equipo monitorean métricas y arquitectura.

¿Tienes experiencias, métricas o prácticas que te hayan funcionado para mantener la documentación sincronizada con la implementación? Compártelas en los comentarios y enriquezcamos las mejores prácticas del equipo.