Ds - Desarrollo de Software
Arquitecto de Software
Responsabilidad / Principales competencias
Es el responsable de la definición y diseño de la arquitectura.
Entre sus competencias está:
Definir la arquitectura de los sistemas tomando las decisiones de diseño de alto nivel y estableciendo los estándares técnicos, incluyendo plataformas, herramientas y estándares de programación, teniendo en cuenta los requisitos funcionales, no funcionales y las necesidades del negocio.
Nombres de Cargos Similares
Diseñador de Software, Diseñador de Soluciones, Desarrollador Senior.
Actividades que realiza
-
Negociar con el propietario de la aplicación y el líder de proyecto para tomar las decisiones de diseño de alto nivel que correspondan.
-
Seleccionar el software: Seleccionar la tecnología a utilizar en conjunto con el líder de proyecto; y definir y revisar estándares y normas aplicables al diseño y construcción, brindando coaching técnico al equipo de desarrollo.
-
Diseñar la arquitectura: Conducir la construcción del modelo de arquitectura/diseño, subdividiendo aplicaciones complejas en partes o componentes menores, más fáciles de manejar.
-
Realizar un seguimiento del proceso de desarrollo para asegurarse que sus instrucciones se implementen en forma adecuada; y registrar los cambios de arquitectura que se produzcan.
-
Asegurar la calidad: Medir la performance de la aplicación y conducir pruebas en relación a la performance, seguridad, etc.
-
Facilitador: Colabora con otras áreas como seguridad informática, base de datos, operaciones, el equipo de mantenimiento, etc.
-
Liderazgo Técnico: Capacidad para asumir la dirección técnica y asegurar todos los aspectos de la arquitectura con responsabilidad y autoridad. Poder realizar coaching y mentoring sobre problemas técnicos, ayudando a la evolución profesional del equipo de programadores.
-
Conjuntamente con el líder de pruebas, definir las pruebas de los requisitos no funcionales y de integración que se realizarán y efectuar un seguimiento de las mismas.
Conocimientos necesarios
-
Dominio de arquitectura de software, metodología de componentes y su interacción.
-
Conocimiento de las tecnologías de comunicación disponibles.
-
Estándares y normas a aplicar en la construcción de software de la tecnología a su cargo.
-
Conocimiento en programación avanzados en varios lenguajes, arquitecturas y paradigmas.
-
Manejo de herramientas para la gestión de requerimientos y ambientes de desarrollo.
-
Lecto-comprensión y elementos de redacción en inglés.
-
Conocimiento avanzado de Bases de Datos (tanto en la rama de programación como administración).
-
Conocimiento avanzado de comunicación entre aplicaciones: SOA, Servicios Web (SOAP, REST), protocolos y lenguajes de comunicación (XML, JSON).
-
Conocimientos de Ingeniería del Software.
-
Prácticas de Testing y Refactoring.
-
Conocimiento de metodologías de análisis como UML u otras.
-
Conocimiento de metodologías ágiles como SCRUM u otras.
-
Conocimiento de herramientas de control de versiones como GIT u otras.
-
Conocimientos de patrones de software empresarial.
Competencias, habilidades o aptitudes deseables
-
Iniciativa
-
Creatividad
-
PlanificaciónyControl
-
Pensamiento de Integración
-
Pasión por la tecnología
-
Capacidad de análisis y de síntesis para la resolución de problemas complejos
-
Capacidad de trabajar en equipo, compartiendo información y conocimientos y tomando en cuenta a los usuarios
-
Actualización permanente en las tecnologías a su cargo, de forma tal de proponer e instrumentar
-
Gran capacidad de aprendizaje.
Posibles especializaciones o áreas de especialización
-
Aplicaciones móviles.
-
Requiere conocimiento de sistemas operativos y software para dispositivos, lenguajes o ambientes de programación para sistemas embebidos
Diferencias por nivel
Nivel: Competencias
Nivel 1 - Trainee: N/A
Nivel 2 - Junior: N/A
Nivel 3 - SemiSenior: Tiene experiencia en su campo de ocupación e independencia para abordar problemas puede descomponer problemas, buscar posibles soluciones y tiene idea del conjunto del proyecto. Puede trabajar en cooperación con un Perfil Senior para abordad sistemas más complejos.
Nivel 4 - Senior: Cuenta con una experiencia variada, gran autonomía y capacidad de brindar coaching a otros. Comprende la arquitectura y tiene autonomía para deducir y completar especificaciones incompletas, especialmente las no funcionales. Sabe estimar su esfuerzo y planificar el proyecto técnicamente.