¿Cuál es la etiqueta para enviar preguntas por correo electrónico repetidamente a un autor cuyo trabajo estoy desarrollando?

Estoy haciendo mi tesis de maestría en redes inalámbricas. Estoy trabajando en el código fuente, que me proporcionó el escritor de uno de los artículos. Inicialmente, le envié un correo electrónico y le pedí que me enviara su código fuente de C++. Así lo hizo. Pero el problema es que no había documentación para su código y él es el único que sabe algo sobre este código base. Como resultado, dependo totalmente de él. Anoche le envié un correo electrónico y le hice una pregunta sobre su código y me respondió muy rápido, solo tres horas después. Probablemente, necesitaré su ayuda nuevamente.

Antes de mi correo electrónico de anoche y después de pasar un mes trabajando en su código, vi un progreso menor en mi trabajo. Pero después del correo de ayer y su guía, mi trabajo se aceleró significativamente. Probablemente necesitaré su ayuda nuevamente, tal vez otros dos o tres correos electrónicos en una semana. Pero tengo miedo de que se enoje conmigo por enviarle muchos correos electrónicos.

¿Entonces qué debo hacer? Suponga que usted es el programador del código fuente. ¿Crees que se enojará por mis correos electrónicos? ¿O estará dispuesto a ayudar (ya que citaré su artículo)?

Si está escribiendo un artículo, podría ofrecerle la coautoría, lo que podría servir para i) compensar su gasto de tiempo y ii) motivarlo a que le responda.
buen enfoque, gracias, pero estoy lejos de escribir papel y comencé la tesis por poco tiempo para estar listo para escribir papel. Pero estableceré un plan basado en tu idea para el futuro.
@Miguel Debe verificar cuidadosamente las convenciones de autoría en su campo antes de ofrecer coautoría a alguien. Contribuir con conocimientos previos normalmente no se considera suficiente para la coautoría. Por ejemplo, suponga que usted escribe el artículo Y que amplía mi artículo X. En mi área, si todo lo que hice fue explicarle X y responder sus preguntas al respecto, no esperaría ser coautor de Y porque no lo hice. No hago nada del trabajo en ese documento (un reconocimiento sería razonable). La versión extrema es que no le das coautoría a tu profesor de primaria que te enseñó aritmética.
@DavidRicherby No me refiero a "ofrecer autoría" como simplemente poner su nombre en el artículo, sino como involucrarlo, preparar el manuscrito, etc.
Poniéndome en el lugar del programador: en un mal día (la hija mojó la cama, el perro le mordió la pierna, la esposa accidentalmente dejó caer el café en su regazo, solo para comenzar), incluso el segundo correo electrónico será demasiado. En un buen día (acabo de terminar un proyecto y obtuve un aumento, mi hija se graduó del jardín de infantes con las mejores calificaciones) tal vez incluso 10 esté bien. Mi punto es: no hay absolutamente ninguna manera de que lo que cualquiera de nosotros diga sobre su segunda o tercera pregunta pueda ser de alguna utilidad para usted. En cuanto a tu primera: la más rentable (aunque no necesariamente la más bonita) sería enviarle e-mails hasta que se canse de contestar...
@Miguel En ese caso, no te refieres a "ofrecerle coautoría". Quiere decir "ofrecer colaborar con él en un artículo".
@DavidRicherby Solo si por autoría entiende "tener el nombre de uno en un artículo" en lugar de "haber contribuido en un artículo". Entiendo ser autor y ser acreditado como autor como cosas diferentes.
@Miguel Nunca escuché la frase "autoría" utilizada en el contexto de artículos académicos para significar algo más que "tener el nombre de uno en la lista de autores".

Respuestas (4)

Aunque probablemente tus intenciones sean buenas, parece que te aprovechas del creador del código fuente. No es tu depurador personal ni debe ser el que escriba el código de tu tesis (especialmente si es gratis). Ha escrito un artículo y te ha dado su código fuente. Esa es toda la información que necesitas saber. Lea su artículo (o sus diapositivas si están disponibles públicamente) cien veces, hasta que conozca cada pequeño detalle y luego mire su código (otras cien veces) hasta que correlacione todo entre el artículo y el código. Por supuesto, esto será más lento que enviarle un par de correos electrónicos, pero es SU tesis, no la suya. Solo cuando haces todo esto y todavía hay preguntas sin respuesta, luego recopile todas las posibles preguntas que pueda tener (incluidas las consultas sobre su código y su papel) y luego envíele UN correo electrónico, con todas sus preguntas. Cualquier cosa más que eso es explotar su amabilidad. Este tipo de correos electrónicos de ida y vuelta con preguntas es una de las muchas razones por las que muchas personas no están dispuestas a compartir su base de código.

Dado que probablemente sea un buen tipo, debes considerar que en el futuro podrías colaborar con él o necesitar su ayuda. Ser agresivo o perezoso (y delegarle su trabajo porque no quiere pasar de 1 a 3 semanas refactorizando o estudiando su código con más cuidado) es una forma segura de quemar puentes con él. Y realmente no quieres hacer eso.

Por otro lado, si después de darte acceso a su código fuente entiende (a través de tu correo electrónico) que hiciste todo lo humanamente posible para entender su código y papel y solo desea ayuda adicional, estará dispuesto a ayudarte porque: a) pareces apreciar su trabajo b) pareces entender sus limitaciones de tiempo c) también eres un tipo inteligente y trabajador con el que vale la pena colaborar. Y este es el mensaje que debes transmitir.

No estoy seguro de que pueda concluir en esta etapa inicial que el autor de la pregunta se está aprovechando del autor del código. Unos cuantos correos electrónicos a la semana para siempre serían sin duda demasiados, pero unos pocos correos electrónicos a la semana durante un corto tiempo podrían no ser excesivos. Además, dice que delegar trabajo al autor del código sería inaceptable, pero el autor de la pregunta nunca propuso hacerlo. Estoy de acuerdo con tu último párrafo, pero reemplazaría "que [ya] hiciste todo lo humanamente posible para entender" por "que hiciste un intento serio y sincero de entender". "Todo lo humanamente posible" es un listón increíblemente alto.
1er correo electrónico: Dar código. 2.º correo electrónico: explicar el código. ¿Por qué necesita un tercer correo, cuando podría reunir todas sus preguntas en un solo correo electrónico?
Primero, no veo por qué piensa que un correo electrónico que contiene diez preguntas es mejor que diez correos electrónicos que contienen una pregunta cada uno. Prefiero que alguien solicite varios bloques pequeños de mi tiempo que un bloque grande, ya que los bloques pequeños son más fáciles de encajar en mi horario. En segundo lugar, si la parte B del código depende de la parte A, probablemente ni siquiera puedas formular preguntas sensatas sobre B hasta que entiendas A. Y si no puedes entender A sin hacer preguntas, entonces necesitas dos correos electrónicos con preguntas.
@DavidRicherby Si le dan un papel y el código src y después de estudiarlo durante un mes, todavía tiene 10 preguntas, entonces es mejor que se dé por vencido. Dos correos con preguntas también está bien (después de un tiempo razonable entre los dos correos electrónicos, como 15-30 días), pero el OP sugiere 2 o 3 correos a la semana, lo que no es hacer preguntas, se llama depuración.
@Alexandros gracias por tu respuesta. Pero mi problema es que es la pila de protocolos. Tengo que saber dónde encontrar qué. Cuántas veces debería leer su código. Su pila de protocolo consta de 16 archivos c. y uno de ellos tiene más de 10000 líneas.
@Alex. Yo sé lo que quieres decir. Pero 16 archivos y 10.000 líneas no son tan grandes si se organizan por funciones. Simplemente usa un IDE y verifica qué función llama a qué. No necesita los detalles de cada función, solo necesita comprender las variables y lo que hace cada función a un alto nivel.
@Alexandros no siempre está claro qué significan las cosas, especialmente cuando el código no está documentado. Algunas funciones pueden ser abstracciones y algunas variables pueden ser solo contabilidad o información real.
@Alexandros Cualquier declaración sobre el software que incluya la frase "usted simplemente" es evidentemente falsa. (La oración anterior, por supuesto, no se trata de software, sino de declaraciones sobre software).

¿Por qué no solo preguntarle a él? Sabe lo ocupado que está, lo interesante que es tu proyecto para él y lo tontas ( si las hay) que son tus preguntas. También puede ofrecerle pagarle escribiendo un manual (parcial) sobre su código, a medida que lo entienda.

Si recibiera este tipo de correos electrónicos, vería que están reconociendo mi esfuerzo y tratando de ser respetuosos con mi tiempo. Y tal vez esto sea bueno para mí, obligándome a repensar aspectos del código y hacer una nota mental de hacer una mejor documentación en el futuro.

Además, en esa situación, agradecería mucho que me mantuvieran informado sobre su proyecto. Incluso si no puedo o no quiero ayudar, me gustaría ver el progreso.

Una respuesta rápida suele ser una buena señal, significa que él encuentra tus preguntas interesantes y no algo que deberías haber podido resolver por ti mismo. En cualquier caso, si quiere asegurarse, puede preguntarle a alguien que esté más o menos familiarizado con ese código (probablemente su asesor) y ver si las preguntas son realmente algo que debería haber podido resolver por sí mismo; y si no lo eres, que te enseñen las técnicas que te faltan para hacerlo.

Dicho todo esto, me han dado un código desordenado para trabajar tres veces, y las tres terminé tomando el papel y reimplementándolo yo mismo en un par de días (y en dos de ellos, el resultado fue mucho mejor). Tal vez tu caso sea demasiado grande, pero deberías considerarlo.

"obligándome a repensar aspectos del código" o, según sea el caso, respondiendo que ya no me importa este código, que nunca tuve la intención de publicarlo, siempre y cuando hacerlo solo porque hacerlo no me cuesta nada, y no deseo tengo que volver a visitarlo para responder preguntas difíciles al respecto. El punto es que, al preguntar, averigüe de una forma u otra y no ocupe ningún tiempo que el autor no quiera ocupar :-)

Como alguien que a menudo es el receptor de este tipo de preguntas, mi consejo es:

  1. En primer lugar, comprenda la teoría detrás del código antes de hacer preguntas. Muchas de las preguntas que recibo sobre mi código revelan que la persona con la pregunta simplemente no tiene conocimientos básicos de optimización (p. ej., "¿qué es una factorización de Cholesky?") sin los cuales no podría entender el código.

  2. Asegúrese de tener la última versión del código del autor. No utilice una versión anterior.

  3. Comprenda cómo se otorga la licencia del software (si es que lo hace). Tendrá que trabajar dentro de los términos de esa licencia (por ejemplo, el autor podría haber puesto el código bajo la GPL, y su trabajo derivado también tendrá que ser GPL).

  4. No se queje de la calidad del código o de las funciones que le faltan. Si no hace lo que necesita, pregúntele al autor si esto es posible dentro del código actual, o por una extensión simple o si el algoritmo fundamentalmente no maneja ese caso o lo que sea. No asumas que lo que quieres será fácil o incluso posible. Según la respuesta del autor, es posible que obtenga una solución lista para usar, o que obtenga información sobre cómo modificar el código, o que le digan que no es práctico.

  5. Si recibe errores, proporcione los datos de entrada y salida para que pueda recrear el problema. Haga un ejemplo que reproduzca el problema de la manera más simple posible en lugar de darme todo su código. Intentaré recrear el problema en mi máquina.

muchas muchas gracias. En el caso cuatro, si le envío un correo electrónico y luego le digo que quiero expandir su código para que su código sea compatible con la función "X", ¿cómo debo decirle esto? para que esté más dispuesto a ayudarme, por cierto, leí su artículo más de cinco veces y entiendo toda la parte de la teoría. y también mi tesis es sobre el efecto de la función "X".
Bueno, para el software de código abierto, no hay forma de que el autor pueda impedir que modifiques su código y lo redistribuyas con las modificaciones. Sin embargo, probablemente sea mejor para todos los involucrados si usted y el autor del código pueden trabajar juntos para incorporar sus modificaciones al código. Comenzaría explicando al autor original del código en qué planea trabajar y luego escucharía lo que dice el autor, que podría ser "Esto ya se probó y falló" o "Hmmm. Eso es interesante". idea, déjame saber cómo funciona" o podrías recibir una oferta para colaborar.

Hasta cierto punto, probablemente estoy repitiendo lo que otros ya han dicho aquí. Pero en cualquier caso, aquí voy con mis 2 centavos.

Primero, la situación que describes es bastante inusual. En la mayoría de los casos en los que se utiliza código en una publicación, el código no se publica y, si no se publica, a menudo no se puede obtener de los autores. Si lo proporcionan, no es muy probable que respondan preguntas al respecto. Por ejemplo, a menudo el código lo escribe una persona joven como un estudiante de posgrado, y una vez que esa persona se ha ido, los autores principales, que también son el autor de correspondencia, no saben nada específico sobre el código, porque en realidad no lo han hecho. escrito nada de eso. También es posible que ya no tengan una copia, si es que alguna vez la tuvieron.

Entonces, ya estás en una buena situación, que alguien te está respondiendo.

Otra cosa a tener en cuenta es que a los académicos les gusta que la gente se interese por tu trabajo. Dado que su corresponsal escribió el código, probablemente sea el autor principal del trabajo; las personas que escriben el código generalmente lo son. Por lo tanto, es posible que no le importe responder preguntas sobre su trabajo siempre que no sean estúpidas. Evite preguntas básicas/generales relacionadas con el lenguaje que no sean específicas del código, por ejemplo.

Como dijo alguien más, si quieres saber cómo se siente, ¿por qué no preguntarle? Entonces, sugeriría tres cosas concretas.

  1. Exprese su agradecimiento por el tiempo que dedica a responderle. No te excedas; una frase o dos es suficiente. Pero es importante hacerlo.
  2. Si está interesado/dispuesto a tenerlo como coautor, pregúntele si está interesado en ser coautor. Si no está interesado, o no lo quiere como coautor, pídale permiso para agregarlo a los agradecimientos. Ciertamente deberías agregarlo, si él está de acuerdo.
  3. Pregúntele si está bien seguir haciéndole preguntas ocasionales. Tal vez describa qué y cuánto espera preguntarle, si tiene una idea, para que sepa qué esperar.
  4. Esto va más allá, en cierto sentido, pero dado que usted dice que su código no está documentado, documéntelo, tal vez consulte con él primero sobre cómo hacerlo, en caso de que tenga preferencias. Luego, envíale la documentación. Esa es una buena manera concreta de mostrar aprecio.