¿Tiene tacto ponerse en contacto con un desarrollador anterior?

Estoy en la posición en la que he heredado un código base muy complejo escrito predominantemente por desarrolladores que desde entonces se separaron de la empresa. No estoy al tanto de las circunstancias en las que se separaron. El código en cuestión tiene varios años, e idealmente a la compañía le gustaría actualizarlo para aprovechar las nuevas soluciones que los antiguos desarrolladores tuvieron que elaborar en casa en ese momento.

La mayor parte del código no tiene comentarios y ciertas partes no están documentadas en absoluto. El desarrollador en cuestión mantiene una presencia bastante considerable en las redes sociales y todavía está involucrado con la ingeniería de software en otras empresas.

Mi pregunta es, ¿es apropiado ponerse en contacto con este desarrollador anterior para obtener información sobre el código y, de ser así, cuál sería una forma discreta de hacerlo?

No se puede negar que conseguir el Missing Manual™ sería de gran ayuda y realmente aceleraría el tiempo de desarrollo.

¿Esto podría aplicarse a cualquier trabajo seguramente? No estoy seguro de que sea lo suficientemente específico para los programadores.
@Ozz Ciertamente, aunque creo que para los programadores las necesidades son un poco más importantes cuando el código no está documentado y lo que heredas está en gran parte en un recuadro negro. Supongo que ese es el contexto que planteo en la pregunta, idealmente todos documentaríamos nuestro código por completo, pero a veces las limitaciones comerciales/de tiempo no lo permiten.
Creo que son tus superiores quienes deben tomar esa decisión. Simplemente porque son conscientes de las circunstancias que llevaron al desarrollador anterior a irse, pero también porque, en términos más generales, creo que sería beneficioso para la gente de gestión entender que la documentación no es gratuita.
@ lollancf37 De acuerdo, esa es una parte importante que tal vez no había considerado.
@DeaconDesperado: sustituya "código" por "motor", "reacción química", "cálculo matemático", etc. Este es un problema común y NO estrictamente relacionado con la programación en mi humilde opinión.
¿Por qué todas las respuestas esperan que brinde soporte de forma gratuita? Si estuviera en la posición del desarrollador anterior, estaría discutiendo un contrato pagado.
Podrías simplemente preguntarle al desarrollador anterior. Su respuesta será una de estas tres: "Claro", "No" o "Tendrás que pagarme por mi tiempo". Si es lo último, escale a la gerencia para que ingrese como "consultor" para pasar unos días familiarizándose con las partes oscuras del código.
@Ozz: no está estrictamente relacionado con la programación, pero los otros ejemplos que proporcionó indican que esto está relacionado con los tipos de ingeniería. No me puedo imaginar contactar a una ex persona de ventas o marketing y pedir ayuda con uno de sus clientes potenciales.

Respuestas (7)

¿Por qué no hablas de esto con tus superiores?

En circunstancias normales, consideraría brindar apoyo de emergencia para proyectos en los que trabajaron con empleadores anteriores como algo estándar, pero dado que no conoce las circunstancias, no asumiría nada: si se separaron en términos amistosos, no tendrá un problema, y ​​si no lo hicieran, tendrás que morder la bala, pero al menos no te crearás ningún problema de esa manera.

Gracias, y esto fue lo primero que se me ocurrió. Desafortunadamente, estamos retrocediendo lo suficiente como para que incluso los superiores en cuestión no estuvieran en la empresa al mismo tiempo.
No importa que su jefe no sea su jefe, la policía debe decidir si se debe contactar a los desarrolladores. ¿Qué pasa si uno de ellos trabaja para un competidor? ¿Qué pasa si uno de ellos está en una batalla legal con la empresa o se va en malos términos? Esta es una decisión de su jefe.

Si me pidieras que te ayudara con el código que había escrito hace más de 6 meses, no estoy seguro de que sería de mucha ayuda. Lo mismo puede ocurrir cuando se le pregunta a otra persona sobre el código que escribió hace años.

Sin embargo, digamos que recuerdo haber escrito el código en cuestión. Si puede hacerme algunas preguntas que no me llevarán más de 15 a 20 minutos responder de inmediato, entonces estaré feliz de ayudarlo, pero cualquier cantidad de esfuerzo más allá de eso, solo respondería si Me pagaron por mi tiempo.

Entonces, suponiendo que la persona a la que le preguntes recuerde el código y esté dispuesta a ayudar, haz todo lo posible para hacer las preguntas de tal manera que sean fáciles de responder en un tiempo muy limitado.

¿Es apropiado ponerse en contacto con este desarrollador anterior para obtener información sobre el código...

Por supuesto. Entiende que estás haciendo una solicitud personal. Comprenda también que el desarrollador anterior puede no recordar por qué las cosas se codificaron de cierta manera.

y si es así, ¿cuál sería una manera discreta de hacerlo?

Invítalo a cenar o algo equivalente que demuestre que aprecias su tiempo. Después del hecho, envíele una tarjeta de regalo con una nota de agradecimiento.

¿ Tiene tacto ponerse en contacto con un desarrollador anterior?

Sí, siempre que cuente con el apoyo de sus superiores.

¿Es prudente ponerse en contacto con un desarrollador anterior?

Depende completamente.

La mayor parte del código no tiene comentarios y ciertas partes no están documentadas en absoluto. El desarrollador en cuestión mantiene una presencia bastante considerable en las redes sociales y todavía está involucrado con la ingeniería de software en otras empresas.

Claramente, tiene motivos suficientes para ponerse en contacto con el desarrollador anterior. Pero todavía es útil preguntarse: "¿Qué esperamos obtener de este reencuentro?"

Esto es lo que quiero decir:

  • Es probable que su reencuentro sea breve (a menos que esté tratando de persuadir al desarrollador anterior para que se reincorpore a su empresa).
  • Teniendo en cuenta su brevedad, ciertamente necesita maximizar el uso del tiempo.

Invítalo a cenar o algo equivalente que demuestre que aprecias su tiempo. Después del hecho, envíele una tarjeta de regalo con una nota de agradecimiento. [De la respuesta de @Gilbert LeBlanc]

En la mayoría de los casos, desaconsejaría esta táctica.

¿Por qué?

Porque esto es un reencuentro profesional ; no es una llamada social. No está tratando de beber y cenar este desarrollador anterior; está tratando de obtener información importante y de misión crítica sobre su aplicación de software (que desafortunadamente no se documentó durante demasiado tiempo).

Dicho esto, debe pagarle a este desarrollador anterior una tarifa por hora por su tiempo . De esa forma, puede ser completamente pragmático y exigir valor por el tiempo de este desarrollador. Esto mantiene las cosas en el mismo nivel y evita cualquier malentendido sobre el propósito de este reencuentro. Para maximizar el uso de su tiempo, haga su debida diligencia antes de la reunión para que pueda hacer preguntas específicas y específicas sobre la parte de la aplicación de software que no comprende.

Con una compensación monetaria adecuada por la consulta sobre el sistema, la persona en cuestión está obligada a complacer su deseo insaciable de desentrañar los secretos casi olvidados de un código de una era más civilizada.

Si es apropiado o no depende de

  • Cómo dejaron la empresa (despedidos/renunciar/todavía juegan al golf con el CEO)
  • El dominio en el que se encuentra, dado que se trata de redes sociales, probablemente no sea una misión crítica para la empresa, pero si lo es, entonces tiene motivos para hacerlo.

Al final del día, depende del propio desarrollador decidir si le responde o no: no tiene ninguna obligación con la empresa en la que ya no trabaja y es posible que solo pueda responder uno o dos correos electrónicos dado que probablemente se han mudado a otra cosa.

Mi consejo es tratar esto realmente como último recurso.

Aparte, he respondido consultas sobre mi código después de que dejé una empresa, pero como era parte de una empresa de consultoría en ese momento, todavía tenía la obligación de ayudar, ya que todavía tenía otros miembros de mi empresa allí, no lo hago. sepa si esto se aplica a usted, pero si es así, es otra ruta que puede probar.

No, casi nunca es apropiado que te comuniques con alguien que ahora trabaja en otro lugar para que te ayude. De hecho, les estaría pidiendo que hagan más trabajo para su empleador anterior (su empleador actual) de forma gratuita, mientras trabajan también en su nuevo trabajo.

Esta documentación que tanto necesita ahora debería haberse hecho mientras aún estaban presentes. La gerencia debería haberse asegurado de que así fuera.

Ahora, puede ser apropiado que sus superiores que han trabajado con esta persona les pidan algún tipo de transferencia de conocimiento, y solo ellos pueden juzgar si es una buena idea o no, o en qué términos sucedería. .

Aquí hay una historia para poner las cosas en perspectiva:

Esta vez yo era un contratista en un proyecto que estaba retrasado, con recursos insuficientes, pero aún muy requerido por el negocio. En algún momento, levanté las manos y dije: "Chicos, esperen. Lo que estamos haciendo es inmantenible. Realmente deberíamos esforzarnos para asegurarnos de que este proyecto pueda sobrevivir si todos somos atropellados por un autobús mientras compartimos el almuerzo". ." Y la respuesta que recibí de la gerencia fue: "No nos importa, solo tíralo por la puerta lo antes posible y asegúrate de que funcione". - Así que eso es lo que hicimos. Una vez que estuvo en producción, todos los contratistas costosos fueron despedidos antes de que terminaran los términos del contrato. En términos generales, este era un caso de tratar con jefes de pelo puntiagudo que claramente estaban tratando de exprimir cada dólar del presupuesto. Ahora, ¿me siento mal por el pobre hombre que mantiene ese desastre? Claro que si. ¿Le voy a dar una hora extra a la empresa en cuestión? De ninguna manera, incluso si lo piden amablemente.

Entonces... ¿cómo sabes que no eres ese pobre hombre que mantiene ese proyecto? Nunca puedes estar seguro de cuáles fueron las circunstancias cuando alguien se fue, así que lo que hay que hacer es no hacer suposiciones.

Pero... si le pregunta al tipo a través de su presencia en las redes sociales, podría averiguarlo.
Podría, y podría funcionar, pero no lo consideraría discreto. ¿Qué sucede si la situación con el exempleado era similar a mi historia anterior? Alguien está siendo molestado en Google+ por una persona que nunca conoció pidiendo ayuda en nombre de una empresa con la que no quiere tener nada que ver. Un poco fuera de moda, ¿verdad? Pero luego pasa un año, hay una nueva pobre alma que mantiene el mismo código, vienen a este sitio, asumen que está bien y vuelven a molestar a la misma persona. Si esta fuera una práctica generalizada y común, sería terrible. Por eso no creo que tenga tacto.