Es importante conocer cual es la diferencia entre las principales disciplinas involucradas en un proceso de desarrollo y sobretodo cuales son sus responsabilidades.
Para distinguir entre arquitectura, ingeniería o métodos de desarrollo de software es necesario saber identificar sus ámbitos de influencia, empresa, software y producto respectivamente.
La ingeniería de software se responsabiliza de controlar y dirigir el proceso de desarrollo del software. Durante todo el ciclo de vida de un proyecto determina que tareas deben realizarse desde la captura de requisitos hasta las pruebas e implantación. Es responsabilidad del Jefe de Proyecto (Project Manager).
La arquitectura de software es la responsable de reflejar las estrategias empresariales en los proyectos desde el ámbito puramente técnico. Define las tácticas a emplear en cada caso para conseguir alinearse con los objetivos del negocio. Para ello tiene la potestad de elegir la forma de abordar cada proyecto, adquisición de productos, tecnologías a emplear,… El responsable es el Arquitecto de Software (Software Architect).
Los métodos de desarrollo van orientados a definir la forma de trabajar e interactuar del equipo de desarrollo para obtener un resultado: el producto. Todo proyecto de software tiene como objetivo obtener un producto sea este de la naturaleza que queramos. Pero no hay que confundir el concepto de metodología utilizado en la ingeniería de software con el concepto de método de desarrollo. Uno esta orientado al desarrollo de software desde un punto de vista global al proyecto y el otro se enfoca a las acciones o técnicas a aplicar en concreto durante el proceso de desarrollo. El responsable de esta tarea es el Líder del Equipo (Team Leader) y el propio equipo de trabajo.
En cualquier proyecto hacen falta tener en cuenta estas tres disciplinas e identificar cada uno de estos roles. Las relaciones entre ellos son complementarias y en ningún caso coinciden las responsabilidades.
Frecuentemente se comete el error de unificar mas de un rol en la misma persona y en muchas ocasiones sin ser conscientes de ello. Normalmente nadie diferencia entre un Jefe de Proyecto y un Líder de Equipo con las nefastas consecuencias que esta dualidad crea (indefinición de tareas, falta de liderazgo,…).
En proyectos pequeños en los cuales no se tenga la capacidad de mantener estos roles por separado es mejor darle la responsabilidad al Líder de Equipo.
Gracias, creo que finalmente entiendo la diferencia. Una pregunta ¿qué tendría que estudiar para desempeñarme como arquitecto de sofware?
Me gustaMe gusta