Al contratar a un desarrollador independiente, ¿cómo gestiona la calidad de su trabajo sin una formación técnica?

No está buscando encontrar errores en sus códigos. Encontrar errores es una cuestión de control de calidad, por lo que la mayoría de las veces no necesita conocimientos técnicos para encontrar errores. Simplemente navega por el producto e intenta comportamientos inesperados para encontrarlos. Sin embargo, lo que necesita es eficiencia.

Los freelancers que contrate deben poder tomar las decisiones técnicas correctas, encontrar la mejor pila tecnológica para usted y escribir códigos limpios y eficientes. ¡No es tan difícil para un desarrollador escribir líneas de códigos inútiles solo para hacerte creer que está produciendo lo suficiente! Eso proviene de la mentalidad de que existe una proporción entre el tiempo dedicado a la codificación y el número de líneas escritas por el desarrollador. Así es como la mayoría de los reclutadores no técnicos piensan en esta profesión, por eso algunos desarrolladores pueden abordar el problema de esta manera.

Como otros mencionaron, puede contratar a dos personas para resolver el problema, una persona mayor con tarifas más altas (y menos horas) para actuar como un CTO mejoraría significativamente la calidad de su base de código y al mismo tiempo tendrá dos opiniones sobre el mismo problema pero también debe asegurarse de mantener la comunicación en un nivel aceptable.

Me paso la mayor parte del día trabajando en productos de software y es muy fácil perder el rastro con el gerente de producto y crear algo que no debía construir. También es muy importante mantener todo ágil y hacer stand-ups diarios con su equipo, para que entiendan qué tan serio es y cómo se va a evaluar su trabajo. También es una buena manera de realizar un seguimiento del progreso del proyecto y crear una sutil obligación para que los desarrolladores trabajen a un ritmo específico.

Un desarrollador independiente de calidad puede ser administrado por alguien que no sea técnico. En mi experiencia, las personas con una mentalidad técnica en realidad se convierten en malos gerentes, porque microgestionan en cuestiones técnicas en lugar de administrar un resultado comercial para la organización.

Entonces, ¿qué debe hacer para contratar a un buen candidato?

Solicite muestras de trabajo y verifique referencias. Si está satisfecho con los resultados de lo que construyeron, eso debería hablar por sí mismo. Si no tienen muestras de trabajo debido a “confidencialidad” o porque son un “desarrollador de back-end”, primero, trate de encontrar a alguien que tenga muestras de trabajo; pero si tiene poco tiempo y no quiere encontrar a alguien, simplemente verifique sus referencias.

Lo más importante que debe hacer en una verificación de referencia de desarrollador independiente:

  • ¿El desarrollador se comunicó bien? ¿El gerente siempre estaba informado del estado de su proyecto?
  • ¿El desarrollador trabajó bien con otras personas en la organización?
  • ¿El desarrollador realmente envió un producto que funciona? ¿Qué pasó con ese proyecto … dónde está ahora?

Esta será una prueba lo suficientemente buena para casi todos los desarrolladores que desee contratar. Los únicos casos son cuando estás trabajando en algo que involucra investigación técnica de vanguardia; en ese caso, debe contratar a un CTO, a quien el desarrollador informará. El 99% de los requisitos de programación no requieren esto en absoluto, y el 25% + de los requisitos de Silicon Valley tampoco lo requieren.

Asegúrese de que utilizan el control de versiones y ejecutan con frecuencia su trabajo a través de una herramienta de calidad de código como Code Climate. Eso no es una bala de plata, pero es un comienzo.

También debe insistir en que utilicen el desarrollo basado en pruebas donde tenga sentido (que es casi siempre).

Contrata a un desarrollador experimentado para escribir una guía para tus prácticas de desarrollo requeridas. Luego, contrate a alguien para realizar una verificación cruzada cuando se entregue el proyecto. Eso significa que tiene una estructura de desarrollo consistente a la que se acostumbrará y reducirá en gran medida el tiempo que lleva hacer un control de calidad manual.

Usted presenta estos requisitos a un desarrollador y probablemente eliminará a los malos desarrolladores. Por ejemplo, si alguien requiriera TDD cuando era principiante, habría pasado porque simplemente no entendía el valor. Si alguien dijera que mi código se ejecutará a través de un verificador de calidad, lo habría aprobado porque no estaba seguro de mi código.

Otra idea: consultar referencias.

Pero la conclusión es que si no estás técnicamente inclinado o no tienes a alguien a quien darle, entonces corres el riesgo de ser ‘ese tipo’ que exige excelencia pero que no sabe cómo es la excelencia. Ese es el tipo de cliente que muchos desarrolladores decentes tienden a evitar.

Otra nota: tenga mucho cuidado con sus acuerdos. No piense que puede contratar a alguien con un contrato de ‘trabajo por contrato’ por hora (típico en Elance) y luego retener el pago porque no está satisfecho con el trabajo. Asegúrese de tener claras las estipulaciones.

Con bastante facilidad. Contrata a alguien más por unas pocas horas regularmente para auditarlo.

¿Puedo preguntar cómo incluso los contratas si no tienes los conocimientos técnicos para evaluar sus habilidades? ¿Cómo puedes juzgar la calidad de su trabajo anterior? ¿Cómo los pruebas? Claro que hay pruebas de codificación automatizadas que ciertamente pueden ayudar, pero son solo una parte del proceso de evaluación técnica y entrevista. Los candidatos deben ser entrevistados por alguien que realmente pueda entender su trabajo y hablar sobre ello.

Soy realmente curioso.