-
-
-
-
URL copied!
Por Diego Chulak, Solution Architect de GlobalLogic LatAm.
El perfil de un arquitecto siempre suele ser un tanto difuso, en consecuencia, puede traer dolores de cabeza a los buscadores de talentos. ¿Por qué sucede esto?
Hay muchas razones, pero una de las más importantes es el hecho de que el rol del arquitecto y las prácticas de arquitectura son bastante nuevas. Sin embargo, son muy necesarias.
Los roles funcionales, de infraestructura y de desarrollo tienen prácticamente la antigüedad de la informática con algunas excepciones. La arquitectura nació de la necesidad de integrar soluciones y plataformas, combinándola con complejidades tecnológicas, requerimientos no funcionales infinitos y la necesidad de que todo escale y perdure en el tiempo. Las arquitecturas no son solamente fotos sino más bien películas, evolucionan en el tiempo.
Es importante destacar que la arquitectura tiene múltiples vistas. De despliegue, funcional, de infraestructura, de datos etc. Lo cual hace muchísimo más ardua aún la tarea de definir un perfil y consecuentemente encontrarlo dentro del mercado laboral.
Sin embargo, considero que existen unas 10 habilidades que todo arquitecto debería tener:
Capacidad de entender el dominio de un problema y el modelado del mismo. Es imposible resolver o entender un problema si no comprendemos su lógica y naturaleza o si no entendemos cómo se estructuran sus datos y ciclo de vida, transformación y flujo de los mismos.
Entendimiento de Frameworks y estándares de mercado. Generalmente se tratan de templates o guías y son una excelente práctica para poder conocer dentro de los proyectos, marcan un norte y una tendencia. Es fundamental entenderlos y conocerlos para poder sacar provecho de las mejores prácticas y disciplinas que cada uno de ellos ofrece y saber en qué escenarios conviene aplicarlos. (1)
Entender fronteras y alcances. Uno de los principales desafíos de un arquitecto es entender el límite y alcance del dominio de la solución y sobre todo no involucrarse en temáticas que estén fuera de nuestro control.
Habilidad en el uso de herramientas de modelado. Es necesario tener la habilidad de generar, mantener e interpretar gráficas y diagramas que estén relacionados o bien con el contexto de la problemática a resolver, o bien con la solución al mismo. Este lenguaje debe ser universal y entendible por todos los interesados y la audiencia del proyecto.
Conocimientos de UML. Este es el lenguaje más universal y difundido del modelado que existe hoy por hoy dentro del mercado. Ofrece tipos de diagramas y propone vistas para todo el universo de cosas que queramos o necesitemos expresar en gráficos.
Requirement analysis & Management. Esta práctica si bien no siempre es asociada con el rol del arquitecto es crítica para poder entender y acompañar la problemática que envuelve un proyecto, y por lo tanto acompañar las diferentes tareas y decisiones que son necesarias dentro del mismo.
Visualizar issues complejos. Esta habilidad consiste en poder “decodificar” la temática, o requerimiento y sus dependencias, que tenemos frente a nuestros ojos por más compleja que esta sea.
Poder comunicarse a través de las comunidades. Es muy relevante esta habilidad para poder interpretar, consensuar y comunicar entre los diferentes grupos, roles o personas interesadas en una solución para lograr que sea aceptada y satisfactoria para todos.
Resolución analítica y creativa de problemas. Estos dos ítems van juntos, y son el principal conocimiento que debe tener un arquitecto, ya que debemos ser rigurosos y específicos en la resolución de una solución, pero a la vez creativos e innovadores a la hora de tener que empezar a desarrollarla. ¿Cómo se genera este conocimiento? Básicamente intentar y no cerrarse en esquemas probados y/o conocidos todo el tiempo dándose la libertad de explorar y dejar volar un poco la imaginación.
Por otro lado, es clave entender la diferencia entre un arquitecto y un diseñador. El diseño es lo que todo ingeniero quiere crear o generar. Es el lugar en que todas las reglas de la creatividad, lo requerimientos de los participantes y las necesidades del negocio, más las consideraciones técnicas, se unen para formular una solución. Es lo que nos permite modelar la solución que se quiere construir/obtener. Es aquí donde se establecen y tienen en cuenta las pautas y estándares del modelo a diseñar. Podemos representar estas diferencias en los siguientes aspectos:
Aspecto | Arquitectura |
Diseño |
Nivel de abstracción |
Alto nivel |
Bajo nivel haciendo foco específico en detalles técnicos. |
Entregables |
Mapas de arquitectura, subsistemas, integraciones, vistas de infraestructura. Despliegue tecnológico. |
Diseño detallado de componentes. Pautas de codificación,etc |
Areas de enfoque |
Selección de tecnologías, soluciones y plataformas.
Análisis de riesgo |
Requerimientos funcionales. |
De esta manera, podemos afirmar que con los conocimientos y habilidades mencionados anteriormente, ya nos podríamos definir como verdaderos arquitectos preparados para crear las mejores soluciones dentro de nuestros proyectos, y manteniendo un scope de trabajo claro
Nota
(1) Existen también frameworks y estándares que son específicos de una industria en particular, como puede ser financiera, logística, industrial, etc. Por ejemplo, dentro de la industria de banking existe el framework llamado BIAN, HL7 que pertenece a health care y eTOM que es de la industria de las telecomunicaciones.
Top Insights
Escribiendo User Stories en Agile
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyWhat is TM Forum Frameworx and how to...
UncategorizedAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyImpact Mapping en Metodologías ágiles
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyTop Authors
Blog Categories
Trabajemos juntos
Contenido Relacionado
5 razones por las que tu proyecto necesita un Business Analyst
Contar con un Business Analyst (BA) en tu equipo no solo te ayudará a delegar tareas más operativas, sino que también potenciará al equipo de desarrollo y contribuirá significativamente al éxito de tu proyecto de desarrollo de software.
Conocer más
7 claves para ser un miembro de un equipo efectivo
Un gran desarrollador necesita trabajar tanto en sus habilidades técnicas como en sus habilidades blandas, ya que estas forman la base para cualquier profesional que quiera ser una pieza efectiva e inspirar un cambio positivo en su equipo y organización. He recopilado una serie de recomendaciones que considero básicas y de vital importancia para trabajar … Continue reading Las 10 skills que todo arquitecto debe tener →
Conocer más
Share this page:
-
-
-
-
URL copied!