Oct 18, 2010 0
Consejos para definir la arquitectura de un sistema
Si hay algo por lo que realmente vale la pena trabajar en una empresa de desarrollo, es porque solo de esa manera aprendes en realidad sobre gestión de proyectos. En las dos universidades en las que he estudiado, las materias de Análisis de Sistemas dejan mucho que desear.
Recientemente he aprendido que al trabajar colaborativamente, hay un elemento muy de peso en el desarrollo: la arquitectura. La arquitectura de un sistema define como van a integrarse las partes creadas por los distintos desarrolladores. Mientras más grande sea un proyecto, de más partes se compone y más compleja es su arquitectura.
Sin una arquitectura definida, los distintos estilos de programación de dos desarrolladores podrían imposibilitar la integración de las partes programadas. El verdadero problema viene en la manera de definir esta arquitectura. La documentación es una herramienta muy valiosa, pero hay que tomar en cuenta que aunque a los programadores les gusta tener la documentación del sistema a la mano, no a muchos les gusta crear estos documentos.
Estos son algunos de los consejos que yo puedo sugerir para definir una arquitectura estándar:
- Definir las reglas de estilo que se aplicarán al código desde un inicio. Esto incluye nombres de clases, funciones, tabulaciones, espacios entre sentencias, etc.
- Utilizar un patrón de diseño establecido. Siendo PHP mi especialidad estoy más familiarizado con Modelo Vista Controlador, pero hay otros disponibles.
- Utilizar un framework. Esto no solo ahorra tiempo de desarrollo sino que da más cohesión al proyecto.
- Definir cómo se utilizará el framework. Los frameworks suelen tener muchas opciones disponibles, especialmente los libres, y en algunos casos tienen tanta flexibilidad que pueden terminarse usando estilos de programación opuestos.
- Definir un API para las funciones básicas de la aplicación. Aquellas características que se repiten a menudo deben de estar definidas desde el inicio y bien documentadas.
- Enfocarse en la comunicación de las partes. Muchas veces lo más importante no es lo que hacen los procesos, sino que la información que necesitan y que devuelven como resultado.
- Recordar constantemente lo que se ha acordado. El plan en el papel puede ser perfecto, pero si los desarrolladores no lo cumplieron de nada sirve.
Es importante que estas cosas se empiecen a trabajar antes de iniciar el proyecto, y mejor aún si existe una persona solamente dedicada a ello. Es muy difícil adaptar un proyecto ya comenzado a una arquitectura específica.
Seguramente he pasado por alto algunas cosas, y al final de cuenta es la experiencia lo que más influye al momento de diseñar una arquitectura efectiva. ¿Cuáles considerarían ustedes como los pasos más efectivos para definir la arquitectura de un nuevo proyecto?