¿Cuáles son las diferencias fundamentales entre un desarrollador de software y un arquitecto de software?

Esto es lo que desearía que fuera la diferencia.

Un desarrollador implementa lo que el negocio ha priorizado con las herramientas y los marcos que tienen sentido para esa organización. Pasan tiempo con las empresas tratando de comprender qué quieren las empresas y pensando en qué patrones de diseño utilizarán para manifestar la solución. Un desarrollador de software puede ser un desarrollador de pila completa o asignado a una parte particular de una pila de tecnología. En organizaciones más grandes, generalmente un desarrollador no elige la tecnología.

Un arquitecto piensa en la estrategia tecnológica de una empresa y considera el estado actual de la organización y el estado deseado. Querrán asegurarse de que la hoja de ruta de TI en la que se encuentran tiene sentido y abordar las brechas a nivel estratégico. Trabajarán con liderazgo para garantizar que tengan la información necesaria para tomar buenas decisiones técnicas. En las organizaciones más grandes, los arquitectos suelen ser responsables de la cartera de tecnología. Esto incluye un sueño personal donde los arquitectos administran los activos de TI con el gobierno. La gobernanza tiene el objetivo de ejercer control sobre los activos de TI con el propósito de la gestión de riesgos, el cumplimiento, la medición del valor comercial y el retorno de la inversión (ROI). Idealmente, un arquitecto también tiene una buena relación con los desarrolladores para proporcionar orientación y orientación cuando sea necesario. También sería razonable que un arquitecto establezca los SLA de infraestructura que quedan fuera de los requisitos comerciales. es decir, el tiempo de retorno de un mensaje SOA ESB debe ser <= X.

Fundamentalmente, debe tratarse de profundidad de conocimiento y experiencia. El trabajo principal de un arquitecto debe ser el diseño, con la expectativa de que él / ella tenga suficiente experiencia para ser uno de los mejores en cualquier tarea, sin importar cuán complicado o trivial sea

Prácticamente, lo que sucede es que cuando un desarrollador tiene la experiencia suficiente para exigir un salario que rivaliza con muchos de los salarios del gerente, la organización de ingeniería se queda con el dilema de que tienen que justificar el alto salario a la alta gerencia. Tradicionalmente, las corporaciones se han estructurado con la idea de que una mayor responsabilidad merece un salario más alto, y fuera de las ventas, la “responsabilidad” se mide al observar la cantidad de personas que se administran. Es difícil para una organización de ingeniería dentro de una organización tradicional justificar a un contribuyente individual sin informe directo, a quien se le paga más que a las personas que administran a otras personas. Entonces, crean un nuevo título de trabajo y un rol que parece una buena justificación. Él no es un desarrollador. Es un gran arquitecto falutín. El es un especialista.

Entonces, muchas veces, el arquitecto resulta ser la persona que solo quieren mantener.