Redes y Sistemas

Los 3 tipos de Software Architect que encontrarás

La arquitectura de software es el eje central del ciclo de desarrollo de sistemas en la fase inicial de diseño y en cada iteración (y que rige la calidad del diseño). Y lo creas o no, ninguna empresa puede construir productos o servicios de software sin contar con al menos un arquitecto. Por eso, no solo es importante contar con diferentes roles de arquitectura a lo largo de todo el proceso como forma de agregar valor al negocio, sino que es fundamental conocerlos. Estos son los tipos de Software Architect que puedes encontrar en una organización.

¿Cuál es su responsabilidad?

Sea cual sea el rol de arquitecto de software al que nos refiramos, siempre hablamos de tomar una decisión «de diseño». En realidad, la arquitectura no es más que un mapa visual que representan varias decisiones de diseño. Sin embargo, esta definición plantea dudas sobre los límites de la arquitectura de software con otros ámbitos como el desarrollo, el negocio u otros stakeholders. ¿Quién es responsable entonces de los elementos de la arquitectura?

Como si de la arquitectura civil se tratase, en el que hay un arquitecto responsable de diseñar el edificio y hay también quienes llevan a cabo la construcción y quienes la supervisan de acuerdo a lo que diseñó el arquitecto, el la arquitectura de software hay roles similares. Y esto en cada etapa del ciclo de desarrollo de sistemas.

¿Cuál sería el papel del arquitecto de software dentro de este ciclo? Pues depende al alcance de lo que tenga que diseñar. Por ejemplo, en el diseño de aplicaciones, estaremos ante un arquitecto de aplicaciones (.NET, Java, iOS o Android), que será responsable de del diseño de aplicaciones en términos de lenguajes de programación, framework, componentes, capagas e interfaces de integración. Otro ejemplo es el DevOps Architect, Que será responsable de diseñar la automatización del ciclo de desarrollo de sistemas. El Platforma Architect, que será responsable de diseñar los entornos de hosting o almacenamiento, utilizando diferentes recnologías (sistema de contenedores en la nube, por ejemplo, o soluciones híbridas). Y por último, el Enterprise Architect, será el encargado de diseñar la arquitectura general del ciclo en cuanto al alcance del negocio y describiendo las principales vistas de negocio, aplicaciones, datos y tecnología.

Aquí hablamos de dos términos: habilidad y rol. Mientras que los roles son diferentes como hemos visto (arquitecto de aplicaciones, de plataforma,…), la mayoría comparten habilidades. Por ejemplo, la habilidad de diseño de arquitectura es común en todos, aplicada a diferentes objetivos.

¿Qué tipos de Software Architects hay?

Como hemos visto anteriormente, los diferentes roles de Software Architect tienen habilidades comunes y comparten el mismo objetivo de proporcionar el diseño de diversas soluciones técnicas en función de unos requisitos de negocio. Sin embargo, las responsabilidades y el resultado que aportan son diferentes en términos de alcance dentro de la organización y la especialización tecnológica.

Esto nos lleva a categorizarlos en tres grupos principales: Enterprise Architecture, Solutions Architecture y Technology Architecture.

tipos de software architects

Enterprise Architecture

Son aquellos que diseñan soluciones que abarcan sistemas transversales dentro de la organización. La arquitectura «empresarial» está formada por los diferentes elementos a nivel organizacional que describen un diseño robusto e intergral que tiene en cuenta los diferentes puntos de vista de la arquitectura, ajustándose a los requisitos empresariales y adaptándose a los cambios cuando sea necesario.

Este perfil trabajará mano a mano con negocio para entender los objetivos y diseñar una solución adaptada a éstos que describa el diseño horizontal de los productos y servicios digitales de la organización (y sus interrelaciones) en términos de negocio, datos y tecnología. El Enterprise Architect es el responsable de la evolución continua de los principios de diseño que guían la creación de cualquier arquitectura y que puedan entenderse por cualquier arquitecto de la organización. En definitiva, es quien tiene que dar respuesta a las necesidades empresariales y asegurarse de que todas las arquitecturas se diseñan y evolucionan hacia estos fines, estableciendo para ello las normas y los principios a seguir.

Entre las principales competencias:

  • Business Awarenss o visión de negocio
  • Organization Analysis y objetividad
  • Insightful y visión de futuro
  • Comunicación a todos los niveles
  • Habilidades técnicas de diseño
  • Experiencia y conocimiento en entornos EA

Solutions Architect

Este tipo de arquitectos es ambiguo debido a que se expande por diferentes áreas del ciclo de desarrollo de sistemas como preventa, gestión, desarrollo y operaciones, con el fin de proporcionar soluciones integrales para una serie de aplicaciones relacionadas con una industria específica, un proveedor o un programa específico dentro de una organización. Al tocar varias áreas, a veces es confundido con el Enterprise Architect y con el Technology Architect. Como decíamos antes, el EA es quien define las normas generales y el diseño global de la arquitectura de referencia. Mientras que el TA, que veremos después, diseña de forma detallada la solución que se va a implementar con un sistema concreto y una tecnología específica.

El Solutions Architect cubre la brecha que hay entre esos dos roles, ya que cuenta con las habilidades necesarias para proporcionar una solución que se extiende a través de diferentes tecnologías y sistemas diferentes, siguiendo el marco, las normas y los principios establecidos por el primero.

A pesar de esta diferencia, un Solutions Architect trabaja de la mano con los arquitectos empresaiales y los arquitectos técnicos para llevar a cabo el resultado deseado en las diferentes etapas del ciclo de desarrollo de sistemas.

Entre las habilidades demandadas:

  • Business requirements analysis.
  • Stakeholder analysis.
  • Experiencia con sistemas distribuidos y con un abanico amplico de herramientas y lenguajes de programación.
  • Experiencia con soluciones intergrales de negocio.
  • Liderazgo técnico.
  • Modelado de soluciones y documentación.
  • Gobernanza en toda la implementación.
  • Soft skills

Technology Architecture

Son los arquitectos encargados directamente de proporcionar el diseño «de bajo nivel» de una solución técnica detallada basándose en una tecnología específica, y concretando los diferentes elementos que componen el sistema y sus interacciones entre sí y con otros sistemas.

La complejidad de la solución tecnológica es diferente sgún cada caso de negocio. Por ejemplo, en el desarrollo de una aplicación .NET, por haber documentación técnica suficiente, puede no ser necesario un arquitecto. Pero para otros escenarios más complejos que requieren un diseño específico puede que sí.

Este arquitecto, en definiva es quien está diseñando de forma detallada la implementación técnica basándose en la estrategia tecnológica diseñada por el Enterprise Architect y utilizando el diseño tecnológico de «alto nivel» de los Solutions Architect. Es lo que se conoce como un geek técnico, con habilidades en tecnologías específicas (de programación de aplicaciones, de datos, de infraestructura, de plataforma, de cloud o nube, de blockchain…).

  • Application programming technologies e.g. .NET, Java, Python, iOS, Android, etc.
  • Data technologies e.g. databases, big data, ML &AI, API, etc.
  • Infrastructure technologies e.g. network and virtualization
  • Platform technologies e.g. Terraform, Ansible, Azure DevOps, ArgoCD, Jenkins ,etc.
  • Blockchain technologies e.g. hyperledger-fabric
  • IoT technology e.g. Cisco IoT

En el mundo real, este papel muchas veces es desempeñado por desarrolladores expertos o incluso por un Solutions Architect con experiencia concreta en la tecnología a utilizar.

Así se sitúan estos roles en cada categoría:

¿Quieres dedicarte a la arquitectura de software? ¿ O quieres entender mejor sobre estos profesionales? Sigue leyendo el artículo original de Briqi en inglés para Medium.

Somos el equipo de Talent Hackers. Compartimos información, tendencias, artículos y guías del mundo IT y de reclutamiento.

Write A Comment

Share via
Copy link
Powered by Social Snap