Contratar profesionales de TI no es una tarea fácil. En primer lugar, ahora hay una escasez de personal experimentado en el mercado, lo entienden. Los candidatos a menudo no están listos para pasar mucho tiempo en los "eventos de calificación" del empleador, si no están interesados previamente. Anteriormente, la práctica popular de "demos una prueba por más de 8 horas" ahora no funciona. Para una evaluación inicial del conocimiento y selección de candidatos antes de realizar una entrevista técnica a gran escala, uno tiene que usar otros métodos más rápidos. En segundo lugar, para una evaluación cualitativa de los conocimientos y habilidades es necesario poseer esas habilidades usted mismo o involucrar a un colega con tales habilidades. Estas dificultades se pueden resolver utilizando los métodos que analizaré en este artículo. Yo mismo aplico estos métodos e hice una especie de calificación para mí.
Entonces, mis 7 mejores formas de probar rápidamente las competencias de los especialistas de TI antes de la entrevista:
7. Examine la cartera, ejemplos de código, repositorios candidatos abiertos.
6. Una breve tarea de prueba por un tiempo (realizada en 30-60 minutos).
5. Entrevista breve y breve sobre habilidades por teléfono / skype (como cuestionario, solo en línea y por voz).
4. Live-Doing (Codificación): resolvemos una tarea simple en tiempo real con una pantalla compartida.
3. Cuestionarios con preguntas abiertas sobre la experiencia.
2. Pruebas cortas con opciones de respuesta, limitadas en el tiempo.
1. Una tarea de prueba de múltiples etapas, la primera etapa se realiza antes de la entrevista.
A continuación, examinaré en detalle estos métodos, sus ventajas y desventajas, y las situaciones en las que uso de una forma u otra para evaluar rápidamente las competencias de los programadores.

En un artículo anterior sobre el embudo de contratación
habr.com/en/post/447826, realicé una encuesta entre lectores sobre cómo evaluar rápidamente las habilidades de los especialistas de TI. En este artículo hablo sobre los métodos que personalmente me gustan, por qué me gustan y cómo los uso. Comienzo desde el primer lugar y termino séptimo.
1. Una tarea de prueba de etapas múltiples, la primera etapa se realiza antes de la entrevista
Creo que esta es la mejor manera de probar las competencias de los desarrolladores. A diferencia de la tarea de prueba tradicional, cuando dice "mantener la tarea e ir a hacerlo", en mi versión el proceso de realizar la tarea de prueba se divide en etapas: discusión y comprensión de la tarea, diseño de la solución y evaluación de los recursos necesarios, varias etapas de la implementación de la solución, documentación y entrega. aceptación de la decisión. Este enfoque está más cerca de la tecnología moderna de desarrollo de software que simplemente "tómalo y hazlo". Detalles a continuación.
¿En qué casos uso este método?
Para mis proyectos, generalmente contrato a empleados remotos que desarrollan una parte separada, separada y relativamente independiente del proyecto. Esto reduce la necesidad de comunicación entre los empleados, a menudo a cero. Los empleados no se comunican entre sí, sino con el gerente del proyecto. Por lo tanto, es importante para mí evaluar de inmediato la capacidad de una persona para comprender rápidamente un problema, hacer preguntas aclaratorias, desarrollar de forma independiente un plan de acción para resolver el problema, evaluar los recursos y el tiempo necesarios. En esto, una tarea de prueba de varias etapas me ayuda mucho.
Cómo implementar
Seleccionamos y formulamos una tarea independiente y original relacionada con el proyecto en el que el desarrollador tendrá que trabajar. Como tarea, generalmente describo un prototipo simplificado de la tarea principal o producto futuro, para cuya implementación el desarrollador tendrá que enfrentar los principales problemas y tecnologías del proyecto.
La primera etapa de la tarea de prueba es familiarizarse con la tarea, aclarar lo incomprensible, diseñar soluciones, planificar pasos para resolver el problema y estimar el tiempo para completar los pasos individuales y toda la tarea de prueba. En la salida, espero un documento de 1-2 páginas donde se escriba el plan de acción del desarrollador y la evaluación del tiempo. También les pido a los candidatos que indiquen cuáles de los pasos les gustaría implementar por completo para confirmar sus habilidades en la práctica. No se necesita programación hasta ahora.
Esta tarea (lo mismo) se distribuye a varios candidatos. Se espera que los candidatos reciban respuestas al día siguiente. Luego, después de 2-3 días, cuando se reciben todas las respuestas, analizamos lo que nos enviaron los candidatos y qué preguntas aclaratorias nos hicieron antes de continuar con la tarea. Con base en esta información, puede invitar a la siguiente etapa a cualquier número de candidatos que necesite.
El siguiente paso es una breve entrevista. Ya tenemos algo de qué hablar. El candidato ya imagina más o menos el área temática del proyecto, en la que tendrá que trabajar. La tarea principal de esta entrevista es responder las preguntas técnicas del candidato y motivarlo a completar la tarea principal de la prueba: programar la parte de la tarea que él mismo eligió. O la parte cuya implementación quieres ver.
Siempre es muy interesante observar qué parte de la tarea quiere implementar el desarrollador. Algunas personas prefieren desplegar la estructura del proyecto, descomponer la solución en módulos y clases, es decir, moverse de arriba a abajo. Algunos de ellos seleccionan una subtarea separada, la más importante en su opinión, sin anotar la solución en su conjunto. Es decir, van de abajo hacia arriba, desde la subtarea más difícil hasta la solución completa.
Los beneficios
Podemos ver la erudición del candidato, la aplicabilidad de su conocimiento a nuestro proyecto, el desarrollo de habilidades de comunicación. También es fácil para nosotros comparar candidatos entre ellos. Por lo general, rechazo a los candidatos que dieron estimaciones demasiado optimistas y pesimistas sobre el tiempo necesario para completar la tarea. Por supuesto, tengo mi propio tiempo estimado. Una pequeña evaluación del candidato probablemente indica que la persona no ha profundizado en la tarea adecuadamente y realizó esta prueba superficialmente. Demasiada evaluación de tiempo generalmente indica que el candidato tiene una comprensión pobre del área temática, no tiene experiencia en los temas que necesito. No rechazo de inmediato a los candidatos en función de su evaluación, pero le pido que motive su evaluación si la evaluación aún no ha sido suficientemente motivada.
Esto puede parecer complicado y costoso para algunos. Mi evaluación de la complejidad de aplicar este método es la siguiente: toma 30-60 minutos para describir la tarea de prueba y luego 15-20 minutos para verificar la respuesta de cada candidato. Para los candidatos, la realización de una tarea de prueba de este tipo generalmente no lleva más de 1-2 horas, mientras están inmersos en la esencia de las tareas que tendrán que resolver en el futuro. Ya en esta etapa, el candidato puede no estar interesado y se niega a comunicarse con usted, pasando un poco de tiempo.
Desventajas
En primer lugar, debe realizar una tarea de prueba original, aislada y amplia, esto no siempre es posible. En segundo lugar, no todos los candidatos comprenden de inmediato que el primer paso no requiere programación. Algunos comienzan inmediatamente a programar y desaparecen por unos días, luego envían una tarea de prueba completa. Formalmente, no hicieron frente a esta tarea de prueba, porque no hicieron lo que se les exigía. Pero al mismo tiempo, se las arreglaron si enviaron una solución adecuada a toda la tarea de prueba. Para eliminar tales incidentes, generalmente llamo a todos los candidatos que recibieron la tarea, 2 días después de la asignación y averiguo cómo les está yendo.
2. Pruebas cortas con opciones de respuesta, limitadas en el tiempo
Raramente uso este método, aunque realmente me gusta, y considero que es una de las mejores formas de verificar rápidamente las competencias. Escribiré un artículo separado sobre este método en el futuro cercano. Tales pruebas son ampliamente utilizadas en varios campos del conocimiento. El ejemplo más llamativo y típico es un examen teórico para obtener una licencia de conducir. En Rusia, este examen contiene 20 preguntas que deben responderse en 20 minutos. Se permite un error. Con dos errores, debe responder con precisión 10 preguntas adicionales. Este método es muy automatizado.
Desafortunadamente, no he visto buenas implementaciones de tales pruebas para programadores. Si conoce buenas implementaciones de tales pruebas para programadores, por favor escriba en los comentarios.
Cómo implementar
Trabajé con implementaciones independientes de tales pruebas por parte de los empleadores al cumplir con los pedidos como reclutador-outsourcer. Es muy posible implementar tal prueba. Por ejemplo, usando Google Forms. El principal problema es la compilación de preguntas y opciones de respuesta. Por lo general, la imaginación de los empleadores es suficiente para 10 preguntas. Desafortunadamente, en Google Forms no es posible implementar la rotación de preguntas del grupo y los límites de tiempo. Si conoce una buena herramienta en línea para crear sus propios exámenes, donde puede limitar el tiempo para aprobar el examen y organizar la selección de diferentes preguntas para diferentes candidatos, escriba sobre dichos servicios en los comentarios.
¿En qué casos uso este método?
Ahora uso este método a petición de los empleadores, si tienen pruebas preparadas que se pueden dar a los candidatos. También es posible combinar tales pruebas con el cuarto método de mi calificación: le pedimos al candidato que comparta su pantalla y pase la prueba. Al mismo tiempo, puede discutir preguntas y opciones de respuesta con él.
Los beneficios
Con una buena implementación, este método es autónomo. El candidato puede elegir un momento conveniente para pasar el examen y no necesita pasar mucho tiempo.
Desventajas
Una implementación de alta calidad de este método es bastante costosa y no es muy conveniente para una empresa pequeña, ya que ocasionalmente contrata nuevos empleados.
3. Cuestionarios con preguntas abiertas sobre la experiencia.
Este es un conjunto de preguntas abiertas que sugieren que un candidato razone según su experiencia. Sin embargo, no ofrecemos opciones de respuesta. Las preguntas abiertas son aquellas que no pueden responderse de manera simple y monosilábica. Por ejemplo, ¿recuerda la tarea más difícil que resolvió con el marco de tal y tal? ¿Cuál fue la principal dificultad para ti? Tales preguntas no pueden ser respondidas monosilábicamente. Más precisamente, la única respuesta simple es que no tengo esa experiencia; no he trabajado con esta herramienta.
Cómo implementar
Fácil de implementar con Google Forms. Lo principal es hacer preguntas. Yo uso varios diseños estándar.
Cuéntanos sobre el último proyecto que hiciste con la ayuda de XXX, ¿qué fue lo más difícil para ti en este proyecto?
¿Cuáles son las principales ventajas de la tecnología XXX para usted, dar ejemplos de su experiencia?
Habiendo elegido la tecnología XXX, ¿qué otras alternativas consideró y por qué eligió exactamente XXX?
¿En qué situaciones preferiría AAA sobre BBB?
Cuéntanos sobre la tarea más difícil que resolviste con la ayuda de XXX, ¿cuál fue la principal dificultad?
En consecuencia, estos diseños se pueden aplicar a muchas tecnologías desde su pila de trabajo. No es fácil responder a esas preguntas con frases de plantilla de la red, ya que son personales y sobre la experiencia personal. Al contestar estas preguntas, el candidato generalmente tiene en mente la idea de que en la entrevista cualquiera de sus respuestas puede desarrollarse en forma de preguntas adicionales. Por lo tanto, si no hay experiencia, los candidatos a menudo se niegan a sí mismos y se dan cuenta de que una conversación adicional puede no tener sentido.
¿En qué casos uso este método?
Cuando trabajo con pedidos para la selección de especialistas, si el cliente no ha ofrecido su propio método de verificación primaria de competencias, utilizo este método. Ya he preparado cuestionarios sobre varios temas y no me cuesta nada aplicar este método a un nuevo cliente.
Los beneficios
Fácil de implementar con Google Forms. Además, se puede hacer una nueva encuesta sobre la base de la anterior, reemplazando los nombres de tecnologías y herramientas por otras. Por ejemplo, una encuesta sobre la experiencia con React no diferirá mucho de una encuesta sobre la experiencia con Angular.
La compilación de dicho cuestionario lleva entre 15 y 20 minutos, y los candidatos suelen dedicar entre 15 y 30 minutos a las respuestas. El tiempo dedicado es pequeño, pero obtenemos información sobre la experiencia personal del candidato, de la cual podemos tomar un descanso y hacer que cada entrevista con los candidatos sea única y más interesante. Por lo general, la duración de la entrevista después de dicho cuestionario es menor, ya que no tiene que hacer preguntas simples del mismo tipo.
Desventajas
Para distinguir la propia respuesta del candidato de la "google", hay que entender el tema. Pero rápidamente viene con experiencia. Después de ver 10-20 respuestas, aprenderá a distinguir sus propias respuestas originales de los candidatos que se encuentran en la red.
4. Live-Doing (Codificación): resolvemos una tarea simple en tiempo real con una pantalla compartida
La esencia de este método es pedirle al candidato que resuelva un problema simple y observe el proceso. El candidato puede usar cualquier cosa, no hay prohibición de encontrar información en la red. El candidato puede experimentar estrés al ser observado. No todos los candidatos aceptan esta opción para evaluar sus habilidades. Pero, por otro lado, este método le permite ver qué tipo de conocimiento tiene una persona en su cabeza, qué puede usar incluso en una situación estresante y qué información enviará a un motor de búsqueda. El nivel del candidato se nota casi de inmediato. Los principiantes usan las características más básicas, incluso primitivas del lenguaje, a menudo comienzan a implementar la funcionalidad de las bibliotecas básicas de forma manual. Los candidatos más experimentados están bien versados en clases básicas, métodos, funciones y pueden resolver rápidamente un problema simple: 2-3 veces más rápido que los principiantes, utilizando la funcionalidad familiar de la biblioteca de idiomas base. Incluso los candidatos más experimentados generalmente comienzan con discusiones sobre diferentes enfoques para resolver el problema y dicen varias soluciones, preguntan: la implementación de cuáles de las opciones quiero ver. Todo lo que hace el candidato puede ser discutido. Incluso en base a la misma tarea, las entrevistas son muy diferentes, al igual que las decisiones de los candidatos.
Como una variación de este método, puede pedirle al candidato que realice algún tipo de prueba para evaluar las competencias profesionales, justificando la elección de una u otra de las opciones de respuesta. A diferencia de las pruebas convencionales, descubrirá cuán razonable fue la elección de las respuestas. Puede crear sus propias variaciones de este método, teniendo en cuenta las peculiaridades de su vacante.
Cómo implementar
Este método se implementa fácilmente mediante Skype u otro sistema de comunicación de video similar que le permite mostrar la pantalla. Las tareas se pueden inventar por su cuenta o usar sitios como Code Wars, una variedad de pruebas listas para usar.
¿En qué casos uso este método?
Cuando selecciono programadores y del currículum no está completamente claro qué nivel de conocimiento tiene el candidato, les ofrezco una entrevista en este formato. En mi experiencia, aproximadamente al 90% de los desarrolladores no les importa. Les complace que desde la primera entrevista comience una conversación sobre programación, y no preguntas estúpidas como "a quién te ves en 5 años".
Los beneficios
A pesar del estrés y la emoción del candidato, el nivel general de habilidades del candidato es inmediatamente y claramente visible. Las habilidades comunicativas del candidato también se hacen claramente visibles: cómo razona, cómo explica y motiva su decisión. Si necesita hablar sobre el candidato con sus colegas, es fácil hacer un video desde su pantalla y luego mostrar la entrevista a otras personas.
Desventajas
La comunicación puede ser interrumpida. Debido a la emoción, el candidato puede comenzar a embotar. En esta situación, puede interrumpirlo y darle tiempo para reflexionar solo sobre la tarea, volver a llamar en 10 minutos y continuar. Si después de eso el candidato se comporta de manera extraña, entonces vale la pena probar una forma diferente de evaluar las habilidades.
5. Entrevista breve y breve sobre habilidades por teléfono / skype
Esto es solo una conversación de voz en el teléfono, Skype u otro sistema de comunicación de voz. Al mismo tiempo, podemos evaluar las habilidades comunicativas del candidato, su erudición y sus horizontes. Puede usar el cuestionario como un plan de conversación. Alternativamente, puede discutir con más detalle con el candidato sus respuestas a su cuestionario.
Cómo implementar
Estamos de acuerdo con el candidato sobre la conversación y la llamada. Hacemos preguntas, arreglamos respuestas.
¿En qué casos uso este método?
Por lo general, utilizo este método junto con el cuestionario cuando las respuestas del candidato me parecieron originales o no me convencieron. Hablo con el candidato sobre las preguntas del cuestionario y descubro su opinión con más detalle. Considero que dicha conversación es obligatoria cuando las habilidades comunicativas del candidato son importantes, la capacidad de articular sus pensamientos de manera simple y clara.
Los beneficios
Sin hablar en una voz profesional, generalmente no es posible determinar qué tan bien un candidato puede expresar sus pensamientos.
Desventajas
La principal desventaja es el costo adicional de tiempo. Por lo tanto, uso este método además de otros, si es necesario. Además, hay candidatos que hablan excelentemente sobre temas profesionales, pero en la práctica saben poco. Si necesita un programador que resuelva problemas de manera consistente y eficiente, entonces es mejor elegir un método diferente de prueba de competencia inicial. Si necesita un gerente o analista, es decir, un especialista que traduzca de un lenguaje humano a un "lenguaje de programación" y viceversa, entonces este método de prueba de competencias será muy útil.
6. Una tarea de prueba corta por un tiempo (realizada en 30-60 minutos)
Para varias profesiones, la capacidad de un especialista para encontrar rápidamente una solución a un problema es importante.
Como regla general, las tareas se resuelven de manera simple, pero el tiempo que lleva resolver el problema es importante.Cómo implementar
Estamos de acuerdo con el candidato sobre el tiempo para completar la tarea de prueba. A la hora acordada, enviamos al candidato las condiciones del problema y averiguamos si entendió lo que se requería de él. Tomamos nota del tiempo que le toma al candidato resolver el problema. Analizamos la solución y el tiempo.¿En qué casos uso este método?
En mi práctica, este método se utilizó para evaluar las competencias de los especialistas de soporte técnico, programadores y probadores de SQL (QA). Las tareas eran como "encontrar áreas problemáticas y descubrir cómo solucionar el problema", "optimizar la consulta SQL para que funcione 3 veces más rápido", etc. Por supuesto, puedes crear tus propias tareas. Para desarrolladores novatos, este método también se puede utilizar.Los beneficios
Dedicamos nuestro tiempo solo a compilar y verificar tareas. El candidato puede elegir un momento conveniente para completar la tarea.Desventajas
La principal desventaja es que sus tareas o similares se pueden publicar en la red, por lo que debe tener una serie de opciones y presentar nuevas tareas periódicamente. Si necesita probar la velocidad de reacción y los horizontes, personalmente elijo las pruebas de tiempo (método número 2).7. Examine la cartera, ejemplos de código, repositorios candidatos abiertos
Esta es quizás la forma más comprensible de evaluar las competencias, siempre que sus candidatos tengan una cartera y que tenga especialistas en su equipo de selección que puedan evaluar su cartera.Cómo implementar
Estudiamos el currículum de candidatos. Si encontramos enlaces a la cartera, entonces estudie. Si no hay referencias a la cartera en el currículum, entonces solicitamos la cartera del candidato.¿En qué casos uso este método?
En mi práctica, este método se ha usado muy raramente. Con poca frecuencia en la cartera de candidatos puede encontrar trabajo sobre el tema. Los candidatos experimentados a menudo prefieren este método en lugar de una tarea de prueba típica y poco interesante. Dicen: "mira mi rap, hay docenas de ejemplos de mis soluciones a diversos problemas, verás cómo escribo el código".Los beneficios
Ahorra tiempo candidatos. Si hay tiempo para profesionales en su equipo, es posible filtrar rápidamente los incorrectos sin comunicarse con los candidatos. Mientras el reclutador busca candidatos, su colega evalúa la cartera. Resulta un trabajo bastante rápido y paralelo.Desventajas
Este método no se puede aplicar a todas las profesiones de TI. Para evaluar la cartera, debe haber desarrollado habilidades usted mismo. Si no es un especialista, no podrá evaluar cualitativamente la cartera.Colegas, los invito a discutir lo que leyeron en los comentarios. Díganos qué otros métodos de prueba de competencia rápida utiliza.