¿Cuáles son algunos momentos notables en su desarrollo como programador para un arquitecto de software?

  1. 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.
  2. 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.

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

More Interesting

¿Es posible obtener un trabajo de ingeniería de software en Google sin un título en informática?

¿Por qué los ingenieros no van más allá de ser ingenieros superiores en Google? ¿Es porque no muchos se quedan más de 5-6 años y se van a otras empresas o startups? ¿Qué nivel de ingeniero sería si se quedara en Google por 10 años?

Cómo pasar de gerente de proyecto a líder de producto en desarrollo de software

¿Qué puesto de trabajo es mejor prueba de software o desarrollo de software?

¿Cuál es el mejor camino para ser bueno en la codificación? ¿Qué lenguaje de programación es más valioso?

Me siento cansado, asustado y frustrado por trabajar como ingeniero de software. Las horas son malas, el trabajo es exigente. ¿Qué tengo que hacer?

¿Cómo funciona la economía de la industria del software y la tecnología?

Estoy persiguiendo Bsc (IT), ¿qué debo hacer para que mi currículum sea llamativo?

¿Contratarás a alguien como desarrollador de software con una licenciatura en informática de la UOPeople (Universidad del Pueblo)?

¿Cómo puede un desarrollador de productos hacer la transición a un rol de gerente de producto?

¿Cuáles son los 5 principales patrones de diseño que los científicos de datos deben conocer en la programación?

¿Qué puedo hacer en un período de tiempo de 3 meses que pueda ayudarme a mejorar mis habilidades como ingeniero de software para poder construir una base sólida para mi carrera?

¿Qué debo saber exactamente para ser el ingeniero de software más exitoso?

¿Cuáles son las ventajas y desventajas de trabajar en una gran empresa de tecnología (como Google o Amazon) frente a una empresa de tecnología de inicio para su primer trabajo de ingeniería de software?

¿Cuáles son las habilidades que lo convertirían en un buen ingeniero?