arquitectura - hashtag architecture
Buenas preguntas de la entrevista de arquitectura (7)
¿Cuáles son algunas buenas preguntas para hacer en una entrevista para ver cuánto sabe el solicitante sobre la arquitectura?
- Pregunte quién en la "comunidad" que siguen y admiren por su capacidad arquitectónica y por qué? Esto le dará una indicación de la inclinación filosófica de su estilo arquitectónico. Además, si no pueden nombrar a nadie o por qué los admiran, es una gran señal de advertencia porque claramente no están al día con las mejores prácticas y avances de la comunidad.
- Pídales que nombren algún problema / conflicto / intercambio con un patrón de diseño arquitectónico relevante para la entrevista. Si no pueden hacer esto, esta es una señal de alerta, ya que pueden ser inconscientemente incompetentes (es decir, un fanboy) en lugar de tener experiencia real y conocimiento en esta área. Es mucho más fácil nombrar las ventajas planteadas por una arquitectura determinada, mientras que realmente comprender las desventajas requiere una visión más profunda.
"¿Has leído Code Complete de McConnell?"
"Entonces, no voy a hacerte una paja aquí: ¿puedes decirme algo que me convenza de que sabes mucho sobre arquitectura?"
El problema al hacer preguntas como esta es que realmente no hay una respuesta "correcta", por lo que lo principal es lograr que el candidato comience a hablar. Les pido que describan una arquitectura que han implementado de la que están orgullosos. Y luego continúe con cosas como ''¿de qué está usted más orgulloso?''. Y luego puede preguntarles qué errores cometieron en el pasado, ese tipo de cosas.
Me siento más cómodo al respecto porque te sientes por la persona y no por su capacidad para responder una pregunta enlatada.
Estoy un poco preocupado por tu pregunta. A primera vista, sugiero algo como "por favor describa las influencias de las formas de las praderas del medio oeste en los diseños de artes y oficios modernos".
Al quitar la lengua de la mejilla, sugeriría lo que hizo Chris arriba. Proporcione al candidato la oportunidad de interactuar con usted y su equipo en el diseño de una arquitectura relevante para su trabajo. Si no se siente capacitado para juzgar su competencia basándose en verlos resolver problemas en lugar de problemas enlatados, NECESITA involucrar a alguien más en la entrevista. O bien, tome una página del libro de Joel y Jeff y escriba el término "arquitectura" y comience a buscar ingenieros de software competentes.
En mi opinión, la capacidad de diseñar o "arquitecto" es una habilidad, no un conjunto de conocimientos. Hágales un montón de preguntas como "¿cuáles son las ramificaciones de rendimiento de usar J2EE vX vs J2EE vY" o "que es mejor, CORBA o RMI"? Simplemente te hará parecer tonto.
La arquitectura es una de esas cosas que no es simplemente una pregunta de trivia (por ejemplo, usos de patrón de diseño) y es mucho más subjetiva que otros temas de entrevista. A menudo no hay una sola arquitectura correcta, por lo que es más difícil evaluar a alguien. Lo máximo que puede obtener es una idea de cómo piensa el entrevistado.
Sugeriría que describa al entrevistado un producto complejo o parte de un producto con el que usted (el entrevistador) está más íntimamente familiarizado. Luego pídale que piense en cómo lo diseñaría y explicaría su razonamiento, y luego se enfocaría en decisiones específicas y haría preguntas.
Por supuesto, solo haz esto si:
- Estás abierto a escuchar otros diseños que no son tuyos.
- Puede tomar posibles críticas y reconocer que su propio diseño puede ser imperfecto
Una ventaja adicional es que vería cómo podría manejar los desacuerdos si es contratado.
Un enfoque alternativo si su producto alguna vez se ha reintegrado es describir la arquitectura de la versión anterior y preguntarle al entrevistado cómo la podría re-crear. Si el resultado está cerca de la arquitectura actual, es más probable que el candidato encaje bien con el estilo y la mentalidad de su grupo.
Suponiendo que ya los hayas revisado por cultura / personalidad y habilidades de desarrollo, te sugiero que hagas lo siguiente:
Pídale al candidato que describa la arquitectura de un sistema de escala de mediano a grande que realmente diseñaron y / o implementaron. Haga preguntas de sondeo acerca de las concesiones de diseño que hicieron.
Proporcione al candidato el diseño de un sistema que tenga más que unos pocos defectos conocidos. Puede ser uno que haya inventado o uno que sea bien conocido por todos. Pídale al candidato que identifique los defectos y rediseñe el sistema, suponiendo que no tengan limitaciones de tiempo o dinero.
Presente al candidato un conjunto de requisitos para un sistema no trivial (es decir, un sistema distribuido para revisar imágenes médicas en un entorno hospitalario) Haga que pizarren los componentes del sistema en niveles de detalle crecientes hasta que se sienta cómodo con su capacidad de obtener requisitos de la parte interesada (usted) y hacer concesiones apropiadas en su diseño.
Nada de esto garantizará que seleccione el mejor "arquitecto" (tengo el mismo problema con el arquitecto del título que Joel y Jeff). Sin embargo, estas son definitivamente buenas técnicas de filtrado y deberían ayudarlo a identificar a alguien con características que valgan la pena para su equipo.