Arquitecto de software funciones

Perfil de trabajo del arquitecto de software

Un arquitecto de software diseña la estructura de las aplicaciones y cómo se integran en el entorno del sistema, lo que significa que define las interfaces con otros sistemas y al mismo tiempo funciona como enlace con otros departamentos. Se ocupa tanto del panorama general de la empresa como de los aspectos internos de la aplicación, como las especificaciones, las opciones y la viabilidad.

Los arquitectos de software ilustran los conceptos técnicos de la empresa en las áreas relevantes de la aplicación y utilizan para ello patrones de diseño de arquitectura de software establecidos. Además, su área de responsabilidad incluye la identificación de fallos conceptuales y la propuesta de posibles soluciones. El arquitecto de software presenta los conceptos arquitectónicos y está disponible para responder a las preguntas de todas las partes interesadas en el proyecto.

Descripción del trabajo de desarrollador de software

Este artículo no cita ninguna fuente. Por favor, ayude a mejorar este artículo añadiendo citas de fuentes fiables. El material sin fuente puede ser cuestionado y eliminado.Buscar fuentes:  “Software architect” – news – newspapers – books – scholar – JSTOR (December 2010) (Learn how and when to remove this template message)

La exactitud de los hechos de este artículo es discutida. La discusión pertinente puede encontrarse en la página de discusión. Por favor, ayude a asegurar que las afirmaciones disputadas tengan fuentes fiables. (Julio de 2018) (Aprende cómo y cuándo eliminar este mensaje de la plantilla)

Un arquitecto de software es un experto en desarrollo de software que toma decisiones de diseño de alto nivel y trata de hacer cumplir las normas técnicas, incluidos los estándares de codificación de software, las herramientas y las plataformas. El concepto de arquitecto de software comenzó a imponerse cuando la programación orientada a objetos, o POO, empezó a utilizarse de forma más generalizada (a finales de la década de 1990 y principios del siglo XXI). La programación orientada a objetos permitía crear aplicaciones cada vez más grandes y complejas, lo que a su vez requería una mayor supervisión de las aplicaciones y los sistemas de alto nivel.

Arquitecto de software frente a ingeniero de software

Mientras trabajaba como desarrollador, siempre me frustraba que las funcionalidades no estuvieran completamente definidas, que las especificaciones no existieran o estuvieran mal escritas, que la documentación (comentarios, migraciones, documentos de la API, diagramas ER, visión general de la arquitectura) fuera prehistórica y anticuada. Perdía mucho tiempo buscando toda la información necesaria, y a menudo no la conseguía. Entonces me embarcaba en la codificación de algo por mi cuenta, que no siempre daba sus frutos. Mis suposiciones no siempre eran correctas, lo que me obligaba a rehacer parte de la lógica.

Por otro lado, los desarrolladores codificaban componentes que no eran reutilizables. Las tecnologías, las pilas y las herramientas se eligieron en función de las tendencias actuales para que todo el mundo trabajara con las tecnologías más avanzadas. La gente siempre asume que esto acelera el proceso de desarrollo de software y aumenta la calidad del resultado. Pero, ¿es realmente así?

Cuanto más reflexionaba, más me interesaba la función de configurar adecuadamente los proyectos antes de programar; intentar corregir las cosas que diagnosticaba como problemas durante la programación (ya sea programando como desarrollador en solitario o en un grupo de varias personas). De vez en cuando, había un Frontmen o Team Lead involucrado, que organizaba el equipo, ayudando a escribir funcionalidades, pruebas y ayudando a los colegas más jóvenes a pulir sus habilidades.

Arquitectura de software

Como arquitecto de software, dirigirá el esfuerzo de diseño en una variedad de proyectos en un entorno altamente colaborativo y dinámico. Diseñará soluciones creativas para problemas reales del mercado. Trabajarás en estrecha colaboración con otros socios, como los directores de producto y de marketing, diseñadores y otros ingenieros de software, para desarrollar nuevas ofertas de productos y mejorar la eficacia de la solución.

– Se requiere experiencia demostrada en la creación de aplicaciones web, aplicaciones empresariales, servicios web y gestión a escala. Conocimiento sólido de los almacenes de datos (SQL, NoSQL) y capacidad para elegir entre la tecnología disponible en función de los requisitos.

– Experiencia con patrones de arquitectura para Alta Disponibilidad, Rendimiento, Arquitectura Scale Out, Recuperación de Desastres, Arquitectura de Seguridad El conocimiento de las arquitecturas basadas en la nube, el despliegue y los aspectos operativos de la nube de Amazon Web Services es un plus.

Como arquitecto de software, liderarás el esfuerzo de diseño en una variedad de proyectos en un entorno altamente colaborativo y dinámico. Diseñará soluciones creativas para problemas reales del mercado. Trabajarás en estrecha colaboración con otros socios, como directores de producto y de marketing, diseñadores y otros ingenieros de software, para desarrollar nuevas ofertas de productos y mejorar la eficacia de la solución.