3568086 El Rol Del Arquitecto

Embed Size (px)

Citation preview

  • 7/31/2019 3568086 El Rol Del Arquitecto

    1/25

    El Rol del Arquitecto de Software

    Profesor:

    Ral de Villa Cano

    Preparado por:

    Ivis Rosa Vsquez SierraPablo Andrs Carrillo

    Sorey Bibiana Garca Zapata

    Cohorte 10

    Especializacin en Desarrollo de SoftwareDepartamento de Informtica y Sistemas

    UNIVERSIDAD EAFITMedelln

    2008

  • 7/31/2019 3568086 El Rol Del Arquitecto

    2/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    1 Tabla de Contenido

    1 Tabla de Contenido ..................................................................................................2

    2 Introduccin .............................................................................................................3

    3 El Arquitecto de Software ........................................................................................5

    4 Mapa Conceptual.....................................................................................................9

    5 Caractersticas de un Arquitecto de Software, por Peter Eeles de IBM ..................10

    6 El Rol del Arquitecto de Software segn el Software Engineering Institute ..........11

    7 El Rol del Arquitecto de Software segn Rational Unified Process - RUP ................13

    8 El Rol del Arquitecto segn SUN SL-425 ................................................................159 El Rol del Arquitecto Microsoft ...............................................................................16

    10 El Papel del Arquitecto segn Bredemeyer Consulting ........................................21

    11 Conclusiones ........................................................................................................ 24

    12 Bibliografa .........................................................................................................25

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    3/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    2 Introduccin

    Hay quienes objetan vehementemente el uso de los trminos "arquitecto" y

    "arquitectura" en el dominio del software. Hoy en da, este trmino es utilizado

    para sistemas, productos, negocios y otros trminos informticos. As como no

    tiene sentido ver una casa como un puado de madera, clavos y ladrillos,

    tampoco tiene sentido ver el software como un puado de bits o incluso lneas

    de cdigo, tenemos que ver estructuras ms grandes, los cuartos, el flujo de las

    personas entre ellos, las columnas, el techo. Si podemos entender el sistema

    segn sus partes, podremos modelar sistemas cada vez ms grandes.

    De la misma manera que ocurre con la Arquitectura de Software, existen

    mltiples definiciones sobre el rol de los arquitectos de software. Se podra

    incluso citar una definicin por autor. En general esto puede ser causado porque

    se ubica a los arquitectos en el contexto de una organizacin en particular, con

    las propias necesidades y requerimientos de esa organizacin. La realidad

    parece indicar que es poco probable que se pueda dar una definicin de

    arquitecto transversal a cualquier organizacin, y definir un estereotipo de

    arquitecto que especifique cules son sus responsabilidades y habilidades

    necesarias dentro de un proyecto. Lo que s es posible es definir prototipos de

    arquitectos a muy grandes rasgos y aplicar cada uno de estos arquetipos enuna situacin en particular, dependiendo del contexto de la empresa, del

    proyecto y del equipo de trabajo.

    El papel del arquitecto ha estado presente desde el inicio de la vida del hombre

    en la tierra, desde la prehistoria existan los Arquitectos, aunque no hubieran

    sido llamados de esa manera, y es que para hablar de un Arquitecto tenemos

    que necesariamente hacer referencia a su significado etimolgico. La palabra

    Arquitecto nos llega de los griegos, quienes bautizaron tal papel con la palabra

    (architcton) que define al director de una construccin. Esta palabra

    proviene de la unin de dos races muy fuertes (archs), que significa gua

    y (tcton) que significa constructor. Pero al espaol lleg gracias a los

    romanos que llamaron Architectus, a los grandes guas de las impresionantes y

    avanzadas obras civiles del imperio mas grande del mundo antiguo.

    Cual es pues el papel del Arquitecto de Software que ha heredado el honor de

    tan noble asociacin?. Este trabajo presenta un conjunto de definiciones

    provenientes de las fuentes mas representativas en el mbito del software y

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    4/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    algunas de ellas recomendadas como punto de referencia especficamente para

    el tema de arquitectura de software.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    5/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    3 El Arquitecto de Software

    Los arquitectos disean estructuras que encajen con las necesidades humanas.Las estructuras pueden ser ensambladas con palos y piedras o software decomputadora y hardware, pero el rol del arquitecto contina siendo el mismo.Los arquitectos estn la mayora del tiempo escuchando los clientes,entendiendo a profundidad sus necesidades y recursos, investigando ydocumentando ordenadamente, creando una visin practica de una estructura ycreando un mapa de la misma. As como se construye una estructura, elarquitecto interviene en favor del cliente, asegurando que el resultado sea fiel al

    plan y guiando la visin del resultado entre la tempestad de los cambios en eldiseo, las crisis y las ambigedades.

    Abogar por el cliente es la piedra angular del rol del arquitecto. Para lograr el rolde un verdadero abogado, el arquitecto necesita un extenso repertorio deelementos de diseo en un aspecto de eleccin libre de cualquier atadura. Unarquitecto deja de ser un verdadero apoyo al cliente si se encuentra atado a unconjunto de tecnologas, herramientas o metodologas, restringiendo as lassoluciones disponibles al cliente. Los estilos arquitectnicos individuales y laspreferencias emergen y son impuestas, como siempre han sido, por el cliente,pero estas deben corresponder a los refinamientos y discernimiento de unamente entrenada, no las elecciones forzadas por los lmites de la educacin o la

    experiencia. Quien ha sido constructor toda su vida, no importa que talentososea, no necesariamente tiene el perfil de un arquitecto. Al que tiene un cincel enla mano, todo parece convertrsele en roca.

    Las palabras significan cosas. Un arquitecto es un Arquitecto, no un ingeniero,no un programador, no un cientfico, no un webmaster o un director deproyecto. La palabra Arquitecto es distinta en el negocio de la construccin. Enla construccin de software, muchos se apropian de la importancia del ttulo,pero fallan en representar bien el rol. El arquitecto construye no desarrolla. Losedificios no son desarrollados. Desarrollar es hacer crecer, evolucionar ydescubrir. Los arquitectos ven en perspectiva la construccin, no guan eldesarrollo. Tericamente, el desarrollo es infinito y esa es un leccin que yadeberamos haber aprendido.

    Presentar la profesin del Arquitecto de software implica definir una actividad,pero sin limitarla. Los programadores, ingenieros, diseadores y en generaltodos los profesionales de la construccin tendrn roles muy diversos y susesfuerzos efectos mayores. De igual forma que los arquitectos/constructores enel negocio de la construccin, los arquitectos de software pueden interpretar unpapel doble, cada uno con tareas claras y expectativas concretas. Esta claridadpermite investigaciones, libros, herramientas y metodologas que puedan ser

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    6/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    enfocadas a un proceso arquitectnico especfico. Los clientes entendern cadavez ms los roles y la secuencia en la que aparecen durante la construccin desoftware, llegarn incluso a tener los planos del sistema.

    Las siguientes fases definen el papel del arquitecto en el proceso deconstruccin de software, conceptualmente siguiendo las fases de laconstruccin y los servicios arquitectnicos descritos por el Documento delInstituto Americano de Arquitectura B163 (AIA por sus siglas en ingls). Estasfases aplican a todos los proyectos de construccin de software, incluyendoaquellos que usan mtodos iterativos o incrementales. Muchos profesionales desoftware han sacado una analoga de la construccin de edificios para describirsu proceso, ya que ella es una analoga verdadera entendible por los clientes.Esta analoga primaria encierra la respuesta a las crisis en la construccin desoftware y le dar forma a su futuro.

    Prediseo

    En esta fase el Arquitecto escucha y entiende el alcance del proyecto, lospuntos claves del diseo segn el cliente, los requisitos y las expectativas. Elarquitecto tambin estudia el contexto del proyecto -la empresa entera de laque hace parte el proyecto-. Los recursos del cliente son determinados (losfinancieros y los intelectuales), y los problemas y necesidades que el clientedesea resolver. El arquitecto identifica las posibles soluciones disponiblesusando tecnologa y cambios organizacionales, administrativos o de producto.Con la interaccin del cliente y el arquitecto, comienza a tomar forma unadireccin administrativa refinando su entendimiento hasta que una visincompartida emerge. Luego un presupuesto y cronograma general sondefinidos.

    Anlisis del Dominio

    El arquitecto se sumerge profundamente en el contexto y documenta eldominio para el cual el sistema ser construido, y aprende el detalle de cadauno de los requisitos del cliente. Los comportamientos deseados del sistemason definidos. El arquitecto determina el entorno tecnolgico del cliente yalcance de las interacciones que requiere realizar. El glosario y los conceptosclaves del dominio son adecuadamente definidos.

    Diseo Esquemtico

    El arquitecto prepara diseos de tipo arquitectnico que muestran las

    caractersticas del dominio y la estructura tecnolgica. Se definen los puntosclaves de la interfaz grfica (la apariencia y sensacin del sistema). En estepunto se construyen prototipos si son necesarios. Se estiman los riesgos de lamigracin.

    Desarrollo del Diseo

    El arquitecto contina con la profundizacin el detalle del tipo de solucin agenerar y refina cada vez ms los artefactos. Todos los documentos, glosarios

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    7/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    y diseos generados son finalizados en esta etapa, esto implica la muyimportante validacin del cliente.

    Documentacin del Proyecto

    El arquitecto se concentra en los requisitos que se construirn el sistema. Se

    documenta el tipo de proceso de construccin a desarrollar, los roles de losmiembros del equipo y las secuencias de trabajo a realizar. Se escribe la guade construccin y la gua de pruebas. El arquitecto especifica lasherramientas y las metodologas si es necesario. Todos estos y otros detallesque se necesiten por aquellos que van a construir el sistema, son definidosen esta parte.

    Seleccin y Contratacin (staffing)

    El arquitecto acompaa la identificacin y seleccin de los constructores odesarrolladores concretos del sistema. Para proyectos que sonsubcontratados, se solicitan ofertas a los contratistas y potenciales

    participantes, el arquitecto toma parte activa en la eleccin de los oferentes.Los detalles de los costos del proyecto, las secuencias de trabajo y la firmade los contratos, tambin son asistidos por el arquitecto.

    Construccin

    La supervisin del arquitecto durante la construccin del producto aseguraque la visin del cliente sea entendida y ejecutada correctamente. Elarquitecto revisa los diseos detallados de la construccin, analizaproblemas, evala nuevos requisitos y plantea modificaciones cuando sonnecesarias. El arquitecto disea los cambios aceptados, calcula el impactoglobal en diseo y costo, y define la secuencia de cambios que tienen que sergenerados, para luego participar en las actividades de pruebas y revisiones

    de usuario final para asegurarse que cumplan con la expectativas del cliente.

    PostConstruccin

    El arquitecto acompaa al cliente con la puesta en produccin y la migracinal nuevo sistema. El arquitecto puede, si as lo desea, vincularse con lacapacitacin de los operadores y usuarios del nuevo sistema. Posterior aesto, el arquitecto asiste al cliente en temas relacionados con garantas yaplicacin de procedimientos de mantenimiento. Y cuando todo ha finalizadoel arquitecto y el cliente se renen para recordar las dificultades y lostriunfos; hacen una gran fiesta en un restaurante Mexicano, cantan con elmariachi para todos los desarrolladores, empleados, clientes y directivos

    vinculados al proyecto, para as rerse en frente de todos aquellos queconstantemente dijeron que no poda hacerse y ahora permanecen mudosentre los invitados sorbiendo sus margaritas1.

    1 Worldwide Institute of Software ArchitectsArquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    8/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    9/25

    4 Mapa Conceptual

  • 7/31/2019 3568086 El Rol Del Arquitecto

    10/25

    5 Caractersticas de un Arquitecto de Software, por Peter

    Eeles de IBM

    El Arquitecto es una persona, equipo u organizacin responsable por laarquitectura del sistema (IEEE 1471) .

    Es un lder tcnico. El arquitecto tiene competencias tcnicas y deliderazgo, debe tener la autoridad para tomar decisiones tcnicas, ayudaa armar el equipo y a organizar el trabajo, adems constantementecomunica el valor de lo que se est haciendo.

    El rol puede ser llenado por un equipo con un lder claro. No siempre unapersona tiene todas las competencias. Un Equipo es un pequeo grupode gente con competencias complementarias y comprometidos con elpropsito, y con enfoques comunes por los que son mutuamente

    responsables.

    El arquitecto entiende el proceso de desarrollo de software. El arquitectodebera tener conocimiento del proceso de desarrollo, ya que estegarantiza que todos los miembros del equipo trabajen de maneracoordinada. Un buen proceso define las funciones claramente. Dado queel arquitecto participa a diario con muchos de los miembros del equipo, esimportante para el arquitecto entienda sus funciones y responsabilidades.A diario los desarrolladores apoyan su trabajo en el arquitectopreguntando cmo hacer tal cosa, por lo tanto, existe una claracoincidencia entre el papel del arquitecto y el papel de gestor delproyecto.

    Entiende el dominio del negocio. Un dominio es un rea de conocimientoo actividad caracterizada por un conjunto de conceptos y terminologaentendida por los profesionales del rea y permite imaginar requisitosprobables y anticipar cambios.

    Tiene conocimiento tecnolgico, pero no necesariamente experticiaprofunda. Dado que la tecnologa cambia con cierta frecuencia, esesencial que el arquitecto se mantenga actualizado con los cambiostecnolgicos.

    Tiene competencias de diseo.

    Tiene suficiente competencia de desarrollo como para comunicarse con elequipo.

    Es un buen comunicador.

    Toma decisiones.

    Entiende la poltica de la empresa.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    11/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Es un negociador, debe explicar a stakeholders del proyecto lasconsecuencias de sus opciones o alternativas de arquitectura.

    6 El Rol del Arquitecto de Software segn el Software

    Engineering Institute

    Cuales son las responsabilidades, competencias y conocimientos de unArquitecto de Software?.

    Para responder a esta pregunta, desde hace unos cuantos aos el SEI (SoftwareEngineering Institute) ha estado recopilando comentarios de las personas sobrelas responsabilidades de un arquitecto de software. Este es un compendio, en el

    que se resaltan los aspectos ms comnmente citados (todas las respuestasindividuales y sus autores pueden ser consultadas en el sitio web del SEI) y quea continuacin enumeramos:

    Elaborar la arquitectura correcta para solucionar el problema onecesidades del cliente.

    Definir y documentar la solucin elaborada. Asegurarse que todos losinvolucrados la estn utilizando y la estn utilizando bien.

    Asegurarse que se aplica en etapas de manera coordinada de tal formaque toda la organizacin pueda apropiarse de ella antes de que sea

    completada.

    Asegurarse de que la arquitectura de software sea acorde con el sistemadeseado.

    Actuar como el embajador de la propuesta arquitectnica.

    Hacer que la gerencia la entienda hasta el nivel necesario.

    Asegurarse de que el modelamiento sea correctamente realizado.

    Conocer cuales cualidades sistmicas, como el rendimiento, debenalcanzarse y en que medida.

    Responder sobre las inquietudes relacionadas con la seleccin deherramientas y ambientes de desarrollo.

    Identificar e interactuar con los interesados en el proyecto paraasegurarse que sus necesidades son satisfechas.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

    http://www.sei.cmu.edu/http://www.sei.cmu.edu/http://www.sei.cmu.edu/http://www.sei.cmu.edu/
  • 7/31/2019 3568086 El Rol Del Arquitecto

    12/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Asegurarse que la arquitectura no es solamente la correcta para laoperacin del sistema, sino que adems es la correcta para su soporte yevolucin.

    Resolver conflictos y ayudar a generar acuerdos.

    Solucionar problemas de tipo tcnico.

    Mantener la moral, tanto en el interior del grupo de arquitectura como alexterior. Esto ltimo es realizado proponiendo un diseo compacto cuandose requiera y entregando presentaciones y materiales que le permitan atodas las personas en la organizacin saber que se encuentran en elcamino correcto.

    Entender y planear las rutas de evolucin del sistema, disear un plan quegue la adopcin de nueva tecnologa.

    Gerenciar las estrategias de identificacin y mitigacin de los riesgos

    asociados con la arquitectura.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    13/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    7 El Rol del Arquitecto de Software segn Rational

    Unified Process - RUP

    El arquitecto de software tiene la responsabilidad general de conducir lasprincipales decisiones tcnicas, expresadas como la arquitectura de software.Por lo general, esto incluye la identificacin y documentacin de la arquitecturade los aspectos importantes del sistema, incluidos los requisitos, diseo,implementacin y despliegue, es decir, las vistas del sistema.

    El arquitecto se encarga tambin de proporcionar la justificacin de estasdecisiones, buscar el equilibrio entre los stakeHolders participantes, haciendodisminuir los riesgos tcnicos, y garantizando que las decisiones seancomunicadas, validadas y adoptadas efectivamente.

    El Arquitecto de Software debe poseer la madurez, visin y la experiencia quepermite comprender los problemas de manera rpida y tener un juicio crticocuando existe informacin incompleta, por ejemplo. Ms concretamente, elarquitecto de software, o miembros del equipo de arquitectura, deben combinarestas capacidades:

    Experiencia en el dominio del problema, a travs de una profundacomprensin de los requisitos, y el dominio de la ingeniera de software.Si hay un equipo, estas cualidades se pueden propagar a travs de losmiembros del equipo, pero al menos un arquitecto de software debetener la visin global del proyecto.

    Liderazgo con el fin de gestionar el esfuerzo tcnico a travs de losdiversos equipos, y tomar las decisiones acordes aun bajo presin. Paraser eficaz, el arquitecto de software y el jefe de proyecto debe trabajar enestrecha colaboracin. El arquitecto de software debe tener la autoridadpara tomar decisiones tcnicas.

    Comunicacin para ganar confianza, para persuadir, motivar, y guiar. Elarquitecto de software no puede conducir por decreto, slo con elconsentimiento del resto del equipo del proyecto. El arquitecto de

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    14/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    software debe ganarse el respeto del equipo del proyecto, del director delproyecto, del cliente, y la comunidad de usuarios, as como el equipo degestin.

    Orientacin por objetivos y pro-actividadcon un implacable enfoqueen los resultados. El arquitecto de software es la fuerza impulsora detrs

    del proyecto, no un soador o visionario. La carrera de un exitosoarquitecto de software es una larga serie de optimas decisionesadoptadas en la incertidumbre y bajo presin. Slo los que puedecentrarse en hacer lo que hay que hacer tendrn xito en este entorno delproyecto.

    Desde el punto de vista de expertos, el arquitecto de software tambin debeabarcar el Papel de Diseador, sin embargo, a diferencia del diseador, elarquitecto de software:

    Tiende a ser un generalista en lugar de un especialista, a sabiendas demuchas tecnologas de alto nivel en lugar del nivel de detalle.

    Hace ms amplias las decisiones tcnicas en el dominio de la solucin, ypor lo tanto, debe tener amplio conocimiento y experiencia, as como lacomunicacin y habilidades de liderazgo, son fundamentales.

    El Arquitecto de software es un rol en un proyecto de desarrollo de software, elcual se realizan varias actividades y se tienen responsabilidades como semuestra en el siguiente grfico.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    15/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    8 El Rol del Arquitecto segn SUN SL-425

    El arquitecto de software, segn SUN Microsystems Architecting and DesigningJ2EE Applications SL-425, debe cumplir con las siguientes caractersticas yroles.

    Visualiza el comportamiento del sistema. Crea los planos para el sistema. Define el modo en que los elementos del sistema trabajan en conjunto. Distingue entre los requisitos funcionales y no funcionales del sistema.

    Se encarga de la integracin de los requisitos no funcionales en elsistema.

    El arquitecto comunica el diseo del sistema a otros miembros del equipo.

    El arquitecto es un miembro de un equipo de desarrollo.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    16/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Una de las definiciones de la arquitectura de software considera que laarquitectura es un procesocreativo, como tal puede tener aspectos positivos y negativos. Los Arquitectos

    deben tratar de equilibrar la creatividad con la ciencia en forma de modelos,marcos, y patrones.

    Para construir una arquitectura, el arquitecto utiliza lo siguiente:

    Fundamentos de Arquitectura. Experiencia: Las mejores prcticas, Marcos, patrones y (Expresiones

    Idiomticas)Idioms.

    Un arquitecto crea una arquitectura con los siguientes objetivos en mente.

    Modularidad. La proteccin y la exposicin.

    Componentes Extensibles. Funciones y responsabilidades.

    Contratos. Comportamiento Adaptable.

    9 El Rol del Arquitecto Microsoft

    Microsoft clasifica los arquitectos de la siguiente forma:

    Enterprise Architect/Chief Architect: El arquitecto Empresarial es elresponsable de la ejecucin de la visin del CIO y la estrategia de TI.Incluye la definicin de programas estratgicos, la seleccin deplataformas tecnolgicas adecuadas, y proporcionar orientacin para lasimplementaciones. El arquitecto Empresarial ayuda al CIO a asegurar quelas inversiones en TI estn alineados a la estrategia de negocio, y aproporcionar ventaja competitiva para la organizacin. La personatambin es responsable para definir las normas y directrices, y los

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    17/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    lineamientos de gestin para adaptar la aplicacin a las normas definidasy directrices. En algunas organizaciones, esta tarea se fusiona con la delCIO.

    Solution Architect: El arquitecto de Soluciones es el responsable de laejecucin de un programa estratgico de TI. Esto incluye la definicin de

    la solucin arquitectnica para el programa, la seleccin de plataformastecnolgicas acordes a la estrategia de la empresa, comunicacin con elequipo de trabajo, y la toma de decisiones sobre cuestiones tcnicasdurante la ejecucin del proyecto. Generalmente tiene que mediar entrelas empresas y equipos de tecnologa y otros grupos. En algunasorganizaciones, este papel se define simplemente como "arquitecto". Elpuesto de alto nivel tiene el ttulo de "Arquitecto Lder.

    Technical Architect: El arquitecto tcnico es por lo general unespecialista en una tecnologa particular. Esta persona tieneconocimiento experto de la tecnologa y las funciones de la misma, loscomponentes que la integran, y comprende los puntos fuertes y laslimitaciones de la tecnologa. Esta persona es responsable de determinarla aplicabilidad de la tecnologa, para definir la mejor arquitectura posibleutilizando una tecnologa en particular, y tambin para guiar al equipo enla aplicacin de la solucin. En general, del arquitecto tcnico se esperaconocer las distintas herramientas de proveedores en el mbito de latecnologa, las ltimas tendencias en el mercado, de arquitectura ydiversas alternativas para aplicar la solucin.

    La siguientes grfica muestra la relacin entre estos tres roles con la tecnologay la estrategia de la organizacin.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    18/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Adems existen los,

    Infrastructure architects. El arquitecto de Infraestructura esresponsable de las decisiones del rea de infraestructura, de mantener elentorno de TI y los usuarios finales, y de comunicarse constantementecon los ingenieros que mantienen reas especficas de la infraestructura.Se encargan de crear una arquitectura que cumple con los acuerdos de

    niveles de servicio de las necesidades de los empresarios y apoya lasaplicaciones y soluciones que se requieren para operar en el da a da delas empresas.

    Microsoft en su programa de Arquitecto Microsoft considera algunascaractersticas comunes a todos los arquitectos independientes del tipo dearquitecto. Algunas de estas caractersticas son:

    Poseer fuerte visin para los negocios: Consiste en entender los costosde capital operacional y considerar cada uno de estos mientras se crea lasolucin. Leer estados financieros, tener conversaciones con funcionariosfinancieros y tener una comunicacin acertada con los dueos de negocios

    para justificar los proyectos y calcular el rendimiento de un proyecto.

    Pensamiento visionario: Durante la participacin en un proyecto, elarquitecto debe considerar y proyectar la tecnologa en el futuro, visionandolos cambios que se producen en los negocios de los clientes, y la mejormanera de aprovechar las ventajas de la solucin tecnolgica actual en elfuturo.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    19/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Investigar nuevas tecnologas: El arquitecto debe estar en continuainvestigacin de nuevas tendencias en tecnologa, arquitectura de TI y lasaplicaciones empresariales.

    Comprender Frameworks arquitectnicos y las mejores prcticas: Losarquitectos entienden cules son los Frameworks de arquitectura yempresariales y su valor en un proyecto. Los arquitectos seleccionan y usanmetodologas en los proyectos, entienden el funcionamiento de Frameworks ycmo la solucin ser desarrollada, y el comportamiento antes y despus deldespliegue. Entienden el ciclo de vida de un proyecto y de una solucin.

    Seguir y divergir a la vez: Cuando se trabaja en un entorno particular o enun proyecto especifico, los arquitectos deben tener la capacidad depersonalizar o modificar Frameworks y/o las metodologas utilizadas paralograr una solucin a un problema o requisito de negocio.

    Poder para desarrollar rpidamente profundo conocimiento en una

    tecnologa: Ganando profundidad en mltiples tecnologas anteriores, elarquitecto puede asociar o transferir la capacidad de aprender otros mtodospara investigar y para ganar rpidamente experiencia en nuevas tecnologas.

    Pueden trabajar con ambigua o incompleta informacin: LosArquitectos deben colaborar en el proceso de indagacin de la informacinpara llegar a una solucin, pero pueden empezar a trabajar con informacinlimitada y conforme el proyecto progresa, tomar decisiones de compensacino equilibrio con el fin de mantener una solucin que cumpla con los objetivos,y continuar satisfaciendo las exigencias de negocio que al principio fueronidentificadas. Sin embargo el arquitecto debe saber claramente si con lainformacin limitada puede empezar a trabajar sin poner en riesgo el

    proyecto mas adelante por cambios drsticos o si el proyecto debesuspenderse antes de recopilar informacin mnima para empezar las tareas,es importante el trabajo conjunto de todo el equipo de proyecto en esteaspecto.

    Microsoft posee un programa de certificacin de Arquitectos (Microsoft CertifiedArchitect Program), el cual sirve para identificar a los mayores expertos enArquitectura TI del sector. Se trata de arquitectos que pueden utilizar mltiplestecnologas para resolver problemas empresariales y ofrecer cifras y parmetrosa los negocios para ayudarles a determinar el xito o el fracaso de los proyectosque dirigen.

    A continuacin presentamos tambin las Competencias de un arquitecto segnMicrosoft .

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    20/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    En esta pirmide, la experiencia y cualidades de liderazgo constituyen lospilares fundamentales del rol del arquitecto. Tambin se necesita perspicaciatcnica, buenas habilidades de comunicacin, entender el dominio del problemaantes de disear una solucin y la capacidad de gestin.

    El arquitecto de software debe tener una mentalidad estratgica, es decir, lahabilidad de ver las cosas a 50.000 pies de altura, a un nivel estratgico,abstraerse de la complejidad operativa. Se trata de adoptar una visin msamplia.

    Muchos recursos educativos y las certificaciones estn disponibles paraalcanzarlas. Adems los arquitectos con experiencia, son otra fuente importante

    de recursos, ya que la informacin por s sola es insuficiente para el desarrollode muchas habilidades necesarias. Los aspirantes a los arquitectos debenconsiderar muchos factores a la hora de hacer carrera, desde los tipos deproyectos para el acceso a los mentores o expertos. La arquitectura es exigentepero gratificante profesin, sino que tiene determinacin y una buenaplanificacin para desarrollar plenamente sus habilidades y madurar en elpapel.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    21/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    10El Papel del Arquitecto segn Bredemeyer Consulting

    Pude definirse de manera simplona que un Arquitecto es aquel que hace

    Arquitecturas y sus responsabilidades se restringen a hacer bien su trabajo. Esto

    pude incluir articular la visin arquitectnica con las necesidades del cliente,

    conceptualizar y experimentar con diferentes estrategias arquitectnicas; crear

    modelos, componentes y documentos de especificacin de interfaces.

    Sin embargo, cualquier arquitecto experimentado sabe que el papel no solo

    encierra estas tareas de tipo tcnico, sino que existen otras de un carcter ms

    diplomtico y estratgico por un lado y por otro lado tareas de consultora yasesora. Un sentido coherente del negocio y una adecuada estrategia

    tecnolgica son necesarias para vislumbrar la arquitectura que solucionar los

    problemas del cliente, dados los objetivos y restricciones al arquitecto en la

    organizacin. Las actividades en esta rea incluyen la escucha activa a los

    interesados del proyecto para entender de manera profunda sus intereses y las

    metas a satisfacer, implica tambin crear mapas tecnolgicos y estrategias de

    diferenciacin, a la par con la realizacin de afirmaciones sobre tendencias

    tecnolgicas y sus consecuencias en la estrategia tcnica del proyecto y la

    arquitectura planteada.

    El arquitecto (o equipo de arquitectura) necesita tener empata con una

    variedad de grupos de interesados en el proyecto, incluyendo la gerencia a

    diferentes niveles, analistas de negocio o de ventas y sobre todo los

    desarrolladores. El arquitecto necesita balancear su participacin con la

    necesidad de tomar en cuenta las mltiples opiniones de su equipo de trabajo.

    Mientras ms amplio horizonte tenga la arquitectura, ms ajustada ser a la

    ptima. El arquitecto tiene que pasar por encima de muchas "Polticas

    Organizacional" para lograr convencer a muchos interesados en el proyecto,

    para comunicar extensivamente y trabajar con diversas redes de personas que

    influyen en el xito de la arquitectura.

    Pero lograr "vender" la arquitectura no es suficiente. Todos los que estn

    vinculados con su implementacin necesitan entenderla. Los documentos tipo

    "ladrillo" son famosos por ser excelentes "recogedores de polvo". La

    participacin temprana de los desarrolladores ms experimentados trae buenas

    ideas en el proceso de definicin de la arquitectura y tambin crea un amplio

    entendimiento de los deseos de los desarrolladores y el costo de su

    implementacin.Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    22/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Adicionalmente para proyectos grandes, puede ser bastante til crear tutoriales

    que expliquen cuales fueron las decisiones que llevaron a proponer la

    arquitectura objetivo, ya que durante los diversos ciclos de construccin es

    necesario realizar ajustes.

    El arquitecto tambin es un mentor y un entrenador, trabajando con los

    desarrolladores para motivarlos cuando los retos aparecen, sobretodo cuando

    tienen un amplio impacto o son crticos para el xito del sistema. Ms all, el

    arquitecto no slo debe liderar su equipo y la comunidad de desarrolladores sino

    que debe liderar y motivar la organizacin completa en la direccin tcnica

    adecuada.

    Quien es adecuado entonces para el papel de Arquitecto?, pues, muy

    frecuentemente el convertirse en "Arquitecto" es una promocin ofrecida a los

    desarrolladores muy hbiles en un esfuerzo por retenerlos. Desafortunadamenteno todos los tcnicos superdotados tienen el talento y las competencias que los

    hacen buenos arquitectos. An as, el ttulo genera expectativas, en el

    "arquitecto" y en el resto de la organizacin, de las responsabilidades asociadas

    con el cargo. Esto puede generar un montn de conflictos para una persona

    fuertemente orientada a la parte tcnica, que repentinamente se ve enfrentada

    con polticas empresariales y exigencias de una comunicacin efectiva y fluida.

    Los mejores arquitectos entonces, son expertos en tecnologa que infunden

    respeto en la comunidad tcnica, tambin son buenos estrategas, excelente

    diplomticos, consultores, asesores y lderes.

    Para desarrollar en 1995 un taller en Hewlett-Packard sobre arquitectura,Bredemeyer Consulting estudi muchos proyectos arquitectnicos, revis

    literatura al respecto e incluso estudi el proceso la Arquitectura de edificios. Tal

    sera el inicio de una larga relacin con cientos de arquitectos de diferentes

    campos de la industria que le han permitido a esta empresa consultora un

    entendimiento profundo de la arquitectura y del proceso Arquitectnico como

    tal.

    Basados en este entendimiento, y mirando las tendencias actuales de la

    arquitectura, se ha podido establecer un Marco de Trabajo se han identificado

    varias reas de actividad criticas o dominios de competencia, que aparecen

    definidamente en el papel de arquitecto. Estos son Tecnologa, Estrategia

    Organizacional, Poltica Empresarial, Asesora y Liderazgo. Cada uno de ellos

    tiene sus propios elementos de conocimiento, actividades y caractersticas

    personales que hacen de un arquitecto ser exitoso en cada uno de dichos

    aspectos. Estos elementos pueden ser agrupados segn apunten a las

    competencias del Saber, del Saber Hacer y del Saber Ser. El siguiente cuadro

    muestra como se relacionan entre si estos elementos.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    23/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    24/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    11Conclusiones

    El trmino Arquitecto de Software se ha convertido en el ttulo de moda en todaempresa de sistemas o con un rea propia de sistemas, aunque es comn quemuchas de las tareas relevantes de un proyecto puedan ser perfectamenteresueltos con desarrolladores experimentados, sin tener la necesidad decontratar un arquitecto. Muy frecuentemente se tiende a confundir estos dosperfiles, que son abismalmente diferentes. Tambin es importante notar ladiferencia entre los gures tecnolgicos y los verdaderos arquitectos. Estascuestiones aumentan la confusin existente sobre qu es un arquitecto y culesse supone tendran que ser sus responsabilidades.

    El rol del arquitecto es un rol crtico en los proyectos, se focaliza en la calidad de

    servicio y lidera el proceso de definicin y la implementacin de la arquitectura.El arquitecto reutiliza implementaciones de arquitecturas exitosas, frameworksy patrones de diseo y no es un diseador en un proyecto. Un Arquitecto es unfacilitador, no toma decisiones unilaterales, irracionales, evita riesgos en losproyectos y agrega valor.

    A diferencia de un programador, el Arquitecto de Software debe dominar lamayor cantidad de tecnologas de software y prcticas de diseo, para as podertomar decisiones adecuadas para garantizar el mejor desempeo, reuso,robustez, portabilidad, flexibilidad, escalabilidad y mantenibilidad de lasaplicaciones. Estas decisiones sobre la estructura y dinmica de la aplicacinson plasmadas en una notacin formal estandarizada como lo es UML.

    Como base, el rol de los arquitectos suele comprender las tareas de: definicinde las vistas de la arquitectura de una aplicacin, dar soporte tcnico-tecnolgico a desarrolladores, clientes y expertos en negocios, conceptualizar yexperimentar con distintos enfoques arquitectnicos, crear documentos demodelos y componentes y especificaciones de interfaces, validar la arquitecturacontra requerimientos, suposiciones y adems tener una dosis de estrategia ypoltica, o sea, ser, en parte, un consultor.

    Arquitectura de SoftwareDocente: Ral de Villa Cano.

  • 7/31/2019 3568086 El Rol Del Arquitecto

    25/25

    Universidad EAFITEspecializacin en Desarrollo de Software

    12Bibliografa

    WORLDWIDE INSTITUTE OF SOFTWARE ARCHITECTS. Role of the Software Architect[en lnea] [citado en 15 de Junio de2008]

    CARNEGIE MELLON UNIVERSITY. What Are the Duties, Skills, and Knowledge of aSoftware Architect? [en lnea] [citado en 16 de Junio de2008]

    MICROSOFT CORPORATION. What Architect Job Roles Are Recognized By theMicrosoft Certified Architect Program? [en lnea]

    [citado

    en 11 de Julio de 2007]

    IBM SOFTWARE GROUP. Characteristics of a Software Architect [en lnea]

    [citado en 15

    Marzo 2006]

    BREDEMEYER. Architect Competency Framework [en lnea]

    [citado en 16 de Junio de 2008]

    Architecting and Designing J2EE Applications (SL-425), Training Courses, Sun

    Education Services pdf.

    The Role of an Architect, the Architecture Journal by Amit Unde, Edicion #15. Page

    7-9.

    Role: Software Architect, Documentation Rational Unified Process Version 7.0,

    Copyright (C) IBM Corporation 1987, 2005.

    Arquitectura de Software

    http://www.bredemeyer.com/pdf_files/ArchitectCompetencyFramework.PDFhttp://www.bredemeyer.com/pdf_files/ArchitectCompetencyFramework.PDF