Como pensar la arquitectura de un proyecto como emergente y ágil de tal manera que evolucione junto a los requerimientos, con métodos que nos permitan validarla constantemente y eliminar los condicionamientos tempranos.
15. 15
Validaciones
Aceptación, rendimiento y carga
Validación del Modelo de Arquitectura
Dependencias
Pruebas unitarias, de integración y code coverage.
Análisis estático
Tests de APIs
En los proyectos en general somos un poco animistas.
Dotamos de alma a la arquitectura de un proyecto y la justificamos durante todo el proyecto, y no la cuestionamos
El Arquitecto sale de la cueva en el Kickoff del proyecto
Arma la “Arquitecura”
Se vuelve a la cueva
Sale nuevamente al final del proyecto y actualiza el documento con el GAP entre la arquitectura real y el doc
Diferencias por misunderstundings de los desarrolladores, imposibilidades, cambiosAcá hay un smell
Iterativo e incremental
Evolución del conocimiento del dominio por parte del teamEvolución del entendimiento por parte del cliente
Cambios
Cambios
Explicación de Greenfield Explicación de Brownfield
Sacamos Brownfield del scope de la charla, pero se puede analizar desde el punto de vista de los refactorings, que pueden incluir la arquitecturaGreenfield nos permite estar en el mejor de los mundos. Excepto los requerimientos no funcionales. No tenemos constraints
Eliminemos los constraints, no nos generemos constraints innecesarios
NOOOO!!
Labure con Martin
Ver las charlas de Arquitectura Emergente
Kleer
Una forma de aproximarnos a una arquitectura que evoluciona con los requerimientos
Una arquitectura que emerge a partir de la evolución de los requerimientos, con métodos que nos permitan validarla constantemente, con piezas fácilmente reemplazables, elimina condicionamientos tempranos y nos permite efectuar todas las mejoras que el cliente necesite.