Introducción

En todas las organizaciones existe el rol del Arquitecto de Soluciones, ese rol que es el puente entre negocio y tecnología, que es el encargado de diseñar soluciones técnicas que satisfagan tanto los requisitos de negocio como los requisitos técnicos.

En el artículo nos adentraremos en su día a día, qué hacen y cómo lo hacen. Para ello, explicaremos qué es una Arquitectura de Solución, que responsabilidades tienen los Arquitectos de Solución, qué relaciones tienen dentro de una organización y cuál es el ciclo de vida de una Arquitectura de Solución.

¿Qué es la Arquitectura de Solución?

La Arquitectura de Solución puede describirse como la solución tecnológica de múltiples requerimientos de negocio/empresariales. La arquitectura se diseña con el fin de garantizar que la solución tecnológica siga siendo relevante con el paso de los años y que aborde los retos empresariales del día a día sin ningún problema.

La Arquitectura de Solución no es simplemente una solución software, es una solución que cubre todos los requerimientos técnicos y no técnicos incluidos dentro del desarrollo de un sistema:

  • Requisitos funcionales.
  • Requisitos de Infraestructura.
  • Requisitos de negocio.
  • Tecnologías.
  • Fechas de entrega.
  • Despliegue y mantenimiento de la solución.
  • Composición de los equipos para el desarrollo, despliegue y mantenimiento.
  • Cumplimiento legal de la solución.

Responsabilidades del Arquitecto de Soluciones

Veamos en detalle las principales responsabilidades que tienen los Arquitectos de Soluciones:

  • Analizar requerimientos funcionales: el pilar sobre el que toda Arquitectura de Solución pivota es la necesidad o problema que se quiere solventar. Es clave, para un buen diseño, el entender desde el punto de vista del usuario final qué se necesita y el por qué se necesita.
  • Definir requisitos no funcionales: para toda Arquitectura de Solución es necesario definir los requisitos no funcionales en los que se basará el diseño de la arquitectura. Los requisitos no funcionales más comunes que se definen son:
    • Alta disponibilidad.
    • Fiabilidad y tolerancia a fallos.
    • Monitorización, auditoría y alertado.
    • Tiempos de latencia.
  • Satisfacer las necesidades de todos los interesados: tal y como has visto en el apartado anterior, la Arquitectura de Solución tiene requerimientos que provienen de diferentes fuentes. Todos estos requerimientos tienen que ser satisfechos con el diseño que se haga de la solución.
  • Diseñar la solución: la tarea más importante que tiene el Arquitecto de Soluciones es realizar el diseño de la Arquitectura de Solución. Para poder diseñar una Arquitectura de Solución correcta, el arquitecto tiene que obtener todos los requisitos que se necesitan, entenderlos y despejar todas las posibles dudas.
  • Entender las limitaciones: los Arquitectos de Solución no vivimos en un mundo ideal, en todos los diseños que hacemos siempre hay que tener en cuenta que pueden existir ciertas limitaciones que condicionará la Arquitectura de Solución que diseñemos. Las limitaciones más comunes a las que nos enfrentamos son:
    • Tiempos de entrega de la solución.
    • Alcance de la solución.
    • Tecnologías utilizadas para la implementación.
    • Recursos para la implementación.
    • Costes de implementación.
  • Diseñar las entregas: esta tarea es crucial desde el punto de vista del usuario final. Aquí, el Arquitecto de Solución tiene que diseñar cómo se va a ir entregando valor con arquitecturas intermedias hasta realizar la implementación completa del sistema.
  • Selección de tecnologías: una vez entendido qué se tiene que hacer y diseñado el sistema, el Arquitecto de Solución tiene que definir qué tecnologías se utilizarán para la implementación de todos los elementos que componen la Arquitectura de Solución.
  • Prototipado y pruebas de concepto: esta es la tarea más cercana al código fuente que un Arquitecto de Solución desempeña. Su objetivo es diseñar un prototipo ampliable y modificable de la arquitectura que se quiere construir. Además, dentro de esta tarea, está la realización de diferentes pruebas de concepto para demostrar qué y cómo se quieren realizar ciertas implementaciones que pueden generar dudas.
  • Evangelizar las tecnologías utilizadas en la solución: el Arquitecto de Soluciones tiene la tarea de ser el principal embajador, tanto con los equipos de desarrollo como con los diferentes interesados, de las tecnologías que se utilizan para la implementación de la arquitectura de solución.

Relaciones del Arquitecto de Solución dentro de la Organización

El Arquitecto de Solución interactúa, de forma directa o indirecta, con casi todos los Departamentos/Áreas/Roles dentro de una Organización. Veamos los más importante junto con el principal objetivo de la relación desde el punto de vista del Arquitecto de Solución:

  • Negocio/Arquitectura Empresarial: entendimiento de los requisitos empresariales y tener una visión clara del “hacia dónde vamos”.
  • Product Managers/Product Owners: entendimiento de los requisitos funcionales del problema que se quiere resolver con la arquitectura.
  • Equipos de Desarrollo: guiar a los equipos durante la implementación y dar el soporte necesario para el correcto mantenimiento de esta. El Arquitecto de Solución es el puente entre el equipo de negocio y el equipo de desarrollo.
  • Arquitectura Técnica: alineamiento de la Arquitectura de Solución con los diseños de software de referencia, metodologías, buenas prácticas y principios y definidos.
  • Arquitectura de Nube: alineamiento de la Arquitectura de Solución con la estrategia de nube de la organización.
  • Arquitectura de Seguridad: alineamiento de la Arquitectura de Solución con la arquitectura de seguridad, políticas de seguridad y cumplimiento de la organización.
  • Arquitectura de Infraestructura: alineamiento de Arquitectura de Solución con las arquitecturas de referencia de infraestructura definidas.
  • Arquitectura de Redes: alineamiento de la Arquitectura de Solución con las arquitecturas de referencia de redes definidas.
  • Arquitectura DevOps: alineamiento de la Arquitectura de Solución con la implementación de automatización, integración y despliegue continuos.
  • Arquitectura de Datos: alineamiento de la Arquitectura de Solución con las arquitecturas de referencia de ingeniería de datos, analítica, ciencia de datos e inteligencia.

Ciclo de vida de una Arquitectura de Solución

El ciclo de vida de una Arquitectura de Solución sigue, normalmente, el siguiente flujo:

  1. Obtención de los requisitos de negocio/empresariales.
  2. Obtención y análisis de los requisitos funcionales.
  3. Elaboración de una visión técnica para satisfacer los requisitos.
  4. Realizar prototipos y pruebas de concepto para evaluar tecnologías y también para refinar requisitos.
  5. Diseñar la solución y alinearla con el resto de las arquitecturas de referencia.
  6. Desarrollar la solución.
  7. Pruebas de aceptación por parte de los interesados de los requisitos funcionales y no funcionales.
  8. Desplegar la solución en producción.
  9. Mantenimiento de la solución en producción.

El ciclo se repite para todas las arquitecturas, tanto nuevas como ya existentes, y en la secuencia pueden darse saltos hacia atrás. Por ejemplo, si las pruebas de aceptación no son superadas, se tendrán que volver a analizar los requisitos funcionales previamente analizados.

Conclusión

El Arquitecto de Solución es el puente entre el negocio y la tecnología, tiene un rol indispensable en cualquier Organización ya que se encarga de trasladar los requisitos empresariales y de negocio a la tecnología.

Cualquier Arquitecto de Solución siempre hará las mismas preguntas:

  • ¿Por qué?
  • ¿Para qué?