Guía rápida: ¿Cómo aplicar el arquitecto de aplicación?. Definiciones + ejemplo práctico.
Tema 1: ¿Qué es?
El Arquitecto de Aplicación, es un profesional experto en definir y asegurar que una aplicación sea escalable, administrable, segura y cumpla con los requisitos funcionales y no funcionales. Generando los siguientes beneficios:
✔ Asegurar el cumplimiento de los estándares de seguridad y calidad en las entregas de las aplicaciones.
✔ Asegurar la escalabilidad de la aplicación.
✔ Asegurar la administración eficiente de la aplicación.
Las funciones principales que debe desempeñar el profesional para contribuir en el logro de los objetivos estratégicos de la organización, son las siguientes:
✔ Definir los lenguajes de programación, patrones de diseño y componentes de la aplicación.
✔ Acordar con el usuario los requisitos relacionados con el rendimiento, seguridad, escalabilidad y usabilidad.
✔ Documentar la aplicación con los diagramas UML.
✔ Supervisar que el desarrollo cumpla con el plan de arquitectura.
✔ Gestionar la resolución de los problemas técnicos.
✔ Monitorear los riesgos.
✔ Gestionar la implementación de los estándares de calidad en la aplicación.
✔ Liderar y entrenar al equipo técnico.
Tema 2: Salarios, habilidades y competencias.
Si estas interesado en ejercer como: Arquitecto de Aplicación, es quien asegura la escalabilidad, seguridad y rendimiento de las aplicaciones; el rango salarial estimado mensual que ofrece el mercado LATAM es el siguiente:
Junior | Intermedio | Experto |
---|---|---|
1,800 USD | 2,000 USD | 2,500 USD |
Las habilidades y competencias que debe desarrollar El Arquitecto de Aplicación son las siguientes:
Habilidades:
✔ Escucha activa para comprender las necesidades técnicas a nivel de aplicación, generar propuestas y adaptar el mensaje para que sea fácil de entender por parte de los interesados no técnicos.
✔ Trabajo en equipo para compartir conocimiento y lograr objetivos comunes que permitan asegurar la escalabilidad, seguridad y rendimiento de las aplicaciones.
✔ Liderazgo para guiar y motivar al equipo en asumir responsabilidades y toma de decisiones técnicas.
✔ Adaptabilidad para ajustar las aplicaciones a los cambios del negocio.
✔ Pensamiento crítico y detallado para evaluar la información técnica de manera objetiva.
✔ Negociación para generar acuerdos de tipo gana - gana con los programadores de software, los líderes técnicos y la dirección de TI.
✔ Empatía para comprender los sentimientos del negocio y TI.
✔ Encontrar las causas raices de los problemas técnicos que presentan las aplicaciones para resolverlos de manera eficiente.
✔ Resiliencia para afrontar los cambios de la tecnología.
✔ Actuar y transmitir integridad, honestidad y responsabilidad al equipo técnico.
✔ Planificar, organizar y priorizar los requisitos técnicos.
Competencias.
✔ Tener vigente alguna de las certificaciones con: iSAQB.
✔ Tener estudios relacionados con: Ingeniería de Sistemas o Ingeniería Eléctrica o Ingeniería Telemática.
Tema 3: Herramientas que debe conocer el arquitecto de aplicación.
Las herramientas que debe conocer El Arquitecto de Aplicación para desempeñar correctamente las funciones del cargo. Son las siguientes:
Herramienta | Acción clave |
---|---|
El desarrollo basado en funciones FDD. | Desarrollar funcionalidades delegando un propietario a cada clase del sistema para mantener asegurar su correcta codificación. |
El análisis de software. | Identificar lo que se espera del software a nivel de funcionamiento, estructura del software e insumos de infraestructura. |
La arquitectura de aplicación. | Identificar las aplicaciones, sus mejoras, interacciones entre aplicaciones y sus relaciones con los procesos de negocio. |
Fase de planificación con XP. | Identificar el tipo de requerimiento que se debe atender para construir la visión del resultado que se espera lograr. |
Fase de diseño con XP. | Definir acuerdo entre los programadores para generar código sencillo. |
Modelado de objetos de dominio. | Construcción del diagrama de clases. |
Propiedad de clase individual. | Asignar para cada clase un propietario quien garantizará la calidad del código y su escalabilidad. |
Equipos de funciones. | Definir la gobernanza para la construcción de las clases. |
Cronograma de compilación. | Planificación, gestión, monitoreo y control de las versiones del producto de software. |
Informes de progreso. | Generar radiadores de información para publicar el estado de la aplicación. |
Los componentes de la aplicación. | Identificar los componentes base de una aplicación. |
El ciclo de vida del desarrollo de software. | Definir las fases, procesos y procedimientos para desarrollar un producto alineado con las buenas prácticas de desarrollo de software. |
El ciclo de vida del producto. | Definir los procesos y lineamientos para desarrollar un producto alineado con las necesidades del mercado. |
UML: Diagramas de comportamiento. | Modelar la interacción que tendrá los usuarios con el software y las actividades con sus estados dentro de los flujos del sistema. |
UML: Diagramas de estructura. | Modelar los nodos, componentes, artefactos, objetos y clases del software. |
UML: Diagramas de interacción. | Modelar el envío de peticiones y datos dentro del sistema y con otros sistemas. |
UML: Diagrama de paquetes. | Agrupación y organización de todos los elementos de la aplicación de software. |
UML: Diagrama de componentes. | Representación visual de las funciones y artefactos de un componente de software. |
UML: Diagrama de despliegue. | Identificar los artefactos de software que requiere una aplicación para su correcto funcionamiento. |
Programación modular. | Construcción de funcionalidades independientes para luego ser integradas en un producto de software. |
El plan de arquitectura de software. | Construcción del plan para diseñar, estructurar y establecer el comportamiento del software. |
Tema 4: Sobre el autor.
Juan David López Pava: profesional en administración de empresas y desarrollo de software con certificaciones del PMI y Scrum Institute, apasionado por la transformación digital y la dirección de proyectos de tecnología.