¿Cuáles son los pasos que se deben seguir / tener en cuenta si quieren convertirse en arquitectos de software?

Cuando entrevisto a arquitectos, generalmente empiezo mencionando los siguientes puntos:
1. Tienes que poder “explorar por delante” del grupo de desarrollo. Eso significa mantenerse al día sobre noticias tecnológicas, a través de blogs, redes sociales, amigos, conferencias. Alguien que no se mantiene al día puede perder llevar al grupo a una avenida exitosa, o peor aún, no ser capaz de evitar que el grupo se dirija directamente a un escollo.
2. No necesitas ser el maestro de todos los campos. Hay expertos, dentro y fuera de la compañía, que pueden ayudarlo: DBA, expertos en seguridad, expertos en UX, especialistas en monitoreo, maestros de compilación, gurús de implementación. Sin embargo, debe ser capaz de aprender lo suficientemente rápido como para tomar la decisión correcta entre esos expertos, anulándolos si es necesario. Al final, usted es responsable del “panorama general”.
3. Tu trabajo tiene que ver con el equilibrio. Equilibre la necesidad inmediata con el costo futuro, las demandas de marketing con “no funcional”, la usabilidad con seguridad, la complejidad con el rendimiento.
4. Necesitas ser un gran colaborador. Un gran diseño no vale la pizarra en la que se dibuja si las personas no pueden entender lo que quieres o no lo siguen. Debe ser capaz de articular sus pensamientos, debatir y convencer por mérito de evidencia o experiencia y poder poner todo eso por escrito.

Lo que hago después de mi pequeño discurso es pasar por un ejercicio de diseño (en realidad prefiero enviar el ejercicio por adelantado, que me envíen el diseño y enviar una lista de puntos de discusión para pensar). Además de la funcionalidad (la parte fácil), trato de observar los siguientes puntos:
1. ¿Qué tan complejo es? ¿Podríamos simplificar y qué perderíamos o ganaríamos con eso?
2. ¿Qué tan evolutivo es? ¿El candidato tuvo en cuenta el cambio de requisitos y evolucionó con el tiempo? “El marketing acaba de agregar un requisito a XXX: ¿cuáles son los cambios necesarios en su diseño? ¿Qué necesita hacer por adelantado para permitir una transición sin problemas?”
3. La lista de “no funcionales”: cantidad de llamadas a la API, desglose de módulos, usabilidad, monitores, compatibilidad …
4. ¿Cómo guiaría al grupo de desarrollo? ¿Qué punto destacarías? ¿Qué pruebas ordenarías más allá de lo trivial?
5. El ejercicio generalmente implica el uso de bibliotecas: ¿cómo elegiría la biblioteca? ¿Tomó en cuenta los problemas de licencia? Problemas pendientes? Volumen de desarrollo?
6. ¿Con qué expertos hablarías? ¿Qué le preguntarías? ¿Cómo te decidirás?

Entonces, volviendo a la pregunta original, en mi opinión, debe prepararse para responder esas preguntas en cada proyecto de desarrollo que tenga, cada característica. Una vez que se acostumbre a preguntarse por qué, ¿hay una mejor manera y cuáles son las compensaciones (siempre hay compensaciones, no hay respuestas “correctas”), estará bien encaminado para un rol de arquitecto , si se llama así o no. Según mi experiencia, una vez que exprese esas preguntas y respuestas, otros desarrolladores comenzarán a pedirle consejos sobre cómo juzgar sus características.

Y un consejo “técnico”: asegúrese de que su gerente conozca su ambición y forme un plan para cumplirlas. Te sorprendería la cantidad de personas que asumen que sus gerentes conocen sus metas personales y simplemente se sientan allí y esperan a que caiga maná del cielo.

He sido arquitecto de software en Microsoft y he desempeñado funciones similares en uno o dos lugares más.

Los pasos que recomendaría para ser arquitecto de software serían:

  1. Conviértete en un desarrollador excepcional . Debe comprender de primera mano lo que se necesita para hacer un buen sistema, y ​​hacer y vivir con esos errores usted mismo. Necesita suficientes proyectos en su currículum para ganar credibilidad.
  2. Ampliar Aprenda sobre una variedad de disciplinas, como redes, sistemas operativos, desarrollo web, etc. Debe estar expuesto a cada una de ellas al menos de forma periférica para que sea consciente de su valor como opción de diseño.
  3. Profundiza en al menos una cosa . Elija algo que disfrute haciendo para profundizar, como la seguridad de la red o los controladores de dispositivos. Idealmente, esta será su especialización como arquitecto de software.
  4. Ser conocido como colaborador . Un arquitecto de software no solo dicta desde arriba, es mentor y hace crecer a las personas con las que trabaja. Las decisiones deben tomarse de manera conjunta para que la mayoría de las personas asientan de acuerdo mientras se toman.
  5. Ser educado pero práctico . Esté atento a la industria, y especialmente a los desarrollos en su área. Tenga en cuenta lo que viene por la tubería y prepárese para evaluarlo. No presione por tecnologías particulares a menos que sean maduras. Su objetivo es ayudar a los proyectos a tener éxito y reducir el riesgo.

Las mismas habilidades que lo llevan a ser un arquitecto de software serán valiosas como colaborador individual, líder técnico o incluso como gerente de ingeniería de software. Es un buen uso del tiempo aprenderlos, incluso si al final no terminas como arquitecto de software.

Esto es lo que he visto en arquitectos exitosos:

  1. No eres un gerente y no debes actuar como tal. No piense en las tareas y su finalización, sino concéntrese en el código y la calidad.
  2. No estás aquí para completar los problemas y no te enfocas en completarlos. Estás ahí para proporcionar soluciones. Soluciones que amplían los requisitos de usuarios desconocidos.
  3. Debe conocer el desarrollo de software ágil. La clave para ser ágil es comprender mejor la arquitectura.
  4. Conoce el software y las plataformas. Usted es la persona responsable de decidir qué pila utilizará su equipo. La mayoría de las personas no ven las habilidades y la experiencia del equipo antes de decidir la pila y, por lo tanto, pasan más tiempo entrenando.
  5. Aunque necesita ver las habilidades del equipo, es importante ver el enunciado del problema y puntuar cada grupo y clasificarlos.

La respuesta de Vanessa Williams a ¿Cómo puede un programador ser bueno en arquitectura de software?

La respuesta de Vanessa Williams a que soy graduada de CS y quiero convertirme en una buena arquitecta de software. ¿Qué tengo que hacer?

Espero que ayude.

¿Quién necesita un rol de arquitecto formal [1]? Algunas de las grandes compañías no tienen un rol de arquitecto porque lo más probable es que no necesiten un rol tan formal. Sin embargo, dominar la ingeniería de software y las habilidades efectivas de comunicación es otra historia.

Notas al pie

[1] ¿Quién necesita un arquitecto?

More Interesting

¿Cuál es el mejor país para abrir nuevos empleos de TI (Canadá, Nueva Zelanda o Australia)?

¿Hay oportunidades de trabajo desde casa para enfermeras?

¿Es aconsejable hacer el trabajo desde casa en lugar de viajar a la oficina durante más de 4 horas por día?

¿Es necesario pasar por el programa LFH (aprender de casa) de Tech Mahindra? ¿Es necesario cruzar el límite del 70% para obtener una carta de incorporación de Tech Mahindra?

Despidos: ¿Cuáles son los factores detrás de los recortes masivos de empleos en el sector de servicios financieros a nivel mundial en 2015?

¿Ser un desarrollador de PhoneGap es una buena opción para una carrera? ¿Existe la posibilidad de cambiar a otra tecnología con la experiencia de desarrollo de PhoneGap en el futuro?

Han pasado 9 meses desde que dejé mi trabajo (en Consultoría de gestión). ¿Qué puedo hacer para ganar algo de dinero (para pagar las facturas) mientras sigo buscando trabajo?

¿Qué debo hacer como estudiante de primer año en una escuela de la Ivy League para aumentar mis posibilidades de obtener una carrera en finanzas?

Cómo trabajar por cuenta propia desde cero en Massachusetts

¿Cuál es el perfil laboral y el salario de un ejecutivo de MIS en India?

¿Cuál es la descripción del trabajo de un especialista en control de inventario?

¿Accenture ofrece un curso de MBA o educación superior a sus empleados?

¿Cuál es el mejor enfoque para negociar una oferta de trabajo? ¿Debería intentarlo?

Cómo escribir una declaración de idoneidad convincente para un trabajo

Cómo escribir mi currículum como estudiante de ingeniería de software en el área de carrera y objetivos