Un arquitecto de software en Microsoft y compañías similares es alguien que sobresale en el pensamiento de “panorama general”. Entienden lo que se requiere para resolver un problema en una variedad de dimensiones. Definen los subsistemas necesarios, cómo deben encajar y cómo hacer que el sistema sea confiable y eficiente. Los arquitectos suelen ser expertos en dominios, que han diseñado e implementado varios productos diferentes en el espacio.
Un buen arquitecto de software es:
- Un experto en dominios . Saben lo suficiente sobre el dominio del software (por ejemplo, servicios de bases de datos) para saber qué componentes se necesitan para hacer el trabajo. Entienden las compensaciones entre confiabilidad, flexibilidad, rendimiento y facilidad de implementación. Están familiarizados con el espectro de opciones de diseño apropiadas y pueden guiar la selección del mejor conjunto para cumplir con los requisitos del sistema.
- Un mentor y creador de consenso . Muchas veces, el propósito de un sistema es difuso, al igual que sus requisitos. Las propuestas de comportamientos y componentes no están completamente pensadas. Un arquitecto de software puede solucionar estos problemas y enseñar a los otros ingenieros cómo evitarlos en el futuro. Pueden comprender y explicar las propiedades y comportamientos del sistema de manera accesible. Un buen arquitecto impulsa el consenso sobre cómo deben diseñarse y construirse el sistema y las diferentes partes.
- Un líder técnico efectivo . Un arquitecto sobresale en comunicación, adaptando mensajes para audiencias que van desde directores ejecutivos hasta ingenieros de primera línea. Pueden justificar los objetivos y la arquitectura del sistema, y producir excelentes descripciones verbales y documentación escrita. Unifican a los equipos en sus proyectos, ayudando a impulsar una visión y enfoque comunes, logrando que las personas trabajen juntas para producir algo integrado y cohesivo, en lugar de una mezcolanza.
- Técnicamente creíble . Las afirmaciones y juicios de un arquitecto son creíbles en toda la organización. Por lo general, un arquitecto ya se ha probado como ingeniero y es conocido como productor de sistemas sólidos. En ausencia de información suficiente para justificar las propuestas del arquitecto, las personas se inclinan a creer que son correctas.
- Optimista Un buen arquitecto es positivo y una fuente de optimismo de poder para toda la empresa. No dicen que el cielo se está cayendo. Si un sistema está roto, explican cómo se puede solucionar. Si un sistema se ajusta mal a un problema, propondrán uno que se ajuste mejor. Sobre todo, explican cómo alcanzar las metas de manera eficiente y dan fe a las personas de que no importa cuán oscuras se vean las cosas, todo estará bien. Un corolario de esto es que un arquitecto debe ser capaz de identificar cuándo un proyecto es realmente insalvable y encontrar alternativas.
El arquitecto de software parece ser un papel que desaparece, al menos en las empresas en las que he trabajado (Microsoft, Amazon, Google, Oracle). En cambio, las responsabilidades que un arquitecto habría tenido alguna vez se dividen entre muchos desarrolladores senior.
- ¿Qué es una pérdida de memoria?
- ¿Cuáles son las teorías y técnicas detrás de la integración de diversas tecnologías de software?
- ¿Qué tipo de habilidades se requieren para las pruebas manuales y cuáles son las funciones y responsabilidades de un probador de software?
- ¿Cómo son las entrevistas de ingeniería de software en Japón?
- ¿Qué deben leer los libros / blogs para gerentes de ingeniería o gerentes de proyectos de software en el Área de la Bahía?
Si quieres trabajar para ser arquitecto de todos modos, aquí está el camino. Primero sea un excelente ingeniero, luego un experto en dominios, y recuerde perfeccionar sus habilidades de comunicación y política a medida que avanza. Durante muchos años, esto creará la experiencia y la credibilidad para ser arquitecto.