Principales tareas, habilidades y funciones del Software Architect

06.10.2022
Principales tareas, habilidades y funciones del Software Architect

Software Architect: quién es y qué hace

El Software Architect es la figura profesional especializada en el diseño de las funciones y especificaciones de diferentes tipos de software1. Entre sus principales tareas está el estudio y diseño de soluciones que respondan a las necesidades del negocio. 

Así pues, el Software Architect define las especificaciones que deben tener los programas y realiza el diseño lógico de los distintos componentes del software. Por lo general, intenta diseñar softwares sencillos, funcionales, fáciles de mantener y escalables (es decir, capaces de manejar volúmenes crecientes de procesamiento)2.

Las principales tareas del Software Architect son:

  • Analizar e interpretar las necesidades explícitas y latentes de la empresa.
  • Elaborar y formalizar propuestas de mejora de la arquitectura de software de la empresa.
  • Evaluar la viabilidad de las soluciones IT desde el punto de vista tecnológico y económico.
  • Definir los aspectos del ciclo de desarrollo del software y la tecnología de acuerdo con los estándares requeridos.
  • Diseñar la arquitectura de los nuevos sistemas.
  • Corregir cualquier problema relacionado con el software.

Sus tareas también pueden incluir el diseño de software complejo y la realización de pruebas de software (que de otro modo se delegarían en figuras específicas como el Software Tester). La CI (Continuous Integration) y la CD (Continuous Delivery) se utilizan con frecuencia en el mundo del software. La primera consiste en un método de desarrollo de software que permite detectar y resolver los errores más rápidamente y mejorar la calidad del software. La segunda permite automatizar las pruebas más allá de las unitarias, para verificar el correcto funcionamiento de las actualizaciones antes de que estén disponibles.

Software Architect: habilidades y funciones

Para llegar a ser Software Architect, se recomienda una licenciatura en Ciencias de la Computación (LM-18), Ingeniería Informática (LM-32) o relacionados. 

La experiencia en este campo proporciona un background de conocimientos y habilidades técnicas que siempre son muy valoradas en el mundo de la informática. 

Los principales hard skills incluyen:

  • Conocimiento de los lenguajes de programación más comunes.
  • Conocimiento profundo de las arquitecturas de los sistemas TIC y del mercado de las TIC y conocimiento en el ámbito de networking.
  • Conocimientos básicos de economía empresarial.
  • Capacidad para aplicar nuevas metodologías que optimicen los sistemas de información.
  • Capacidad para utilizar herramientas que fomenten la colaboración, el control del sistema y la medición del rendimiento (incluyendo, Apache Maven, Jenkins y Docker).

Durante el desempeño de sus actividades, el Software Architect puede apoyarse en ciertos patrones, es decir, en modelos lógicos que pueden utilizarse para resolver los problemas que puedan surgir durante el diseño y el desarrollo del software. Entre los patrones arquitectónicos más utilizados por el Software Architect se encuentran3:

  • Layers, organizadas en capas de las cuales las más utilizadas son las de presentación, negocio, persistencia y database.
  • Client-server, que consta de dos partes (cliente y servidor).
  • Master-slave, generalmente utilizado en sistemas que requieren un cálculo importante.
  • Peer-to-peer, que implica a entidades que se consideran iguales y que pueden actuar alternativamente como cliente o servidor.
  • Event sourcing es uno de los patrones utilizados en los sistemas que utilizan eventos.
  • Model-View-Controller, más conocido como MVC y utilizado en particular en aplicaciones y frameworks web.
  • Interpreter, se utiliza principalmente cuando el programa tiene que interpretar otro programa escrito en un lenguaje determinado, como SQL o consultas a bases de datos.
  • Pipes and Filter.
  • Blackboard.
  • Broker.

Por último, los soft skills que posee el Software Architect incluyen:

  • Capacidad de análisis.
  • Capacidad de organización.
  • Capacidad para gestionar el estrés.
  • Capacidad para gobernar el cambio a través de la tecnología.
  • Habilidades comunicativas e interpersonales.
  • Capacidad de coordinación y gestión.
  • Propensión a la colaboración.
  • Orientación a la formación continua.
  • Proactividad y resolución de problemas.

Fuentes

  1. El arquitecto de software no es un desarrollador, ¡no los confundas!, tokioschool.com
  2. Qué hace un arquitecto de software y cómo formarte para este puesto, avanzaentucarrera.com
  3. 10 Common Software Architectural Patterns in a nutshell, towardsdatascience.com

Bienvenido.