Muchos directores de equipos de desarrollo de software tienen dificultades para evaluar a los candidatos durante el proceso de contratación. Es importante dentro de estas entrevistas mantenerse centrado en el objetivo número uno, encontrar un compañero que ayude a luchar contra el verdadero enemigo, la complejidad.
En el sector del desarrollo de software, puede ser difícil encontrar a una persona capaz de equilibrar plazos ambiciosos y crear un código fácil de mantener, legible y eficiente. Si elige a un miembro del equipo con la actitud equivocada o con un talento inferior, lo más probable es que su carga se haga más pesada. Pero si elige correctamente a un miembro del equipo, puede que tenga una oportunidad de luchar.
Si es usted cinéfilo como yo, recordará la épica película de Akira Kurosawa, Siete Samuráis. En la película, hay una escena en la que el líder del equipo samurái, Kambei, está eligiendo guerreros para luchar contra un grupo de bandidos que están atormentando la aldea de un granjero. El proceso de selección de Kambei es bastante sencillo: invita a los candidatos a cruzar una puerta y entrar en una habitación desconocida. A continuación, evalúa sus reacciones. ¿Se enfrentan al peligro? ¿Serán capaces de reaccionar con éxito ante lo que encuentren?
Al igual que Kambei, cuando evalúo a candidatos para el desarrollo, me gusta hacer un ejercicio en el que realizan su trabajo delante de mí. Luego los evalúo en 5 áreas principales: conocimientos, artesanía del código, arquitectura/diseño, refactorización/pruebas y peopleware.
Lo primero que quiero evaluar es el grado de familiaridad del candidato con sus herramientas. Presto especial atención a la rapidez con la que navegan por los menús, utilizan los accesos directos y lo fácil que les resulta crear artefactos en cada herramienta. En nuestras evaluaciones en directo en number8, analizo específicamente lo siguiente:
Almacén de datos
Lenguaje/marco de desarrollo web
Marco de pruebas
El principal entregable para la mayoría de los ingenieros de software es el código. Así que, en realidad, estamos entrevistando a autores que colaboran para escribir y revisar distintas partes de un mismo texto. Por lo tanto, tenemos que atenernos a ciertos principios si queremos que otras pobres almas encuentren sentido a nuestro código.
Para los jóvenes talentos, los principios de codificación a veces pueden descartarse fácilmente, pero los desarrolladores profesionales saben que no es así. Un buen código significa que otros desarrolladores pueden leer el texto como si fuera una historia. El código debe ser lo suficientemente modular como para asignar partes separadas de una solución a cada miembro del equipo para su mantenimiento. En esencia, un buen código tiene que ser
Limpio | D.R.Y | Legible | Expresivo
En esta área, quiero ver la comprensión que tiene el candidato de los servicios y lo bien que distribuye las responsabilidades de la solución propuesta. Presto especial atención a las siguientes actividades:
Ya sea para hacer las cosas más claras o para resolver un error, la mayor parte del tiempo los ingenieros de software están leyendo y cambiando código que ha escrito otra persona. Por eso, siempre presto mucha atención a las pruebas. Creo quea única forma de asegurarse de que un candidato está solucionando realmente un problema (en lugar de empeorar las cosas) es ejecutar pruebas de creación. Las pruebas unitarias y de integración simplemente no son óptimas en el mundo actual.
Peopleware es un libro y un término acuñado por el ingeniero de software estadounidense Tom Demarco. El libro explica la importancia de comprender cómo encaja un desarrollador de software en la cultura de una organización y lo bien que trabajará con el resto del equipo. Al evaluar este aspecto, presto especial atención a lo siguiente:
En conclusión, la ingeniería de software es una profesión compleja e interesante y los ingenieros siempre están pasando de un estado de habilidad a otro. Sus candidatos pueden ser polifacéticos o especialistas, pero siempre hay bloques fundacionales específicos que son comunes a todos. Evaluar a los candidatos al desarrollo con los bloques descritos en este artículo le proporcionará la capacidad de calibrar fácilmente lo que aportará un nuevo miembro del equipo.
Recuerda que, cuando realizas una entrevista, no intentas encontrar a un genio ni aceptar a todos los candidatos; simplemente buscas guerreros que estén lo suficientemente preparados y tengan la actitud adecuada para realizar el trabajo y luchar a tu lado.
Sobre el autor: Stuart Matamoros es Team Manager y lleva 9 años en number8. Ha desempeñado un papel decisivo en la creación de nuestro proceso de evaluación de candidatos, que incluye una breve evaluación, un desafío de codificación de evaluación en vivo y una evaluación de la personalidad.
Facilite sus datos para hablar hoy mismo con un ejecutivo de cuentas de number8 sobre sus necesidades de desarrollo y sienta lo que es que le escuchen antes de venderle una solución.
Permítanos ayudarle a añadir personal altamente cualificado, desarrolladores versátiles a su equipo.