Estoy buscando trabajo y he postulado a varios puestos. Un empleador respondió. Tuve una entrevista telefónica bastante larga (quizás una hora o más) y luego me prepararon una prueba de desarrollador. Me dijeron que se estimaba que la prueba demoraría entre 6 y 8 horas y que, si los resultados recibían su aprobación, me pagarían por mi trabajo.
Eso me dio una pausa, pero me esforcé. La prueba del desarrollador se realizó en una máquina virtual a la que se accedió a través de RDP . La tarea consistía en implementar una página de búsqueda en un proyecto web que solicita datos del servidor, los muestra en la pantalla en una tabla, tiene un esquema de filtrado de búsqueda bastante complicado (hay aproximadamente 15 estados y al enviar la búsqueda al servidor usted puede buscar por estos estados) además de la búsqueda de cadena / campo. Además, quieren que los iconos SVG cambien de color en ciertos valores de datos y que algunos datos se representen de manera diferente a cómo está estructurado en la base de datos.
En pocas palabras, esto tomó mucho más de 6 a 8 horas. Gran parte se debió a la máquina virtual muy pobre en la que estaba ejecutando (Visual Studio 2013 tardó 10 minutos en cargar, y otros 15 minutos para abrir la solución descomunal de 3 GB).
Me dijeron que después de completar la prueba debería confirmar mis cambios al control de fuente ... Hmm, está bien. Seguí las instrucciones. Y después de cometer los cambios, recibí una respuesta por correo electrónico. Los SVG no estaban coloreados correctamente, hubo un error en este caso extremo, hubo un problema ocasional con esta otra cosa que nunca experimenté, etc. Así que ahora tengo 13-14 horas en esto, y tengo que hacer correcciones de errores. Los hago, y el empleador vuelve con más solicitudes de corrección de errores.
Todo mi trabajo aparentemente va a una aplicación de producción. Noté algunas anomalías en el código donde parecía que otros habían codificado toda una funcionalidad pero no habían tocado nada más.
¿Solo estoy siendo utilizado para mano de obra barata? Incluso si me pagan los 50 dólares prometidos por hora durante 6 horas, ahora he comprometido unas 18 horas a esto. Si soluciono todos los problemas que siguen apareciendo, habré trabajado al menos 16 horas gratis.
He realizado varias pruebas de desarrollador, pero nunca he realizado una durante la cual trabajé en código destinado a producción. Nunca realicé una prueba en la que implementé una característica que estaba en desarrollo para el desarrollo, y nunca realicé una que tomó 4 rondas y un total de más de 20 horas. Tengo la impresión de que están utilizando su prueba de desarrollador para colocar algunas de las funcionalidades de forma económica.
¿Tengo la impresión equivocada? ¿Y es apropiado este protocolo de prueba?
Respuestas:
Nunca participaría en una prueba de código de esta naturaleza. He tomado muchas pruebas de código y he realizado muchos proyectos de código. Ciertamente no verificaría el código en el repositorio de otra persona bajo ninguna circunstancia. Si no saben lo que necesitan saber después de una muestra de 4 horas con alguna corrección menor de errores en una sesión de programación de pares, entonces nunca lo sabrán.
Al entrar en una prueba, debe saber y dejar en claro algunas cosas por adelantado:
La empresa con la que se entrevista también está siendo entrevistada por usted. Si así es como están tratando a alguien a quien están entrevistando, ¿es esta una empresa para la que desea trabajar? Entiendo que a menudo las personas necesitan un trabajo y, a menudo, esta necesidad anulará algunos conceptos de sentido común, pero esto siempre debe estar en la vanguardia de su mente. No tengas miedo de salir. Si no se siente bien, sigue tus instintos y vota con los pies.
fuente
Muchas entrevistas son seguidas por pruebas. Esas pruebas son necesarias para garantizar que realmente tenga las habilidades requeridas y para tener una mejor visión de algunas cosas que son difíciles de probar durante la entrevista en sí (como aplicar reglas de estilo a su código).
Dicho esto, una prueba es una prueba.
No necesita ser largo. No hay mucho que pueda ver después de ocho horas de codificación que no pueda ver después de treinta minutos. Más importante aún, el código escrito durante la prueba debe revisarse, línea por línea, lo que lleva una cantidad de tiempo importante . No es inusual pasar más de dos horas para revisar el código de prueba escrito durante media hora.
No debería tratar con una base de código existente. Comprender la base del código de un producto de mediana escala puede llevar días o semanas (o meses o años, según la calidad del código y la deuda técnica). La propiedad intelectual también puede ser un problema (a menos que el código sea de código abierto).
Cuando el objetivo es probar cómo el candidato es capaz de mantener la base de código existente, la prueba se puede hacer en una pequeña base de código ficticio (500-600 LOC) escrita específicamente para las pruebas.
No tiene que ser una solicitud para desarrollar una aplicación o característica de la vida real. Puede ser un código completamente inútil, escrito con la única intención de mostrar que ha entendido el problema y ha encontrado una forma elegante de resolverlo.
No tiene que ser perfecto. Hay errores? Esta bien. Tome nota de ellos para una nueva entrevista con el candidato; Puede ser una excelente oportunidad para ver cómo reacciona el candidato ante esta situación.
No tiene que hacerse a través de RDC en una máquina virtual, a menos que no tenga Visual Studio usted mismo. Si el objetivo es ver sus habilidades de codificación y resolución de problemas, no importa dónde haga el ejercicio.
Es incuestionable que el código escrito durante esta prueba termine en el control de versiones de la compañía. ¿Por qué contaminarían su control de versiones con algo escrito por un candidato?
Para concluir, cuando se le pide que pase decenas de horas escribiendo código de producción, resolviendo errores y comprometiendo su trabajo al control de versiones de la compañía:
O simplemente te están utilizando para implementar funciones de forma gratuita,
O realmente no entienden cómo hacer una entrevista.
En ambos casos, busque un mejor lugar para trabajar.
fuente
No voy a escribir una respuesta larga, pero estoy muy confundido, ¿por qué nadie menciona el tema de los derechos de autor?
En lo que respecta a mi experiencia, nunca he oído hablar de un acuerdo para transferir la propiedad de los derechos de autor del código escrito durante una prueba de desarrollador a la otra parte. Si este es el caso, puede demandarlos por infracción de derechos de autor y los daños otorgados por esto pueden ser bastante agradables, especialmente en los EE. UU. Por las historias que he escuchado. Y si quieren llegar a un acuerdo (proponga esto), puede solicitar una tarifa exorbitante por la infracción (después de lo cual, en principio, todavía no se les permitiría usar su trabajo y aún podría venderles su trabajo si todavía estuvieran interesados )
fuente
Las personas con más experiencia profesional pueden responder mejor a esta pregunta, pero personalmente no me sentiría muy cómodo con una prueba de desarrollo de más de 20 horas. Parece que están usando la entrevista para completar las tareas de trabajo.
Supongo que no ha firmado ningún documento legal sobre la propiedad del código. Así que esperaría hasta que revisaran el código y lo aceptaran o lo negaran. Entonces, si lo aceptaran, pediría que me paguen por el tiempo completo, más de 20 horas. No estoy seguro de que aceptaría el pago solo por las seis horas sugeridas originalmente. Si esto va a entrar en producción, entonces deberán enderezar la propiedad del código.
Por lo menos, discutir el pago del código debería ayudarlo a decidir si desea aceptar una oferta. No quisiera aceptar una oferta si pensaran que pagarle solo seis horas es justo.
fuente
Cuando estaba en condiciones de entrevistar a los desarrolladores, esas pruebas eran cortas y simplemente "pasaban o fallaban", no incluía la corrección de errores, incluso cuando había algunos errores menores en el código. Eso es porque quería evaluar las habilidades del candidato, no obtener una pieza de software lista para producción.
La situación descrita en la pregunta se parece mucho a que alguien está tratando de obtener algo útil de forma gratuita (o barata).
fuente
Nunca he hecho una prueba de desarrollo de más de una hora, y todos estos han sido 'rompecabezas', un trabajo para ver si puedo resolver problemas y cumplir un objetivo establecido dentro de un límite de tiempo determinado.
$ 50 (o para mí, £ 25-30) es una tarifa diaria bastante baja, es como pedirle a un plomero que arregle su inodoro a cambio de una bebida.
Mi consejo, en términos inequívocos, es bloguear sobre su experiencia, refiriéndose a la compañía por su nombre en caso de que estén tratando de crear una aplicación completa con esta técnica (la gente a menudo busca en las compañías de Google antes de ir a la entrevista) Sucede de nuevo. La próxima vez que soliciten una corrección de errores, puede nombrar una tarifa diaria de consultoría (al menos 5 veces más de lo que han estado ofreciendo) y hacer saber que los desarrolladores no trabajarán de forma gratuita.
Ser engañado es, tristemente, parte de la vida, pero no tienes que sentarte y aceptarlo.
fuente
Solo para comparar: la entrevista para mi trabajo actual fue alrededor de 1 hora hablando de lo que hice hasta ahora y de lo que la compañía planea hacer y cómo encajaría. Después de eso trabajamos juntos una semana en un pequeño proyecto que habían mentido alrededor, supongo que solo para ver cómo nos llevamos el uno con el otro. Me pagaron por esto como freelance la misma cantidad que obtengo ahora como empleado, por lo que nunca hubo un día completo de trabajo no remunerado, y mucho menos 3 días.
Si el código se usa realmente en producción, les enviaría la factura por las 24 horas que ha pasado, no es su culpa si sus estimaciones son incorrectas. Asumiendo que no te dejaron estimar cuánto tiempo llevará.
fuente
Si bien supuestamente le pagan por (parte de) su trabajo, esto no parece un proyecto de prueba , parece una estafa para obtener un trabajo barato / gratuito. Puede ser que haya sido diseñado para ser un proyecto de prueba, simplemente no estructurado o administrado muy bien.
Pero el manejo que es tan malo que parece una estafa, definitivamente es algo que debe tener en cuenta al decidir si acepta el trabajo o no.
Un proyecto de prueba adecuado debería dejar en claro que
Los términos deben ser aceptables para usted, independientemente de si lo contratan; si los términos solo son aceptables si vienen con un trabajo a tiempo completo, no son realmente aceptables.
fuente
No creo que realmente usen esto para obtener mano de obra barata.
El motivo es simple. Después de escribir esas pruebas, necesitan que las personas revisen lo que escribes, sí, revisar el código es mucho más fácil que escribir el código en sí, pero todavía lleva mucho tiempo.
Y luego, probablemente necesiten personas para mantener esas pruebas, explicarlas, etc.
Y simplemente no puedo imaginar una compañía de TI que se preocuparía por ahorrar menos de $ 100, especialmente compañías en los Estados Unidos. Nunca es cómo funciona el negocio.
fuente
Creo firmemente en las pruebas de código para desarrolladores que se entrevistan para un trabajo. Sin embargo, esto suena como la prueba de código del infierno ... Las pruebas de código nunca deberían involucrar código de producción. Deben ser simples y deben indicar que ninguno de los trabajos realizados será utilizado por la empresa.
Claramente, el trabajo que hizo fue en el código de producción. Se le debe pagar todo su tiempo, como mínimo. Intente hablar con un abogado y vea si cree que valdría la pena demandarlos. Muchos abogados ofrecen consultas iniciales gratuitas. Si el fraude estuvo involucrado, y en este caso se ve de esa manera, usted tendría derecho a cuadruplicar los daños monetarios, y también podría obtener algunos buenos daños punitivos además de eso.
Al demandarlos y ganar, aparecerá algunos titulares y desalentará esta práctica por parte de otros en el futuro, lo que será beneficioso para todos los desarrolladores de software que busquen una nueva posición.
fuente
Las pruebas de codificación son, lamentablemente, una realidad. Dicho esto, me molesta que me pidan que pase cuatro horas en una prueba de codificación como condición para obtener mi primer examen de teléfono. Es injusto pedirle a un candidato que invierta tanto cuando la compañía ha invertido muy poco en la relación.
Soy un desarrollador senior y puedo pasar su prueba de codificación. Pero no perderé mucho tiempo en eso a menos que la compañía haya mostrado algún interés personal en mí. Por lo general, no completo una solicitud para ninguna empresa con un formulario de solicitud en línea grande y mal escrito que me pide que vuelva a ingresar mi currículum para que su robot mal escrito pueda estropear la búsqueda de palabras clave. Generalmente no estoy de acuerdo en completar una prueba de codificación a menos que sea breve o la estén viendo en vivo y hablen conmigo.
Incluso si no están poniendo su código en producción, una compañía que quiere que pase mucho tiempo escribiendo antes de que descubra si es una buena opción es una compañía que se siente cómoda aprovechándose de usted. Están señalando lo que quieren que sea su relación; Eres el mono código. Ellos llaman los tiros. Y su proceso de entrevista está diseñado para encontrar personas que se sientan cómodas con esa relación.
No seas un mono código. Alejarse.
fuente