En mi experiencia, los gerentes e incluso los empleados de un empleador potencial tienden a enfatizar el compromiso con la calidad en su empresa o su equipo durante las entrevistas. También me preguntan de forma rutinaria sobre mi competencia con herramientas y procesos para mejorar y mantener la calidad del código. También se acostumbra escribir algún código durante la entrevista o como tarea.
Al tener experiencia con varios proyectos de mantenimiento, tuve que aprender el valor de un buen código de la manera más difícil. Se ha vuelto muy importante para mí cuando escribo mi propio código. Y no quiero ser empleado de una empresa que no se comprometa a escribir un buen código, aparte de las definiciones de buen código.
Sin embargo, una vez que el código heredado está sobre la mesa, a menudo me siento decepcionado, ya que resulta que el compromiso con la calidad del código es más bien una forma de hablar. Tiende a estar repleto de errores simples que se introdujeron hace años, no tiene un formato consistente, no tiene expresiones idiomáticas consistentes y, a veces, muestra una grotesca falta de comprensión de las técnicas y principios básicos de codificación. Probablemente estoy predicando al coro aquí :)
¿Es una buena idea pedirle a un posible empleador que muestre primero el código fuente? Específicamente, me gustaría ver algunos ejemplos de código de producción.
¿Cómo puedo solicitarlo para que un posible empleador comprenda mis preocupaciones y me permita echar un vistazo?
¿Es probable que se nieguen por motivos distintos a la mala calidad del código (confidencialidad, etc.)?
Si se niegan, ¿cómo podemos llegar a un acuerdo que sea satisfactorio para ambas partes?
Por el bien del argumento, supongamos que podré determinar la calidad del código a partir de una muestra bastante pequeña: mi pregunta es realmente solo sobre si solicitarlo y cómo hacerlo. Advertirme sobre los rendimientos esperados bajos es agradable, pero no tiene nada que ver con el tema.
No soy un solicitante. Me han contactado debido a mis calificaciones y me gustaría evaluar si realmente estoy interesado. No tengo miedo de ser excluido de la carrera. Mi objetivo principal es saber si la comida es de mi agrado sin tener que comerme todo el plato.
Es muy poco probable que le proporcionen una muestra del código, por lo que realmente lo que necesita averiguar es cómo puede responder sus preguntas sin ver el código. Está tratando de asegurarse de que valoren las buenas prácticas de codificación, así que pregúnteles sobre eso .
Aquí hay algunas preguntas de ejemplo que deberían ayudarlo a comprender cuánto valor le da la empresa al mantenimiento del código de calidad a lo largo del tiempo. Hay muchas otras cosas que puede preguntar específicas para su situación y prioridades.
EDITAR:
Algunas personas señalan que el hecho de que el entrevistador te diga algo no significa que sea del todo cierto. Es posible que sus estándares para la revisión por pares no coincidan con los suyos, o tal vez el gerente no sabe tanto como cree sobre las prácticas de codificación de su equipo. Esto es cierto para todo lo que le dicen en una entrevista, en todos los temas, y debe confiar en la confianza en cierto punto. Si realmente se sentiría más cómodo viendo algún código, ¡pregunte por todos los medios! Simplemente no creo que puedas suponer que la respuesta será sí.
Checkstyle
.Si está manteniendo el código, también podría suponer que el código que está manteniendo será estructuralmente deficiente de alguna manera.
Solicitar un código para revisar no es bueno porque ese código se considera confidencial y propietario a menos que haya sido de código abierto. Puede echar un vistazo al código de código abierto, pero si está bien escrito y bien estructurado, no hay garantía de que el código heredado esté tan bien escrito y estructurado.
Incluso si se le permitió ver algún código propietario, no hay garantía de que este código no sea realmente su mejor paso adelante.
Si estuvo en una entrevista conmigo y solicita ver parte de nuestro código propietario, asumiré la actitud de que no conoce el significado de las palabras "confidencial" y "propietario" y lo descartaré como candidato. ¿Por qué debería contratarlo de todos modos, si tengo que preocuparme por qué código heredado está dispuesto a mantener?
Solo pregunta. No dé un ultimátum de que si no ve el código, saldrá por la puerta. Puede haber razones legítimas por las que no pueden mostrarlo. Si cree que esto es un factor decisivo, simplemente rechace la próxima entrevista.
Aunque no vendían software comercial, vi código durante una entrevista y ni siquiera tuve que preguntar. Querían saber si lo entendía.
Limpiar el código siempre será parte del trabajo. Puede sentir que tiene estándares muy altos para sus prácticas de codificación actuales, pero en aproximadamente un año, es posible que no esté tan satisfecho con él.
No seas tan duro. Una imagen puede contener mil palabras, pero solo muestra un lado de la historia.
Editar: creo que una clave aquí es que lo pondrán en una posición para escribir un código deficiente. Esa podría ser la razón de que el código base actual sea de baja calidad o que los programadores anteriores no fueran tan hábiles. La limpieza no siempre es divertida, pero es tolerable si sabe que la compañía lo pondrá en una posición para hacer un trabajo exitoso y de calidad.
No pidas una copia de nada: eso suena espeluznante e imprudente. No pregunte a la gerencia: es posible que el código base no coincida con los objetivos aspiracionales de la gerencia actual. Ni siquiera preguntes sobre la prueba de Joel, ya que pueden reclamar cosas que realmente no tienen.
Pero pida sentarse con un desarrollador existente para un recorrido por la base de código y la cadena de herramientas y los desafíos actuales. Es una petición razonable, no excepcionalmente inusual. En ese momento puede preguntar sobre problemas de mantenimiento del código. Si el código base es malo, lo sabrá bastante rápido. Si es bueno, ha iniciado una buena relación con el equipo.
Dices que no te consideras un candidato y que no temes ser rechazado, pero insistes en usar el término empleador potencial; necesitas cambiar tu enfoque.
Quiere funcionar como contratista. No son un empleador potencial; son un cliente potencial.
Ningún contratista de mejoras para el hogar dará un presupuesto sin ver el sitio de trabajo, las condiciones y comprender los riesgos involucrados. Usted, como contratista de mejora de código, debe seguir los mismos pasos.
Un enfoque es tomar una asignación de una o dos semanas para investigar la situación y hacer una estimación de lo que necesitan y lo que costará. Si no le gusta la situación, haga una oferta alta o rehúse aceptar el trabajo.
Por supuesto, firmará cualquier acuerdo de confidencialidad que requieran.
Nota: incluso si me acerco a usted para que se convierta en un empleado, lo descartaría si insistiera en tener acceso a mi base de código. Pero si estuviera buscando contratarlo como contratista para lograr un objetivo específico, esperaría que hiciera su debida diligencia.
Intentaría hablar con futuros colegas . Preferiblemente más de uno.
Los programadores reales son más propensos que sus gerentes a decirle la verdad del día a día, en lugar de una visión de dónde se espera que la empresa esté en el futuro. También puede comparar las opiniones de varios colegas para separar aún más los hechos de las ilusiones.
Otro beneficio es que las personas con las que trabaja también son muy importantes para su satisfacción laboral, por lo que desea conocerlas de todos modos.
Simplemente haga algunas preguntas tomadas de Joel Test :
Como han dicho otros, puede compararlos con algunas preguntas simples, pero realmente entiendo de dónde viene... Por experiencia personal.
La gente dice un montón de cosas en el acto que no saben con certeza o responden sin entender la pregunta. Algo así como la prueba de Joel es realmente genial, pero solo si entienden la pregunta y la tecnología (y si no están mintiendo).
Una afirmativa a "¿Utiliza el control de fuente?" en realidad podría ser tan horrible como "trabajamos desde FTP y hacemos una copia de seguridad en CVS a fin de mes". Si esto es importante para saber si va a trabajar o no con estas personas, o (quizás más importante) cuánto les va a cobrar para compensar su ineptitud, debe averiguarlo mediante la observación directa . Las personas que no están contratando desarrolladores de software probablemente no lo entiendan.
Pero los profesionales entienden la evaluación de riesgos . Eso es todo lo que estás haciendo aquí. Explíquelo, diga que está feliz de firmar un NDA [bueno, no ridículo], y si se niegan, haga que absorban el riesgo citando el peor de los casos (o un factor del mismo). Así es como cualquier otra industria maneja esto.
No estoy diciendo que no debas compararlos con pruebas como la prueba de Joel. Solo asegúrese de haber visto lo que es importante para usted antes de comprometerse con algo.
En mi experiencia, los gerentes e incluso los empleados de un empleador potencial tienden a enfatizar el compromiso con la calidad en su empresa o su equipo durante las entrevistas.
Todo empleador está supuestamente comprometido con la calidad. Sin embargo, hay toneladas de software de mala calidad y existen toneladas de brechas de seguridad.
En general, está confundiendo la jerga de los negocios porque decir "estamos comprometidos con la calidad" es, en última instancia, una declaración vaga. Cualidad de quien? ¿Cuál es el punto de referencia? Es solo basura de toro hecha para hacerte sentir genial.
En general, todo lo que escuchará durante el proceso de una entrevista será, a falta de un término mejor, una "mentira piadosa" diseñada para hacerle sentir que el empleador potencial es la mejor opción que tiene.
¿Mi consejo? Lo más probable es que nunca vea el código de producción hasta que esté en la propia empresa. Y si no cumple con tus estándares, sigue buscando un nuevo concierto.
La dura realidad es que muchas empresas tienen sistemas deficientes, software deficiente y prácticas deficientes. Y eso se debe al hecho de que este tipo de trabajo informático es "invisible" para la mayoría y la mayoría de las personas pueden salirse con la suya.
Sencillamente: ofrezca firmar un acuerdo de confidencialidad (NDA) . Esto impedirá legalmente (aunque no técnicamente) que uses su código en tus propios proyectos.
Además, asegúrese de que su solicitud suene lógica. Haga una solicitud solo para los fragmentos de código que necesita . Esto ayudará a guiar sus discusiones sobre el proyecto y hará que su solicitud suene sensata.
Preguntar acerca de:
Yo digo... "no pierdas el tiempo con las empresas que de alguna manera esperan que 'escribas código' extemporáneamente. Si realmente no creen que realmente puedes escribir código fuente en {insertar lenguaje de programación aquí}, ¿por qué- ¿Diablos te invitaron a una entrevista?
Ahora, habiendo dicho eso, también debo reconocer que "hay pretendientes por ahí". ¡Y también hay razones por las que las empresas han aprendido a realizar comprobaciones superficiales de antecedentes penales de cada candidato...! (Podría contarles historias ahora, pero no lo haré).
Entonces, depende de ti, supongo. "¿Cuánto quieres este trabajo?"
No puedes según las otras respuestas.
Sin embargo, es más probable que consiga que acepten decirle los ID de usuario de algunos de sus programadores que tienen cuentas en StackOverflow y Programmer.
Observar los problemas que tiene su personal le dará una idea de cómo es su código.
jmort253
jmort253
jmort253
carreraerasaurus.com