En cualquier proyecto de desarrollo de software que involucre sistemas distribuidos con múltiples desarrolladores, tener diagramas de arquitectura lógica y física es la mejor práctica, pero en mi experiencia estos diagramas siempre comienzan bien mantenidos al comienzo de un proyecto, pero no se actualizan a medida que el proyecto se lanza y las fases de mantenimiento comienzan.
Para proyectos complejos con una gran cantidad de procesos distribuidos, los diagramas tienden a quedar obsoletos o imprecisos muy rápidamente, incluso antes del lanzamiento inicial, ya que ninguna persona tiene todo el conocimiento.
Teniendo en cuenta estos antecedentes, quiero hacer las siguientes preguntas a la comunidad:
- ¿Qué tan importante es tener diagramas de arquitectura lógica y física precisos y actualizados?
- ¿Existen herramientas y procesos que puedan ayudar a mantenerlos actualizados?
- ¿Quién debería ser responsable de mantenerlos actualizados? ¿Cómo pueden contribuir los administradores de sistemas, los desarrolladores y los equipos de control de calidad?
design
architecture
testing
ARau
fuente
fuente
Respuestas:
Vivo en el mundo real con limitaciones de tiempo y problemas de recursos, así que entiendo por qué la mayoría de la documentación del software se ignora o queda desactualizada, pero incluso en esas condiciones, insisto absolutamente en que los diagramas de la base de datos se creen y se mantengan actualizados. Si no es un modelo relacional habitual y consta de entidades con documentos, pares clave-valor o estructuras JSON / XML, también se debe crear y mantener un modelo de objeto de esos elementos. Si todo lo demás falla en los esfuerzos de documentación de un proyecto, al menos un diagrama de base de datos y / o modelos de objetos le permitirán a uno trabajar hacia atrás hasta el front-end para descubrir qué está sucediendo.
Existen numerosas opciones para crear y mantener documentos de software, pero uno de mis favoritos es Enterprise Architect. Es integral y une casos de uso, diagramas de secuencia, diagramas de clase y otros.
En cuanto a quién es responsable de esto, lo considero un esfuerzo de equipo. Pocas personas disfrutan haciéndolo, pero debe hacerse. El arquitecto o líder tecnológico de un proyecto debería ser el responsable de ello, delegando las tareas de manera adecuada.
fuente