Cómo documentar arquitectura que no se erosione

Clase 41 de 43Curso Profesional de Arquitectura de Software

Contenido del curso

Atributos de calidad

Patrones de arquitectura

Diseño de una arquitectura

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.