Tal vez me presenten como “arquitecto de software” a los clientes porque todos los demás preferirían no ser objeto de ninguna ira que el cliente esté dispuesto a desatar. (Los clientes no suelen visitar cuando las cosas van bien).
De todos modos, para algunas partes del software que desarrolla mi grupo, probablemente soy lo más parecido a “Arquitecto de software”. Es un poco una descripción de trabajo nebulosa o posiblemente falsa como se menciona en algunas otras respuestas. Mi verdadero título es ingeniero principal. Posiblemente también falso.
Creo que convertirse en un “arquitecto de software” requiere mucha experiencia con su propio software, así como la comprensión de cómo funcionan otras piezas de software similares. Esa experiencia y comprensión no solo ocurren por sí mismas, incluso si trabaja en la misma área durante más de 20 años. Creo que hay una actitud que debes tener hacia tu carrera que incluye:
- ¿Cómo debería un ingeniero de software de 25 años invertir su tiempo y dinero para aprender? ¿Qué debe aprender?
- ¿Qué debo saber exactamente para ser el ingeniero de software más exitoso?
- ¿Qué habilidades debe aprender un estudiante de física para obtener un trabajo / pasantía en la industria del software?
- ¿Cómo puede un MBA ayudar a un ingeniero de pruebas de software a tener una carrera administrativa?
- Cómo conseguir un trabajo como ingeniero de software
- Debería querer comprender todas las pequeñas piezas del producto, no solo saber que existen, sino comprender su implementación, limitaciones, la deuda técnica, etc., asociadas con cada parte del sistema.
- Debe aprender cómo interactúa con otro software: software que escribe y software complementario, y software de la competencia.
- Debe comprender cómo usan el software sus clientes y también qué necesitan.
Puede trabajar en la misma empresa durante 20 años y no lograr ninguno de los anteriores, por lo que necesita algo más que tiempo.
La mejor manera de hacer el n. ° 1 es adquirir algo de experiencia en el desarrollo de tantas partes del software como sea posible. Solucione errores, ayude con las funciones, hable con los desarrolladores que poseen cada una de las piezas. Comprender la “deuda técnica” asociada con todas las piezas lo ayudará a comprender cuánto tiempo llevará cambiar algo, cuán defectuoso será y cuándo es el momento de reescribirlo. Si hay múltiples soluciones, la que involucra grandes cambios en el código con una gran cantidad de deuda técnica probablemente sea más arriesgada y una de la cual evitar.
Una buena manera de aprender sobre el # 2 anterior es usar el software usted mismo.
La mejor manera de lograr el # 3 anterior es hablar con los clientes, visitarlos y verlos usar la herramienta. Creo que existe una tendencia a que los desarrolladores de software se aíslen de los clientes y vivan en su propio mundo donde creen que entienden lo que el cliente quiere, por qué lo quieren y cómo dárselo. Cada vez que interactúo con alguien que realmente está usando el software, es una experiencia reveladora y, a menudo, me hace repensar las funciones existentes o me da ideas sobre otras nuevas.