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.
- Uber (compañía): ¿Cómo puede uno convertirse en un conductor de Ola y Uber? ¿Cuál es el proceso explicado para ello?
- ¿Es el futuro de SAP Hybris Ecommerce para el consultor funcional de SAP CRM para conseguir un nuevo trabajo?
- Cómo convertirse en un muy buen cajero
- Cómo desarrollar un interés en el trabajo que no es exactamente mi pasión, aunque soy bueno en él y me puede dar un buen ingreso si puedo concentrarme más interesado
- ¿Los inmigrantes en SF o Seattle reciben un sueldo insuficiente?
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.