Perfil Laboral: Arquitecto de Software

0
Perfil Laboral: Arquitecto de Software

En este post vamos a detallar el perfil de un Arquitecto de Software: qué tareas realiza, cuáles son los requisitos que debe cumplir, las responsabilidades de este perfil y un promedio salarial.



¿Qué hace un Arquitecto de Software?

Un arquitecto de software diseña la estructura general y la arquitectura de sistemas de software complejos. Define la tecnología y las herramientas a usar, establece estándares de codificación y asegura que el sistema sea escalable, eficiente y mantenible.


Colabora con desarrolladores, ingenieros y otros interesados para "traducir" requisitos de negocio en soluciones técnicas. Verifica como se va a "comportar" el software como un todo dentro de un ambiente computacional, es por ello que debe conocer sobre infraestructura de computadores, base de datos, redes computacionales, experiencia de usuario, testing, levantamiento de requisitos, diseño del sistema, regulaciones, normas, etc.


El Arquitecto de Software toma decisiones sobre patrones de diseño, selecciona frameworks y plataformas, y supervisa la implementación para asegurar la calidad del software. También se encarga de la documentación y proporciona guías técnicas, facilitando la evolución del software en respuesta a nuevas necesidades y tecnologías emergentes. En otras palabras, el Arquitecto de Software en un proyecto de desarrollo de sistemas es el Director de Orquesta, para que el sistema fluya como una bella melodía.


Para muchas de las compañías centradas en software y en internet es vital contar con un profesional con experiencia que conozca del negocio para tener un sistema óptimo que cumpla con las necesidades de los usuarios a la par con los requisitos técnicos.


¿Qué requisitos mínimos debe cumplir este perfil?

Los requisitos y responsabilidades de este perfil pueden variar mucho de acuerdo a las exigencias de la empresa, la industria en que se desempeña la compañia y el giro del negocio. Pero, vamos a describir algunos de ellos porque pueden llegar a ser muchos.


He listado los requisitos más relevantes en la industria de acuerdo a mi experiencia, depende mucho de la tecnología que se quiera usar. Este es un Profesional en Computación que tiene un alto perfil con muchos conocimientos:


Requisitos Educativos

  • Licenciatura en Ciencias de la Computación, Ingeniería Informática, Ingeniería Eléctrica o Industrial.
  • Licenciado/Postgrado (Maestrías o Doctorado) en Ciencias de la Computación o Ingeniería o su equivalente en años de experiencia laboral.
  • Certificaciones relevantes a la Arquitectura de Software.

Experiencia

  • Al menos 10 años de experiencia en el lenguaje de programación que sea requerido.
  • Que haya trabajado como Arquitecto de Software o Ingeniero de Software Senior por al menos 5 años.

Requisitos en Habilidades Técnicas

  • Experiencia en un lenguaje de programación (Java, C#, C++, Python, Elixir o el lenguaje requerido).
  • Dominio del idioma inglés.
  • Conocimiento del Marco de Trabajo TOGAF 10.
  • Conocimientos en HTML5, CSS y Javascript (diferentes frameworks).
  • Para sistemas Web: Desarrollo seguro de aplicaciones web (OWASP).
  • Herramienta para gestión de versiones de código SVN o Git.
  • Conocer muchas metodologías de desarrollo de software.
  • Comprensión del ciclo de vida del desarrollo de software (SDLC) e integración continua.
  • Experiencia en herramientas y ciclo de vida de desarrollo de software ágil.
  • Conocimiento de SCRUM.
  • Arquitectura de microservicios.
  • Experto en levantamiento de requerimientos de software.
  • Experto en análisis y diseño de software.
  • Capacidad demostrada para producir artefactos de: requisitos, especificaciones funcionales, diagramas de flujo de datos.
  • Fuerte conocimiento de los principios y prácticas de evaluación de software.
  • Experiencia generando enfoques y soluciones innovadores a problemas complejos.
  • Experto en diseño e implementación con estabilidad, rendimiento y escalabilidad 24/7.
  • Excelencia en habilidades de documentación de arquitectura.
  • Buen conocimiento de la infraestructura de TI empresarial y entornos a gran escala. (redes, enrutadores, conmutadores, firewalls, SAN, servidores, balanceadores de carga, WAF)
  • Soluciones de Replicación y Alta disponibilidad.
  • Gestión de Respaldos.
  • Principios de Seguridad Informática.
  • Soluciones de Seguridad Perimetral.
  • Buen conocimiento de las prácticas y leyes de privacidad de datos aplicables.
  • Conocimientos de configuración y administración de servidores (Windows y Linux).
  • Experiencia con tecnologías relacionadas con la web.
  • Virtualización (VMware vSphere, MS Hyper-V, Oracle VirtualBox).
  • Administración de Máquinas virtuales.
  • Bases de datos relacionales (Oracle, DB2, SQL Server, PostgreSQL).
  • Bases de datos NoSQL (MongoDB, Cassandra).
  • Tener un sólido conocimiento de los modelos/diseños de nube pública/privada/híbrida.
  • Despliegue en la nube (Azure, Heroku, Amazon, Cloud Foundry, Google, IBM)
  • Herramientas de construcción (Gradle, Maven, Ant).
  • Administración de Servidores de Aplicaciones (IIS, WildFly, Tomcat, Django, JBoss, WebLogic, Jetty, Cowboy).
  • Experiencia en diseño de plataformas de software con API abiertas.
  • Experiencia en procesos de desarrollo de software comercial.
  • Diseño funcional y orientado a objetos.
  • Experiencia en UML.
  • Formatos de texto XML y JSON.
  • Servicios web (RESTful).
  • Herramientas de mapeo de objeto a relacional.
  • Herramientas DevOps (Puppet, Ansible, Chef, Docker, Terraform).

Requisitos en Habilidades No Técnicas

  • Liderazgo.
  • Tener iniciativa.
  • Asumir los problemas del sistema como propios.
  • Disposición a probar nuevas tecnologías.
  • Ideas innovadoras para reducir el costo general de los entregables con mejor calidad.
  • Capacidad para aprender nuevas tecnologías de forma rápida y eficaz (autodidacta).
  • Excelentes habilidades profesionales de comunicación escrita, verbal y de presentación.
  • Poseer fuertes habilidades analíticas.
  • Excelente comprensión del desarrollo remoto.
  • Excelentes habilidades de liderazgo, comunicación y presentación.
  • Conocimiento comprobado de los procesos de estimación de costos y tiempo para la construcción de software.
  • Fuertes habilidades de organización y gestión del tiempo.
  • Excelente comprensión de la programación orientada a objetos, algoritmos, estructuras de datos y patrones de diseño.

Ser experto en un dominio

El éxito para este perfil laboral (adicional a las habilidades técnicas y las habilidades blandas) es que el profesional sea experto en uno o más dominios de negocios en particular. Mientras el arquitecto de software tenga más experiencia en un campo adicional a la ingenieria de software, mejor nivel tendrá. Por ejemplo: No es lo mismo tener una buena experiencia a nivel de desarrollo de software en Banca y luego sin ninguna experiencia o conocimiento pasar al Sector Agrícola, seguramente va a ser un impacto.


Algunos dominios que son bastante atractivos para el desarrollo son:


  • Sistemas de Logística y Transporte
  • Sistemas ERP (Enterprise Resource Planning)
  • Sistemas Financieros
  • Sistemas Tributarios y Aduaneros
  • Sistemas Embebidos
  • Sistemas Médicos
  • Desarrollos en Inteligencia Artificial
  • Sistemas Educativos
  • Desarrollo de Juegos

Responsabilidades

Así como los requisitos son muchos las responsabilidades de este trabajo también lo son ... aquí varias de ellas:


  • Crear arquitectura de soluciones, algoritmos y diseños para soluciones que se adapten a los requisitos empresariales de los clientes.
  • Desarrollar productos de software empresarial.
  • Implementar software de clase empresarial.
  • Lograr un conocimiento de nivel experto de los entornos empresariales.
  • Diseñar y liderar la entrega técnica de productos de software.
  • Satisfacer las necesidades de los clientes a través de soluciones de software.
  • Liderar equipo de ingenieros de software para aplicar las mejores prácticas.
  • Implementar automatizaciones en todos los elementos de la entrega de soluciones.
  • Gestionar la responsabilidad de los miembros del equipo, con especial atención a la calidad.
  • Actuar como visionario y estratega para el área de solución.
  • Asistir, diseñar e implementar objetivos estratégicos a largo plazo.
  • Apoyar en la resolución de los problemas técnicos en todas las áreas del desarrollo de software.
  • Garantizar que las arquitecturas de soluciones propuestas y existentes estén alineadas con la arquitectura de datos y la arquitectura empresarial.
  • Proporcionar experiencia en arquitectura, dirección y asistencia a analistas de negocios, analistas de sistemas de negocios, ingenieros de sistemas, otros arquitectos y equipos de desarrollo de software.
  • Desarrollar, documentar y comunicar planes para invertir en arquitectura de soluciones, incluido el análisis de oportunidades de reducción de costos.
  • Realizar investigaciones sobre tecnologías emergentes.
  • Recomendar tecnologías que aumenten la productividad, rentabilidad y la flexibilidad de los sistemas.
  • Construir y mantener un repositorio de entregables.
  • Diseñar, desarrollar y supervisar la implementación de una solución integrada.
  • Documentar y mantener la arquitectura de soluciones.
  • Colaborar con gerentes de proyectos, proveedores y partes interesadas de TI.
  • Modelar procesos comerciales y de sistemas basándose en escenarios de casos de uso, diagramas de flujo de trabajo y modelos de datos.
  • Proporcionar orientación al equipo de desarrollo.
  • Desarrolla la arquitectura general de sistemas, estándares y prácticas de codificación.
  • Determinar, en coordinación con la dirección, la arquitectura general del sistema.
  • Identificar, analizar y definir requisitos comerciales y de información.
  • Demostrar competencia en áreas técnicas específicas como análisis y diseño orientado a objetos.
  • Participar con los usuarios finales para obtener y comprender los cambios necesarios en los sistemas.
  • Coordinar entre las partes interesadas del negocio y de TI para desarrollar un enfoque de arquitectura de solución.
  • Establecer estimaciones de entrega basadas en el enfoque de la arquitectura de la solución.
  • Traducir requisitos funcionales, técnicos y comerciales complejos en diseños arquitectónicos sencillos.
  • Coordinar con el Gerente de Proyecto para redactar el alcance del proyecto y las estimaciones de entrega.
  • Realizar pruebas de concepto para tecnologías emergentes.

Salario Promedio

Los candidatos que cumplen con este perfil: el nivel de conocimientos técnicos, certificaciones o especializaciones, habilidades blandas, expertos en el dominio y el nivel de compromiso son bastante demandados y escasos.


Los salarios varían mucho dependiendo de la experiencia del candidato, la industria, el país (incluso hasta la ciudad) y el empleador. Pueden estar en un rango de 120K a 160K USD por año. Aquí indico 3 referencias salariales a este perfil en los Estados Unidos de América. Los salarios también pueden oscilar mucho entre un Estado y otro dependiendo del costo de vida, pero en promedio pueden llegar a:


Payscale.com 139K USD

Salary.com 147K USD

Indeed.com 138K USD


Certificaciones Arquitecto de Software

Existen varias certificaciones para Arquitecto de Software, si bien es cierto que una certificación le demuestra a los potenciales empleadores que tiene el conocimiento necesario, la experiencia en este perfil laboral de Arquitecto de Software es fundamental. Aquí una lista de certificaciones:


  • TOGAF (The Open Group Architecture Framework) Certification: está certificación que actualmente está en la versión 10 es bastante valorada por los Empleadores. Este es un marco de trabajo que valida habilidades en el desarrollo de arquitecturas empresariales.

  • Microsoft Certified Azure Solutions Architect Expert: Esta certificación valida la capacidad para diseñar e implementar soluciones en Microsoft Azure, incluyendo aspectos como cómputo, redes, almacenamiento, monitoreo y seguridad.

  • AWS Certified Solutions Architect - Professional: Certificación que demuestra habilidades avanzadas en el diseño y despliegue de aplicaciones en Amazon Web Services (AWS), enfocándose en soluciones complejas y optimización de costos.

  • Google Professional Cloud Architect: Acredita la capacidad para diseñar, desarrollar y gestionar soluciones robustas y seguras en la plataforma Google Cloud, alineadas con los objetivos empresariales.

  • Certified Professional for Software Architecture - Foundation Level (iSAQB® CPSA-F): Certificación que demuestra conocimientos fundamentales en arquitectura de software, incluyendo tareas, funciones y responsabilidades del arquitecto.

  • Oracle Certified Master (OCM) Java EE Enterprise Architect: Certificación que reconoce la capacidad para diseñar y desarrollar aplicaciones empresariales utilizando la plataforma Java EE.

  • Red Hat Certified Architect (RHCA): Certificación que valida habilidades avanzadas en la administración y diseño de soluciones utilizando tecnologías de Red Hat.

  • Certified Kubernetes Application Developer (CKAD): Acredita la capacidad para diseñar, construir y desplegar aplicaciones nativas de la nube utilizando Kubernetes.

  • Certified Information Systems Security Professional (CISSP): Aunque enfocada en seguridad, esta certificación es valiosa para arquitectos de software que deseen profundizar en aspectos de seguridad de la información.

Conclusión

El papel de un Arquitecto de Software es fundamental en la creación de soluciones tecnológicas robustas y escalables. Estos profesionales deben contar con una amplia gama de habilidades técnicas y de negocio, además de una sólida experiencia en múltiples dominios. Su capacidad para diseñar arquitecturas eficientes, liderar equipos de desarrollo y asegurar la calidad del software es crucial para el éxito de cualquier proyecto.


La demanda de arquitectos de software calificados sigue siendo alta, reflejándose en salarios competitivos y oportunidades en diversas industrias. Contar con un arquitecto de software experto puede marcar la diferencia en la implementación exitosa de proyectos tecnológicos complejos.


Tal vez te interesen estas entradas

No hay comentarios