Como con cualquier otra cosa en un proyecto ágil, es iterativo. Comienza con la arquitectura más simple que satisface sus necesidades actuales, a la vez que es lo suficientemente flexible como para extenderse. Luego, en cada ciclo, aumenta gradualmente la arquitectura para satisfacer sus necesidades.
Ayuda comenzar con una arquitectura que sabes que funciona. Sé que algunos los difaman, pero los patrones arquitectónicos ayudan. Está creando una aplicación web simple, comenzando con un patrón MVC. Necesita interactuar con varias fuentes de datos externas, ETL ayuda. Necesita paralelización masiva, el uso de MapReduce ayuda.
Lo importante es no comenzar a reinventar la rueda desde el principio. Crear una arquitectura completamente nueva desde el principio garantiza más o menos que agregará una gran cantidad de complejidad accidental al proyecto en el futuro. Es mucho mejor comenzar con algo probado y verdadero, y luego cambiarlo cuando no funciona.
- ¿Cómo compararía el software de eliminación de datos? ¿Qué criterios tomarías en consideración?
- ¿Qué tipo de software se usa en misiles tierra-aire?
- ¿Cuál es el mejor software de karaoke para PC?
- ¿Cuáles son algunos ejemplos de las aplicaciones de VoIP?
- Tengo el mismo interés en el lado del software y el lado de la red. ¿Cuál debo elegir según el nivel de desafío, el salario y las bases interesantes?
También ayuda mucho cuando tiene una entrega continua desde el primer momento. Una gran cantidad de proyectos “ágiles” que no construyen CD desde el principio se topan con el problema de tener arquitecturas rígidas. Si no tiene un CD, realizar cualquier cambio arquitectónico en el sistema presenta riesgos. Entonces, entras en esta mentalidad de que estás “atrapado” con la arquitectura con la que comenzaste. Esto lleva a la mentalidad de que la “arquitectura de software” es una gran cosa que debe hacerse por adelantado
Si tiene un CD, puede comenzar a diseñar su software como una serie de experimentos.
Básicamente, utiliza el método científico para evolucionar su arquitectura.
a) Hipótesis: diseñar una nueva arquitectura
b) Prueba: Diseñe pruebas que “prueben” que su arquitectura funciona.
c) Implementar: Implemente su arquitectura y las pruebas que se le ocurrieron
d) Observar y analizar: liberar la implementación (y las pruebas) a la naturaleza, y observar los resultados de sus pruebas
e) Mejorar: usar el hallazgo para proponer nuevas ideas para cambios arquitectónicos