Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad de las Ciencias Informáticas, Carretera a San Antonio de los Baños, km 2 ½, Boyeros, Ciudad de La Habana,
Cuba.
e-mail: vdquevedo@uci.cu , odiaz@uci.cu, clage@uci.cu, rlazo@uci.cu.
RESUMEN. Son muchas las opiniones alrededor de cuáles ABSTRACT. There are many opinions around which are
son los roles que deberían conformar un equipo de the roles that should conform an architecture team, what
arquitectura, qué es lo que debería hacer cada uno y cómo is what they should make and how they would be
se integrarían entre ellos. Las principales compañías que integrated among them. The main companies that are
se dedican a la producción de software han brindado sus devoted to the software production have offered their
propuestas pero enfocadas a las necesidades particulares proposals but focused to the particular necessities that
que cada una tiene, no logrando abarcar la generalidad del they have, not being able to embrace the generality of the
tema. El propósito de este trabajo, es presentar algunas de matter.In this work, some of the groupings of those
las agrupaciones de esas compañías, y al final la propuesta companies will be presented, and at the end the proposal of
de los autores, donde están clasificados los roles the authors, where the roles are classified framing them
enmarcándolos dentro de dos dimensiones. Las actividades inside two dimensions. The activities that they must carry
que llevan a cabo y los conocimientos que son necesarios out and the knowledge that are necessary to carry out
para realizarlas, son los otros dos temas que se abordarán. them, being the two topics that will be approached.
Palabras claves: Rol, Arquitectura, Software. Key words: Roles, Architecture, Software.
¿Cuáles son las responsabilidades, competencias y técnicos, y garantizando que las decisiones sean comunicadas,
conocimientos de un Arquitecto de Software? validadas y adoptadas efectivamente.
Para responder a esta pregunta, desde hace unos cuantos años El Arquitecto de Software debe poseer la madurez, visión y la
el SEI (Software Engineering Institute) ha estado recopilando experiencia que le permita comprender los problemas de
comentarios de las personas sobre las responsabilidades de un manera rápida y tener un juicio crítico cuando existe
Arquitecto de Software. Este es un compendio, en el que se información incompleta, por ejemplo. Más concretamente, el
resaltan los aspectos más comúnmente citados (todas las Arquitecto de Software, o miembros del equipo de
respuestas individuales y sus autores pueden ser consultadas arquitectura, deben combinar estas capacidades:
en el sitio web del SEI) y que a continuación se enumeran: - Experiencia en el dominio del problema, a través de una
- Elaborar la arquitectura correcta para solucionar el profunda comprensión de los requisitos, y el dominio
problema o necesidades del cliente. de la Ingeniería de Software. Si hay un equipo, estas
- Definir y documentar la solución elaborada. Asegurarse cualidades se pueden propagar a través de los
que todos los involucrados la estén utilizando y la estén miembros del equipo, pero al menos un Arquitecto de
utilizando bien. Software debe tener la visión global del proyecto.
- Asegurarse que se aplica en etapas de manera - Liderazgo con el fin de gestionar el esfuerzo técnico a
coordinada de tal forma que toda la organización pueda través de los diversos equipos, y tomar las decisiones
apropiarse de ella antes de que sea completada. acordes aún bajo presión. Para ser eficaz, el Arquitecto
- Asegurarse de que la Arquitectura de Software sea acorde de Software y el jefe de proyecto deben trabajar en
con el sistema deseado. estrecha colaboración. El Arquitecto de Software debe
- Actuar como el embajador de la propuesta arquitectónica. tener la autoridad para tomar decisiones técnicas.
- Hacer que la gerencia la entienda hasta el nivel necesario. - Comunicación para ganar confianza, para persuadir,
- Asegurarse de que el modelamiento sea correctamente motivar, y guiar. El Arquitecto de Software no puede
realizado. conducir por decreto, sólo con el consentimiento del
- Conocer cuáles cualidades sistémicas, como el resto del equipo del proyecto. El Arquitecto de
rendimiento, deben alcanzarse y en qué medida. Software debe ganarse el respeto del equipo y del
- Responder sobre las inquietudes relacionadas con la director del proyecto, del cliente, la comunidad de
selección de herramientas y ambientes de desarrollo. usuarios, así como el equipo de gestión.
- Identificar e interactuar con los interesados en el proyecto - Orientación por objetivos y pro-actividad con un
para asegurarse que sus necesidades son satisfechas. implacable enfoque en los resultados. El Arquitecto de
- Asegurarse que la arquitectura no es solamente la Software es la fuerza impulsora detrás del proyecto, no
correcta para la operación del sistema, sino que además un soñador o visionario. La carrera de un exitoso
es la correcta para su soporte y evolución. Arquitecto de Software es una larga serie de “óptimas”
- Resolver conflictos y ayudar a generar acuerdos. decisiones adoptadas en la incertidumbre y bajo
- Solucionar problemas de tipo técnico. presión. Sólo los que pueden centrarse en hacer lo que
- Mantener la moral, tanto en el interior del grupo de hay que hacer tendrán éxito en este entorno del
arquitectura como al exterior. Esto último es realizado proyecto.
proponiendo un diseño compacto cuando se requiera y -
entregando presentaciones y materiales que le permitan a Desde el punto de vista de expertos, el Arquitecto de Software
todas las personas en la organización saber que se (Arquitectura de Software) también debe abarcar el Papel de
encuentran en el camino correcto. Diseñador, sin embargo, a diferencia del diseñador, el
- Entender y planear las rutas de evolución del sistema, Arquitecto de Software:
diseñar un plan que guíe la adopción de nueva - Tiende a ser un generalista en lugar de un especialista,
tecnología. a sabiendas de muchas tecnologías de alto nivel en
- Gerenciar las estrategias de identificación y mitigación lugar del nivel de detalle.
de los riesgos asociados con la arquitectura. - Hace más amplias las decisiones técnicas en el
dominio de la solución, y por lo tanto, debe tener
amplio conocimiento y experiencia, así como la
El Rol del Arquitecto de Software según Rational Unifed comunicación y habilidades de liderazgo son
Process (RUP) [5] fundamentales.
El Arquitecto de Software tiene la responsabilidad general de - El Arquitecto de Software es un rol en un proyecto de
conducir las principales decisiones técnicas, expresadas como desarrollo de software, en el cual se realizan varias
la Arquitectura de Software. Por lo general, esto incluye la actividades y se tienen responsabilidades como se
identificación y documentación en la arquitectura de los muestra en la figura 1.
aspectos importantes del sistema, incluidos los requisitos,
diseño, implementación y despliegue, es decir, las vistas del
sistema.
El arquitecto se encarga también de proporcionar la
justificación de estas decisiones, buscar el equilibrio entre los
stakeholders participantes, haciendo disminuir los riesgos
CCIA’2010 3
- Poder para desarrollar rápidamente profundo objetivos que a menudo son inciertos o contradictorios, no es
conocimiento en una tecnología: Ganando un soñador ni un visionario, es el director técnico de un
profundidad en múltiples tecnologías anteriores, el proyecto. Al Arquitecto de Software lo caracteriza el poseer
arquitecto puede asociar o transferir la capacidad de una gran habilidad para trabajar consistentemente en un nivel
aprender otros métodos para investigar y ganar abstracto. Tiene la responsabilidad de dirigir las principales
rápidamente experiencia en nuevas tecnologías. decisiones técnicas, expresadas como la Arquitectura de
- Pueden trabajar con información ambigua o Software. Por lo general, esto incluye la identificación y
incompleta: Los Arquitectos deben colaborar en el documentación de la arquitectura de los aspectos importantes
proceso de indagación de la información para llegar a del sistema, incluidos los requisitos, diseño, implementación y
una solución, pero pueden empezar a trabajar con despliegue, es decir, las vistas del sistema.
información limitada y conforme el proyecto El arquitecto también es responsable de proporcionar el
progresa, tomar decisiones de compensación o fundamento de estas decisiones, equilibrando las
equilibrio con el fin de mantener una solución que preocupaciones de los diferentes interesados, reduciendo los
cumpla con los objetivos, y continuar satisfaciendo riesgos técnicos, garantizando que las decisiones se
las exigencias de negocio que al principio fueron comuniquen, se validen con eficacia y se acaten.
identificadas. Sin embargo el arquitecto debe saber De manera general las competencias que debe poseer todo
claramente si con la información limitada puede arquitecto independientemente del rol que desempeñe son:
empezar a trabajar sin poner en riesgo el proyecto - Tecnología
más adelante por cambios drásticos o si el proyecto El arquitecto debe tener un sólido conocimiento de la razón
debe suspenderse antes de recopilar información de ser de la organización, de su infraestructura tecnológica y
mínima para empezar las tareas, es importante el del proceso de desarrollo de sistemas de información.
trabajo conjunto de todo el equipo de proyecto en
este aspecto. - Estrategia de negocios
El arquitecto debe poseer un alto conocimiento de la
Microsoft posee un programa de certificación de Arquitectos estrategia y la lógica detrás de los negocios de la organización,
(Microsoft Certified Architect Program), el cual sirve para así como de los procesos operativos de las diferentes áreas del
identificar a los mayores expertos en Arquitectura TI del negocio, los ciclos de planeación y los procesos de toma de
sector. Se trata de arquitectos que pueden utilizar múltiples decisiones; en resumen, un buen entendimiento del contexto
tecnologías para resolver problemas empresariales y ofrecer del negocio de la organización.
cifras y parámetros a los negocios para ayudarles a determinar
el éxito o el fracaso de los proyectos que dirigen. - Política organizacional
Las arquitecturas comúnmente están dirigidas a atender las
necesidades de varios y diversos usuarios, por lo que
usualmente requieren de la participación de diferentes
desarrolladores. Es decir, que serán utilizadas a través de las
diferentes áreas de la organización y por diferentes equipos de
desarrollo que pueden ser internos o externos. En este sentido
el arquitecto necesita entender las expectativas de la
organización y de los usuarios con respecto a la arquitectura
seleccionada, y debe asegurar que permanezcan
comprometidos durante el desarrollo del proyecto.
- Consultoría
Durante la construcción de una arquitectura participan
diferentes proveedores, desarrolladores y usuarios, por lo cual
el papel del arquitecto como consultor es fundamental al
asistir a los involucrados del proyecto, que se convierten en
sus clientes, en la resolución de dudas, en la preparación de
presentaciones y en la coordinación de las actividades
necesarias para desarrollar el proyecto con éxito.
Ilustración 2.Competencias del Arquitecto de Software - Liderazgo
En este sentido el arquitecto actúa como el líder que infunde
al equipo una visión común del proyecto, y que lo motiva a
Analizando las definiciones anteriores, otros estudios, trabajar comprometido para alcanzar los objetivos propuestos
experiencias, e investigación, se define al Arquitecto de con la implementación de la arquitectura seleccionada.
Software como la persona encargada de asesorar en la
planificación, dirigir, seguir y controlar todas las tareas Dimensiones del rol del Arquitecto de Software.
técnicas relacionadas con el desarrollo del software, y que
juega un papel significativo a la hora de esclarecer los
CCIA’2010 5
Al Arquitecto de Software se debe ver desde dos dimensión se creará un grupo de trabajo encargado de aplicar
dimensiones, una corporativa y otra de desarrollo. ¿Por qué las pruebas de concepto.
verlo así? Se parte desde el entorno de negocio para llegar a
las partes, el arquitecto en esta dimensión inicialmente se
enfoca en la visión del software, ve el producto como el
objetivo a alcanzar, analiza la forma en que se desarrolla,
define cómo y con qué se integra, cuáles son hitos
tecnológicos y de negocio, define sus diferentes
configuraciones, proyecta una imagen de cómo quedará el
producto y qué se necesitará para construirlo. En esta
dimensión se ve el producto desde la industria o la
organización, se piensa como empresa, se analizan las
oportunidades de negocio, se visualizan las integraciones
estratégicas necesarias, y esto es lo que se corresponde con la
dimensión corporativa. O sea una visión desde el negocio, sin
desarrollar nada, totalmente de trazar estrategias, de valorar
oportunidades, de evaluación del producto y de alcance.