Arquitectura de Software vs Ingeniería de Software

Buen día comunidad Invence . El día de hoy iniciamos la semana & ustedes ya saben, con nuevo tema para desarrollar . Espero lo disfruten & sea de su agrado .

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 eh ingeniería 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).

Que hace un ingeniero de software ?

Un ingeniero de software es un programador que tiene experiencia en el desarrollo de software de manera efectiva y eficiente. Aplican un enfoque estructurado formal al desarrollo de software pensando en la corrección, integridad, reutilización y mantenimiento.

Al resolver un problema, el ingeniero de software no solo escribe código que satisfaga la solicitud de función. En cambio, hay descomposición de problemas, planificación, pruebas, coordinación, etc. No se trata solo de si el problema se resolvió, sino de qué tan bien se resolvió y qué tan eficiente y sostenible es la solución.

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).

Que hace un arquitecto de software?

Las funciones de un arquitecto de software es que generalmente tiene la tarea de pensar y planificar la estructura y las interacciones de un software a un alto nivel. Normalmente, esta persona es un ingeniero de software experimentado y experimentado que comprende las mejores prácticas de cómo el software sostenible de larga duración puede y debe construirse.

El arquitecto de software puede tener la tarea de diseñar teóricamente un sistema de software, integrando varios patrones de diseño y principios de desarrollo para diseñar una solución a un problema de programación en particular.

Tal vez el Arquitecto reciba los requisitos del software y luego produzca un conjunto de diagramas y tablas, y tal vez incluso algún código inicial que represente la base del software, pero el Arquitecto generalmente le da ese resultado a un grupo de Ingenieros de Software y / o Programadores para usarlo como plan para construir la implementación real.

En cualquier proyecto hacen falta tener en cuenta estas dos 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

Conclusión

En conclusión, el conocimiento de la arquitectura es esencial para el desarrollo exitoso de software, pero podría argumentarse que un Arquitecto de Software generalmente se considera un rol principal, y no es factible crear equipos compuestos principalmente por personas mayores. La solución a este problema es que todos los ingenieros de software conozcan la arquitectura.

Tener ingenieros capaces de navegar por cuestiones arquitectónicas y no tener que contratar a un arquitecto en cada posible cambio de arquitectura crea un modelo más viable. Educar a los ingenieros en arquitectura tanto como sea posible parece ser el punto medio más sensato.

Comparte este Post
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *