Así que estoy contratando para un rol principal de desarrollador / equipo para un proyecto ASP.NET MVC3. Esta es una posición importante para nuestro equipo, ya que esta persona liderará uno de nuestros dos productos principales, un producto que no ha visto mucho amor de los desarrolladores en mucho tiempo.
Por lo tanto, debo asegurarme de que mis candidatos hagan cosas inteligentes con los controladores, las vistas, los modelos de vista, los DAL, las pruebas unitarias, etc. Utilizo algunos desafíos de programación triviales durante las entrevistas, pero quiero darles a las personas que tienen problemas en la codificación de la pizarra la oportunidad de brillar.
La mejor tarea que se me ocurre: implementar una página de inicio de sesión trivial, es probablemente más de una hora de trabajo e incluso si la limito a las 2 horas, es poco probable que esté 100% terminada.
¿Es justo? Estoy tratando de lograr un equilibrio entre mantener la asignación razonable y darle al solicitante la oportunidad de mostrar la amplia gama de habilidades que requiere un líder tecnológico.
Respuestas:
Después de haber estado en ambos lados de este problema, como gerente y solicitante de empleo, creo que tienes razón con 1 a 2 horas. Cualquier cosa más larga se vuelve frustrante para algunos de los solicitantes de empleo (si no la mayoría). Cualquier cosa más corta, por otro lado, probablemente no le proporcionará suficiente información y conocimientos sobre el conjunto de habilidades del candidato.
Lo único que agregaría es asegurarme de que la tarea de la entrevista no sea una sorpresa completa; quizás sería razonable darle al candidato una idea general de para qué debe prepararse (incluso si es solo una idea general). He aquí por qué: a veces paso un par de meses, haciendo nada más que programación relacionada con la base de datos. Me meto en un cierto ritmo, y por un tiempo, estoy bastante por encima de la programación relacionada con la base de datos.
Luego me piden que implemente presentaciones de video, capacitación, etc. de manera tal que nadie pueda estafarlas ... y me meto en ese ritmo, prácticamente sin hacer nada más.
Entonces, aunque esté entrevistando a un desarrollador / líder de equipo, si el candidato parece un buen tipo, dele la oportunidad de descubrir lo que busca, nuevamente, si es necesario solo mencione algunos problemas generales, o si siente generoso, dale un puñado de temas específicos para pensar.
Usted y / u otros pueden estar en desacuerdo con este enfoque, pero las entrevistas de trabajo son difíciles. Desea asegurarse de que el candidato esté preparado, pero también desea darles oportunidades para impresionarlo y sentirse seguro. Lo más probable es que descubras que esos candidatos te darán mucha más información genuina que aquellos que están nerviosos, porque saben que habrá algún tipo de asignación ... pero no saben cuál será.
En pocas palabras, sí, ¡creo que estás siendo justo!
fuente
Debe suponerse que su currículum muestra que pueden codificar, de lo contrario, ¿por qué los entrevistaría? Si no puede ver que el código no los trae, está perdiendo el tiempo.
Dicho esto, me preocuparía más cómo abordan la solución que la parte mecánica de la solución (el código), y cómo comunican su solución. Por eso existen las pizarras blancas.
Si les proporciona un conjunto básico de requisitos y lo primero que no hacen es comenzar a pedir detalles, entonces eso es una huelga. Debería tener un conjunto específico de cosas que quiere escuchar decir o preguntar de antemano, esto es más trabajo para usted, pero basar su decisión en algo como esto es más preciso que hacer que alguien piratee algo que no se espera que funcione de todos modos .
Los miembros senior del equipo deben poder diseñar una solución, presentar el diseño y explicarlo y defender cualquier decisión si es necesario, o adaptar cualquier decisión basada en la retroalimentación y comunicar el plan a los miembros junior del equipo y explicarlo de manera orientadora.
Esta interacción humana es más importante que hacer que completen parcialmente una tarea ocupada de nivel de entrada. Lo que la mayoría no querrá hacer; si lo hacen y si se les presenta una oferta después, probablemente se negarán, ya que es una tarea degradante.
Hay un montón de altos codificadores de vaquero que no tienen las habilidades personales y no hacen el trabajo en equipo en absoluto, una prueba artificial que se propone no eliminar a estas personas, y confía en mí no desea que uno solo de estos tipos de personas en un equipo de cualquier tamaño!
fuente
Si el acceso a la base de datos no es parte de la pregunta, espero que 2 horas sean suficientes para que funcione la función de inicio de sesión mínimo.
Pero no apruebe ni falle al candidato en función de su integridad, sino que revise el enfoque que está adoptando.
Asegúrese de hacer muchas preguntas de seguimiento sobre el código después de que termine la entrevista.
fuente
Suena razonable, pero es posible que desee incluir al menos otra página que se utiliza después de iniciar sesión desde la página de inicio de sesión.
Si espera que hagan esta tarea en su oficina durante la entrevista, avíseles con anticipación para que puedan planificarla y asignar el tiempo necesario para la entrevista. En mi experiencia, las entrevistas no duran más de una hora, por lo que es justo decirles qué esperar y cuánto tiempo les darán.
La otra opción es permitirles completar su tarea en casa, pero eso les permite usar más tiempo y recursos (es decir, obtener ayuda). Sin embargo, esto le permite asignarles una tarea más complicada que puede mostrar todo lo que espera que sepan.
fuente
Totalmente justo siempre que les diga por adelantado cuánto tiempo se requiere para la entrevista. Si alguien no quiere escribir tu examen, entonces no quieres contratarlo. He tenido pruebas más largas antes y personalmente lo aprecié. Uno en particular fue difícil y más largo que el tiempo asignado, pero fue una excelente medida del ingenio, el establecimiento de prioridades y las habilidades de resolución de problemas de los candidatos. Ese empleador tenía desarrolladores muy calificados trabajando allí.
Creo que estás en el camino correcto con lo que estás buscando en un candidato. Con demasiada frecuencia, un currículum enumera un millón de cosas sobre las que el candidato ha leído pero que en realidad no sabe. A veces puedes eliminar estas cosas en una entrevista regular, pero si quieres saber si alguien realmente puede hacer algo, haz que lo hagan.
Solo asegúrese de que las expectativas sean claras y esté probando las habilidades que son más importantes para el trabajo.
En su caso, también podría preocuparme qué tan bien el candidato entiende HTML, javascript y diseño.
fuente
¿Desea asignar la misma asignación a todos los candidatos? Debería poder llegar a una lista de uno. Su tarea / examen, está ahí para mostrar que el candidato no solo puede hablar, sino que también puede caminar.
Lo que haría es traer de vuelta al candidato, informarle que está en una lista corta (no digas de 1), ponerlo con uno o dos de sus compañeros de trabajo potenciales (día a día) y obtener el " equipo "para resolver el problema. 1-2 horas serán más que suficientes para que el equipo le informe que creen que él / ella es lo suficientemente bueno, un líder o seguidor, un hacedor o un holgazán, competente o ... etc.
Usted es una empresa pequeña, y nada destruirá su organización más rápido que las relaciones personales disfuncionales, los escaladores, los traidores y los psicópatas en el lugar de trabajo (aproximadamente 1 de cada 20 lo son). Concéntrese en si el candidato tiene la actitud correcta, si técnicamente es promedio y lo hace, superará al 90% de los candidatos que sean expertos. La programación puede ser una tarea individual, pero el desarrollo de software requiere un equipo fuerte, y usted está buscando un líder de equipo y un líder técnico.
fuente