- Desde el principio, quería entender lo que se estaba construyendo, de principio a fin. Quería entender cómo encajaba mi pieza en la solución completa.
- Me gusta entender por qué estamos construyendo el sistema. ¿Qué problema se está resolviendo? ¿Cuáles son los límites de recursos (tiempo, dinero, experiencia) necesarios para resolver este problema?
El resto puede ser TL; DR y aborda tareas generales de arquitectura de software.
A nivel general, la diferencia clave es que la persona que se convertirá en arquitecto querrá comprender todo el sistema, no solo su parte. Si su función es codificar un módulo específico, querrán comprender la función de ese módulo en el sistema más grande en su conjunto. Esto también ayudará al diseñar su módulo, ya que hace que la interpretación de las especificaciones sea más probable que sea lo que pretendía el autor porque conocerán los supuestos subyacentes en el diseño.
En una empresa pequeña, donde todo el mundo hace un poco de todo, encontrará que diferentes personas tienen diferentes fortalezas. Todos codificarán y diseñarán, pero generalmente solo hay un par de personas que entienden los vínculos dentro de todo el sistema; esas personas se convertirán en arquitectos cuando se produzca la especialización a medida que la empresa crezca.
- ¿Cómo es trabajar como ingeniero de software para un pequeño equipo en una gran empresa que intenta expandirse?
- Como ingeniero de software, ¿qué haces realmente?
- ¿Qué grado es mejor para un ingeniero de software?
- Soy un programador de sofware. Quiero comenzar a trabajar como profesional independiente junto con mi trabajo a tiempo completo. ¿Cómo puedo comenzar a trabajar en un proyecto independiente?
- ¿Puedo convertirme en un ingeniero de software bien pagado con un título en Humanidades?
Aunque las grandes empresas pueden tener varias especializaciones arquitectónicas, como Application Architect o Network Architect, el pensamiento común es la capacidad de resolver un problema, comprender cómo combinar (usar) las herramientas / software disponibles para resolver ese problema y describir las relaciones entre las herramientas / componentes / módulos. La especialización se produce en el nivel de detalle que conoce un arquitecto. Un arquitecto de redes conocerá los equipos de red y los conceptos de redes a un nivel más profundo, pero no comprenderá las interfaces SAP o SOA a la misma profundidad que un arquitecto de aplicaciones.
Además de poder comprender la imagen más grande, un arquitecto en ciernes debe comenzar a pensar en cómo expresar la imagen más grande. Una vez que se convierta en arquitecto, pasará la mayor parte de su tiempo descubriendo cómo comunicar mejor el diseño. Crear el diseño es la parte divertida y algo así como un talento innato: documentar y comunicar el diseño para que los no arquitectos puedan entender que es una habilidad aprendida, pero también ayudará un talento innato para comunicar / explicar conceptos abstractos a las personas.
Esta publicación es mi propia opinión / observación y puede no reflejar la opinión / observación de mi empleador