Respuesta a una sugerencia de corrección de errores que solo informa errores (no sugiere soluciones). ¿Es esto típico? [cerrado]

Soy un nuevo empleado en una empresa de software y vi un correo electrónico enviado a un compañero de trabajo por parte del propietario del sistema, pero con todo el equipo de desarrollo en CC, y me preocupé un poco por el medio ambiente. Acabo de salir de la universidad, así que este es mi primer trabajo, así que... ¿es esto normal en las empresas de tecnología?


Enviado a la lista de correo del equipo de desarrollo de Rick y Cc'd:

Hola Rick,

Ejecuté valgrind en el proyecto SpaceShip y creo que encontré una pérdida de memoria en parte del código de la plataforma. Creo que encontré la fuente y el problema se puede solucionar con la siguiente diferencia:

--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp
 vector<part> parts = getSpaceShipParts();  
+shared_ptr<SpaceShip> p = new SpaceShip(parts);  
-SpaceShip * p = new SpaceShip(parts);
 engageInBattle(p, enemy);

Volví a ejecutar valgrind con el cambio, ¡y parece solucionar el problema!

gracias
_

Un correo electrónico bastante razonable, pensé, que fue respondido con:

Hola Morty,

Gracias, pero en el futuro solo proporcione la información sobre cómo reproducir un problema, no una solución sugerida. No leo soluciones sugeridas, porque me predisponen a una idea particular de cuál es el problema real y cuál debería ser la solución. Es mejor entrar fresco y decidir por mí mismo.

En los casos en los que accidentalmente leo una diferencia antes de darme cuenta de qué se trata, paso deliberadamente al menos varios días tratando de olvidar para poder revisarla de nuevo. Entonces, darme una diferencia solo hace que sea más probable que ni siquiera mire el problema por un tiempo.

Gracias,

--Almiar

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
Es muy poco común tener ese tipo de comunicación, pero, desafortunadamente, es común que cada empresa/equipo tenga un miembro que realmente no funciona en un equipo, o que es un sabelotodo, etc. Básicamente, mientras esto no ocurra con la mayoría de sus colegas, trate de evitar a esa persona y estará bien.

Respuestas (11)

No, esto no es habitual. Sin embargo, te has encontrado con una bestia bastante común, el desarrollador elitista con súper títulos. Él es más inteligente que todos los demás en su propia mente y tiene derecho a ser grosero por la misma razón. Tiene un hacha para moler contra Morty. Evítalo cuando sea posible y sigue adelante.

Si bien está en su derecho de querer investigar el problema él mismo, una respuesta civilizada es "Gracias por la sugerencia, lo investigaré". Puede haber mala sangre preexistente entre los dos o él puede ser salvaje, pero en cualquier caso, aunque este comportamiento no es desconocido en tecnología, no es aceptable ni "habitual".

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
La solución más pequeña que me gustaría agregar es que OP es amigo de Morty, no necesariamente Morty.
Eso no es una solución, Rick tiene un problema con Morty en este ejemplo. El amigo de Morty es el OP pero es solo un espectador.

Como desarrollador, encuentro el primer informe muy, muy útil. No hay una explicación larga, no hay un rastro largo de valgrind para leer. Con ese parche, pude ver de inmediato cuál es el problema, y ​​si trabajé en ese código recientemente, probablemente sabría si es la solución correcta o no, incluso sin verificar el código. Así que solo respondería "Gracias por captarlo", o "Gracias, ese puntero no debería compartirse, pero sé cómo debería solucionarse el problema ahora que me lo ha llamado la atención" o algo así.

Tampoco detecto ningún sentimiento de superioridad en el mensaje.

Ahora enviarles CC a todos podría o no ser malo. El código puede ser algo que otros también conocen, por lo que si la lista de destinatarios de CC es lo suficientemente corta, esto es bueno. El correo es lo suficientemente corto, y todo el mundo puede ver inmediatamente desde el parche si debería estar interesado o no, perdiendo solo un poco de tiempo. Sin embargo, si hay personas que no están involucradas con esa base de código fuente en CC, entonces fue inapropiado.

Otro problema es si la persona debería dedicar su tiempo a depurar un problema como este. Sin embargo, a menos que no estén a la altura de sus propios objetivos, asumir la responsabilidad de todo el software como este es generalmente un rasgo muy, muy valioso. Muestra entusiasmo y cariño, cosa realmente rara. Estas cosas pueden ir demasiado lejos, pero es mucho más común ver a compañeros de equipo a los que no les importa un error en el código de otra persona, a menos que los afecte directamente.


Para responder a la pregunta del título. El tono de Morty tal como se presenta en cuestión es, a mi juicio, profesional y normal. El tono de Rick es... desafortunadamente tampoco tan inusual, pero es desafortunado. Sin embargo, todos tenemos días malos, por lo que no analizaré más un solo mensaje anónimo. Podría ser una mala señal (y lo parece, TBH), o podría ser parte de una cultura laboral bastante decente a la que solo debes acostumbrarte.

"Enviar CC a todos podría o no ser malo": en caso de que supieran cómo actúa Rick en estas situaciones, enviar CC a todos parece ser la forma más adecuada de asegurarse de que el problema realmente se solucione.

Sé que la pregunta ya fue respondida y estoy de acuerdo con la respuesta aceptada, pero solo quería ampliar esto con más información.

Lo que has visto aquí es un problema potencial XY . Los problemas XY son, en mi opinión, algo que todo solucionador de problemas (no solo los programadores) debe tener en cuenta y evitar.

El principio de un problema XY es bastante simple:

  • X es un problema y necesita ser arreglado.
  • Y es una solución, pero no la mejor solución. Independientemente, se elige (ya sea por pereza o por no entender que hay una solución mejor)
  • Cuando surge un problema con la implementación de Y, las personas dedican tiempo a intentar que Y funcione, en lugar de buscar realmente que haya una solución Z que se adapte mejor.

Como un claro ejemplo:

  • X = Quiero ordenar estos datos de Excel.
  • Y = Puedo escribir una aplicación para ordenar los datos y guardar el archivo.
  • Z = Debería aprender a usar la funcionalidad de clasificación de Excel.

Esto es esencialmente lo que sucedió en el correo electrónico de Morty. Rick es incapaz de etiquetar la solicitud como Y o Z, porque Morty no explica X. Explicar X es más importante que ofrecer la solución Y/Z, ya que Rick es capaz de encontrar Z cuando conoce X, pero no puede. No adivine X de la nada.

Este es el problema X:

una pérdida de memoria en parte del código de la plataforma

Tenga en cuenta que es bastante vago. ¿Cuál fue el problema? ¿Dónde ocurrió? ¿Cuándo ocurrió? ¿Fue un caso extremo?

Entonces Morty propone una solución Y. Dado que no conocemos los detalles de X, no tenemos forma de evaluar si Y es una solución adecuada para X.

Es por eso que Rick lo rechaza. Se le pide que cambie algo (y que efectivamente asuma la responsabilidad de haber cambiado algo) sin tener otra opción . Morty ha socavado efectivamente la responsabilidad de Rick (escribir un buen código) y la está reemplazando con una solicitud de confianza ciega de que el código ofrecido es apropiado y bueno.


Piénsalo de esta manera: eres un oficial de policía. Un hombre se te acerca y te dice "Necesito que arrestes a ese hombre" (Y).

El oficial de policía no debe obedecer, ya que no puede confirmar personalmente que se justifica arrestar al hombre.

Sin embargo, si el hombre hubiera dicho "ese hombre acaba de matar a alguien a sangre fría", entonces el oficial de policía puede comprender el problema y decidir la solución (arrestar al hombre) por sí mismo.

Esto es básicamente lo que Morty hizo mal. Creo que Rick podría haberlo expresado de manera más amable (si esto fuera Interpersonal.SE, definitivamente reformularía algunas de las oraciones de Rick), pero su solicitud es válida.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
Sin embargo, los comentarios de @JaneS se usan correctamente para señalar problemas en las respuestas.
Si bien creo que mencionar el problema XY es relevante para determinar si la solicitud de Rick fue razonable aquí, no creo que esta sea una respuesta a la pregunta de la forma en que la escribiste. El OP preguntó si el tono de Rick era normal en la industria. Podría considerar reformatear su respuesta para enfocarse en cómo Rick la manejó, aunque la esencia de su respuesta es válida.
@BloodGain You might consider reformatting your answer to focus on how Rick handled it, although the gist of his response is valid.Eso es exactamente lo que aborda la última oración de la respuesta.

Ignorando si existe una tensión subyacente entre los dos, un problema general de comunicación o el tono estándar en su lugar, me concentraré en su pregunta:

¿Este tono es inusual en un lugar de trabajo tecnológico?

No , este tono no es del todo inusual.

  1. Las personas en la industria están acostumbradas a los lenguajes de programación sintácticos y las especificaciones técnicas exactas a veces tienden a olvidar el tono en su comunicación. A menudo, esto no es un problema, siempre y cuando los extraños no estén involucrados en la comunicación. Acostúmbrate a muchos mensajes directos al caso.

  2. Es un cliché, pero sí, también existen esos nerds que simplemente tienen pocas habilidades sociales, así que es mejor que aprendas a lidiar con ellos y no te lo tomes como algo personal.

  3. Para muchos programadores, "su" código es su bebé. Ser señalado con algunos errores innegables es una cosa: jugar con ellos puede desencadenar algunos mecanismos de defensa.

Dicho esto, se puede hacer de una mejor manera. Como regla general, para evitar este tipo de problemas:

  • Elogie en público, critique en privado.
  • Si tienes problemas con alguien, ¡no uses el correo electrónico para eso!
  • Si encuentra un error, infórmelo a través de un mecanismo estándar aceptado por el equipo.
  • No hagas el trabajo de otra persona, a menos que te lo pidan.
Me gustan todas las viñetas. Los dos primeros son unas buenas pautas generales generales en la vida.
En cuanto al bebé, importa si la persona tiene experiencia con código abierto.
Quejarse de la falta de reproductor es válido en mi opinión. Pero pedir que no se dé solución es bastante loco. Ser incapaz de ignorar el pensamiento de otra persona significa que no puedes ignorar tus propios pensamientos engañosos. Y si no puedes, entonces buena suerte con la programación. Tendrías que empezar de una manera y seguir en la misma dirección indefinidamente. ¿O refactorizar el código existente? Debe comprender cuál era la idea original y luego incorporarse al nuevo paradigma que desea aplicar.
La declaración de Rick de que retrasará deliberadamente el proceso, nominalmente para poder librar a su delicada mente de la idea corrupta de Morty, es petulante y completamente inaceptable, y debe abordarse. Si Morty se está extralimitando (su habilidad y/o alcance), una respuesta mejor equilibrada sería "Gracias, Morty, y tu rápida sugerencia podría ser parte de la solución, pero tendré que revisar más el problema para asegurarme". es el mejor enfoque. Mientras tanto, ¿puedes documentar este error en nuestro rastreador de errores? ¡Es muy importante poner todos los errores en él!"
@CCTO (y otros comentaristas) Te das cuenta de que OP no preguntó cómo lidiar con eso, ¿sí?

Hay algo de valor en su sentimiento. Sé de muchas ocasiones en las que mi corazonada sobre una causa raíz llevó a alguien por el camino equivocado y les hizo perder el tiempo.

Con la mayoría de los problemas, cada persona tiene ciertas corazonadas que simplemente se le ocurren. Creo que vale la pena tratar de aprovechar este poder. Cuando necesito ayuda con un error en el que estoy atascado, trato de evitar imponerles mis propias corazonadas, para que quizás las suyas sean novedosas y productivas.

Pero con la forma en que lo expresó... estaba siendo un completo imbécil.

A veces recibo tickets web con correcciones de CSS sugeridas para errores visuales. El problema es que los selectores suelen ser súper genéricos (a menudo se basan solo en nombres de etiquetas o una clase) y romperían varias otras áreas del sitio. Aún así, me gusta la sugerencia porque generalmente me ahorra algo de tiempo para encontrar el problema exacto, luego puedo simplemente ponerle un espacio de nombre en algo listo para la producción...
@dandavis No es su trabajo resolver el problema. Es tu trabajo. Resolver un problema implica saber cuál es el problema y cuáles son los problemas para la solución :P
¿Podría ampliar la parte descortés? Esta respuesta es excelente dado que pesa ambos lados, pero es un poco desigual.
Tengo que discrepar respetuosamente. En la resolución de problemas técnicos, más información siempre es más valiosa que menos. Como el solucionador de problemas asignado, es trabajo de los desarrolladores identificar qué información errónea del cliente versus detalles valiosos. Mantener algunos detalles del solucionador de problemas porque podría "colocarlos en el camino equivocado" es una idea ridícula para mí y reprendería a cualquiera de mi gente que respondiera a un cliente de esta manera.
Técnico pero no desarrollador de software aquí, y estoy de acuerdo con @DanK. El único ajuste muy pequeño que le haría al informe inicial es dar los detalles primero (quizás con algunos puntos de referencia más) y la diferencia al final. Eso le daría a Rick la oportunidad de leer el informe sin la diferencia, pero (en mi opinión, como alguien acostumbrado a artículos científicos que incluyen listas de códigos), mantener la diferencia fuera del cuerpo hace que la lectura sea más clara.
¿Puede explicar qué es exactamente lo que no es educado aquí? me parece completamente libre de ofensas, me gustaría entenderlo
@SargeBorsch: la demanda de no incluir información ordinaria y trivial es completamente inaceptable en un proyecto colaborativo. Y la intención declarada de castigar a Morty retrasando intencionalmente el proyecto solo duplica eso. Está escrito para verse bien, pero el significado es descarado e impropio. Que el informe de problemas incluya dos líneas de diferencias no es un problema: podría ayudar o no, pero no es un problema. Ahora, si se supone que Morty no está ejecutando valgrind, y habitualmente informa cosas confusas, eso podría ser algo con lo que la organización deba lidiar, pero este no es el camino.
@SargeBorsch demasiadas personas confunden ser directo y conciso con ser descortés. Para que conste, el único problema que tengo con el correo electrónico es que el autor consideró necesario copiar todo.
@DanK Depende completamente del tipo de problema. No estoy abogando por este enfoque universalmente, sino simplemente como una de las herramientas disponibles en la caja. Muchas veces, cuando pido ayuda a un colega en una investigación, sé que probablemente estoy persiguiendo una pista falsa y perdiendo el tiempo. Quiero el beneficio de una nueva perspectiva.
Estoy de acuerdo con DanK en esto, es importante incluir tanta información como sea posible. Incluso si están equivocados acerca de cuál es la causa raíz, podría ser útil saber por qué creen que es la causa raíz, lo que puede conducir a más información.
@LordFarquaad Este no es un juego de equipo polarizado. No estoy sugiriendo un juego gratuito sin compartir información. Los humanos son personas fáciles de persuadir. No es un proceso consciente, por lo que no se trata de ser "un buen informático".

Claramente, no todos están de acuerdo con esto, pero en mi opinión, esta es una respuesta normal, no lo tome como algo personal .

Es un correo electrónico fácil de entender, motiva sus razones por las que prefiere no escuchar su solución (no porque sea su solución, sino porque quiere una pizarra en blanco para empezar).

No es personal hacia ti, ni insultante, ni denigrante en absoluto, es una explicación. Es un poco directo para algunas personas, pero eso es a menudo un capricho de los programadores, siendo directo y (demasiado) objetivo. Puede leer todo este correo electrónico en un tono de voz normal, donde explica su método preferido. El hecho de que no seas un fanático de él no significa que sea una mala práctica, te encontrarás con muchas personas que trabajarán de manera diferente a ti.

Estoy de acuerdo en que podría expresarse un poco más cortésmente, pero nuevamente, un programador a menudo solo dice lo que quiere decir sin todas estas interpretaciones cargadas (lo cual no es una excusa, pero podría ser una explicación).

Es su trabajo arreglar los problemas, no el tuyo. Acabas de pasar tiempo en algo que podría haberse usado de otra manera. No me malinterpreten, ¡practicar la corrección de errores es importante! Pero estudie la solución aplicada y compárela con la suya. Su solución puede parecer buena, pero la experiencia puede enseñarle lo contrario.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
@Martijin La pregunta en realidad establece que Morty es el "propietario del sistema", es decir, alguien responsable de ver que esto se solucione. Investigar el problema no está realmente fuera de su trabajo general. El correo electrónico de Rick es en parte una explicación, pero es una explicación de una demanda de protección contra el tipo de información que se intercambia ordinaria y útilmente en tales situaciones, y como tal demanda que es fundamentalmente incompatible con un proyecto de grupo, no importa cuán bien sea. está fraseado. Rick es libre de considerar causas y soluciones alternativas, pero no de cerrar la comunicación que normalmente se intercambia.

Ambos lados tienen la culpa aquí.

Morty no debería haber enviado copia a todos en el correo electrónico inicial. Al hacerlo, avergonzó a Rick al señalar su error a todos. No sé si Morty estaba tratando de sumar puntos al hacer esto o si simplemente fue un tonto. Sin embargo, el resultado fue el mismo desde el punto de vista de Ricks. Hubiera sido mejor que Morty enviara este correo electrónico solo a Rick para que pudieran solucionar el problema sin que nadie tuviera que quedar mal.

Rick, avergonzado de que se le señalara su error públicamente, reaccionó mal. No debería haber menospreciado a Morty. No debería haber criticado públicamente a Morty por intentar ayudar.

Un ejemplo de un intercambio de correo electrónico no nos dice nada sobre la cultura de una empresa. Sin embargo, si enviar correos electrónicos públicos señalando los errores de otras personas y enviar correos electrónicos diciéndoles a las personas que no deberían ofrecer ayuda son comunes, entonces tienes una cultura tóxica.

Desafortunadamente, este tipo de cultura tóxica es común en las empresas de software de los Estados Unidos. Mucho se ha escrito [1] [2] [3] y se ha dicho sobre la forma en que un tipo particular de ingenieros de software trata a los demás, especialmente a los que no son ingenieros de software y a las personas que no encajan en su estereotipo de ingeniero de software.

Esta cultura no es la forma correcta de tratar a las personas. Las buenas empresas, los jefes y los compañeros de trabajo no toleran este tipo de cultura. Los buenos empleados no se señalan públicamente los errores de los demás y los buenos empleados no descartan la ayuda de los demás.

Debe darse cuenta de que este comportamiento es aceptable en la cultura de su departamento y empresa. Si crees que estás en una empresa en la que esto es aceptado, debes decidir si crees que puedes cambiar la cultura y si vale la pena el esfuerzo. Una cosa importante a determinar es si esta cultura proviene del liderazgo o no. Si el liderazgo da un mal ejemplo, no habrá nada que puedas hacer. Si esta es la cultura de base, tienes alguna posibilidad de convencer a la gente para que cambie. Será un trabajo largo y duro, así que será mejor que decidas que vale la pena arreglar la empresa.

Quizás. Sin más contexto, no podemos saber realmente si el correo electrónico original "señala el error de alguien" o "comparte el progreso con los demás involucrados en un esfuerzo grupal"; por lo que sabemos, este es un desarrollo clave en un área donde ha habido un sensación compartida pero no específica de que algo andaba mal. Tenga en cuenta que no dice "en su código"; eso podría ser una suposición implícita, pero el texto del correo electrónico no es más acusatorio que un ticket de error típico, y está mejor investigado que la mayoría. O podría ser un fragmento de texto de aspecto muy normal altamente armado en su contexto real.
Es bastante común enviar CC al equipo cuando se enfrenta a un error importante.
"Él avergonzó a Rick al señalar su error a todos" El software contiene errores. Todos los involucrados en su creación lo saben y lo aceptan. Puedo garantizar que nadie estaba operando bajo la ilusión de que Rick era un dios de la programación infalible. ¿Deberían también eliminar su rastreador de errores porque subversivamente es un registro permanente de las fallas personales de Rick? No me pagan para complacer egos frágiles. Me pagan por hacer un buen software.
@Michael "No me pagan para complacer egos frágiles". Ese es el tipo de cosas que mucha gente dice para justificar ser un asno.
@BenMz Lo suficientemente cierto: estoy seguro de que Rick podría intentar hacer esa afirmación después de leer algunas respuestas aquí, pero creo que esa persona estaría identificando erróneamente ser educado con complacencia. No es lo mismo. Siempre soy cortés en el trabajo, pero no debería tener que andar con pies de plomo con una persona porque no pueden manejar que el equipo de desarrollo reciba una CC en el correo electrónico sobre un error fácil de cometer.
Esta respuesta asume las respuestas emocionales de las personas en cuestión cuando nada de eso estaba implícita o explícitamente.
@Allan No se puede juzgar el tono de las comunicaciones en el lugar de trabajo sin considerar la respuesta emocional que probablemente provocarán.
¿ Sabes que Rick estaba avergonzado? La vergüenza es una emoción de autoevaluación (también conocida como personal). No se realizaron ataques personales. Puede decir que el tono del correo electrónico es "duro" o "contundente" o lo que sea, pero no puede asumir la respuesta emocional porque todos responderán de manera diferente.
@Allan, supongo que Rick está avergonzado. Hacer suposiciones de nuestro mejor juicio sobre cómo reaccionarán las personas es cómo el juez se comunica con ellos.
Una pregunta de seguimiento sería "¿Qué, en ese intercambio de correo electrónico, te hace suponer que Rick estaba avergonzado?" Para ampliar lo que dije antes, no hay una pizca de ataque personal que justifique "vergüenza". Además, la respuesta de Rick no es arremeter contra Morty; le está diciendo lo que necesita .

Lo normal es bastante subjetivo, especialmente porque no tienes ni idea de la historia de ese lugar de trabajo.

O Rick tiene terribles habilidades interpersonales o hay algo de mala sangre entre esas dos personas.

Es posible que Morty haya creado a propósito un correo electrónico "razonable" con la esperanza de provocar a Rick.

Como eres nuevo, deberás evaluar si este comportamiento tóxico también se ha extendido a otros o si se trata de una situación contenida.

Pase lo que pase, simplemente no dejes que se extienda a tu personalidad.

Estoy escribiendo esto con la perspectiva de un gerente con experiencia que cubre múltiples aspectos de este tipo de escenario.

¿Es esto normal en las empresas de tecnología?

Esto es completamente normal para cualquier empresa en prácticamente todas las industrias, no solo en tecnología.

En términos generales, el correo electrónico que se envió a todos los miembros de un equipo de desarrollo que:

  • señaló una falla sospechosa (" Creo que encontré una pérdida de memoria...")
  • declaró que se había encontrado una supuesta solución (" Creo que encontré la fuente y el problema...")
  • presentó una larga lista de correcciones que se implementarán

Para generalizar esto, lo que está sucediendo aquí es que Morty le está dando una directiva a Rick que establece una justificación de la directiva primero y luego detalla los detalles de dicha directiva.

Complica aún más el asunto en el sentido de que la directiva se dio en un entorno grupal (cc'd a todos los miembros del equipo).

La relación organizacional de Rick y Morty

No sabemos la relación con respecto a los dos individuos. Sin embargo, generalmente se puede resumir como una de tres posibilidades:

  • Rick es mayor que Morty.
  • Morty es mayor que Rick.
  • Rick y Morty son iguales

¿Se supone que Rick debe tomar la directiva de Morty?

  • ¿No? Entonces Rick está justificado en retroceder.
  • ¿Sí? Entonces no hay necesidad de hacer CC a todos. Rick todavía está justificado para decirle a Morty cómo realiza mejor su trabajo.

Esta situación no sería diferente si lo fuera....

  • Médico. El Dr. Oz le dice al Dr. No que ha diagnosticado al paciente del Dr. No y que haga X, Y y Z sin proporcionarle los síntomas al Dr. No.
  • Automotor. El ingeniero 1 le dice al ingeniero 2 que se encontró un problema en el diseño de la suspensión del ingeniero 2 y que la solución es soldar la lengüeta A a la ranura B sin proporcionar los datos de prueba para mostrar el problema.
  • Soporte técnico: Tech 1 le dice a Tech 2 que hay un problema con el sistema de Tech 2 y que la solución es implementar los parches A, B y C sin proporcionar los mensajes de error que indicaron el problema.

TL;RD

En pocas palabras, la persona responsable de hacer la reparación real le dice a la persona lo que necesita para hacer el trabajo correctamente. La única persona que está potencialmente "fuera de lugar" es Morty por el comportamiento pasivo agresivo de hacer cc'ing a todos.

Esto sucede todos los días en todas las industrias. No es nada nuevo o inusual.

La comunicación es extremadamente importante... En mi equipo, el 90 % de la comunicación pasa por Slack/jira/github para que todos puedan verla. Para una solución que afecta el producto de un equipo, creo que siempre debe enviar un cc a todo el equipo (o, probablemente, solo enviarlo a todo el equipo). En cuanto al problema real en el correo electrónico: se encontró un problema, se encontró una solución. ¿Ahora cree que el líder hace un buen uso de su tiempo descartando el problema y la solución y tratando de verificar que existe un problema y luego encontrar una solución que puede o no ser mejor? al hacerlo le dices al chico que su trabajo no importa...
@xyious: supondré que no votó porque por las razones de su argumento. Interesante. La pregunta no es quién tiene razón, la pregunta es el tono fuera de lo común . Dicho esto, cualquier preferencia que tenga la persona responsable de hacer el cambio, es su preferencia. Período.
@Allan: una diferencia de dos líneas no es "una larga lista de correcciones que se implementarán": de donde sea que lo obtenga, no es parte de la situación de la pregunta. En términos de los roles de Morty y Rick, se ha declarado explícitamente que Morty es el "propietario del sistema" y, por el contexto, está claro que Rick es el gurú del área actual para el código en cuestión.
Entonces, @ChrisStratton, ¿tomaste la "diferencia" literalmente? SMDH. Déjame preguntarte esto.... ¿crees que un médico tratante le dice al especialista qué hacer o le dice los síntomas y espera una confirmación?
Tomé la escala de la diferencia literalmente y estoy bastante seguro de que es precisa. El punto central de la pregunta es que Rick se enfadó por una acción extremadamente normal, ordinaria y adecuada. En cambio, parece querer responder a una situación muy diferente a la que realmente se le preguntó, expresada también en su especulación sobre las relaciones que no encajan con la posición explícitamente declarada de Morty.
Tomé la escala de la diferencia literalmente... Una publicación que usa "Rick y Morty" como una ofuscación de los nombres de las personas en un correo electrónico que posiblemente tiene menos líneas que la cantidad de personas en la lista de cc y te lo tomas " en serio". ." No eres la gerencia y se nota.
Ha quedado bastante claro que gran parte del problema en su publicación proviene del hecho de que insiste en responder a una situación diferente a la que realmente se describe . Como señalaría cualquier desarrollador experimentado , la diferencia que se muestra es aproximadamente cuál sería el tamaño de una solución para este tipo de problema .
--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp  
 vector<part> parts = getSpaceShipParts();  
+shared_ptr<SpaceShip> p = new SpaceShip(parts);  
-SpaceShip * p = new SpaceShip(parts);  
 engageInBattle(p, enemy); 

Desafortunadamente, este cambio soluciona el error (pretender que la prueba valgrind es adecuada), pero introdujo algo no deseado, una pelea de filosofía del código. Si no es un colaborador habitual, no se meta en peleas de filosofía del código.

Para evitar la pelea de filosofía, esto debería haber sido enviado en su lugar. Sí, es objetivamente peor, pero está en consonancia con el estilo del código que ya existe:

--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp  
 SpaceShip * p = new SpaceShip(parts);  
 engageInBattle(p, enemy); 
+delete p;

Pero con esta respuesta del desarrollador, supongo que tampoco le habría gustado. Escucho demasiado este tono, incluso de personas que deberían saberlo mejor. No es normal, pero es suficiente que lo escuches mucho. Estoy decepcionado.

Esto puede estar leyendo la diferencia demasiado literalmente. No es una solicitud de extracción , es un poco de código como voz en un correo electrónico. En efecto, está diciendo "quizás podamos solucionarlo de esta manera, o quizás tenga una mejor idea, pero este problema es importante para mi proyecto que contiene su código, y el problema parece ser de esta forma" Incluso cuando no se fusiona, difiere como esta es una comunicación bastante normal entre programadores.

1) Comunicación: OP hace que parezca que es una práctica estándar enviar CC al resto del equipo de desarrollo. Nunca veo una razón para no incluir al resto del equipo de desarrollo en un problema/solución que afecta a todos.

2) Problema/Solución: No veo nada malo aquí. Debería hacerse con una solicitud de extracción, pero suponiendo que eso no sea posible aquí, está bien.

3) Respuesta: Hay tantas cosas mal que no sé ni por dónde empezar.
a) 'No leo las correcciones sugeridas': Esto es absolutamente terrible. Lea siempre el código propuesto. Hay una posibilidad decente de que sea mejor que cualquier cosa que se te ocurra...
b) 'Tengo que esperar unos días antes de poder encontrar una solución': Permítanme traducir eso: "Tengo que esperar unos días antes de que pueda ignorar por completo el trabajo que hiciste y descartar tu solución. No solo perderé tiempo para implementar una solución, sino que también perderé más tiempo para encontrar una solución para un problema que ya se resolvió (por el código que escribió que descartaré)"
c) 'vea cuál es el verdadero problema y vea cuál debería ser la solución': pruébelo. Pruébalo para ver si hay algún problema. Luego pruébelo para ver si el problema se resolvió. No gana nada al idear su propia solución que debe probarse en lugar de probar la solución propuesta para ver si soluciona todo. Si no soluciona el problema , puede intentar encontrar una solución para la solución propuesta o una solución para el problema por completo.

En mi empresa, habría enviado la respuesta a mi gerente de inmediato y sin comentarios. Es simplemente inaceptable.

Hablando desde la perspectiva de un gerente , les informaría que todos y cada uno de los desarrolladores son individuos y cada individuo tiene su forma preferida de trabajar. Cada uno de nosotros debe tratar de adaptarse a las idiosincrasias de los demás. En este caso, le aconsejaría (hablando como su gerente si hubiera sido Morty) que respete el flujo de trabajo preferido de Rick enviándole primero lo que pidió y luego siga con lo que creía (como en el correo electrónico) era el problema seguido de lo que pensó (nuevamente, en el correo electrónico) como la solución.
Y para que conste... cuanto más avanzaba en mi carrera y ganaba experiencia, menos confiaba en el "diagnóstico y la solución" sin una clara articulación del problema primero. La excepción a esta regla era si el problema o la solución provenían de una fuente confiable. Puedo decirles que yo también ignoré las posibles soluciones si no se ajustaban a mis requisitos, pero no fue por arrogancia sino por una cantidad limitada de recursos (es decir, tiempo) para gastar en descifrar el trabajo de otros.
Entonces, ¿le informaría a su equipo de desarrollo que es aceptable (como una idiosincrasia) perder el tiempo de un desarrollador (proporcionando una solución que se descartará) y perder el tiempo de un líder (descartando una solución y creando la suya propia)?
Informaría al equipo de desarrollo que perder el tiempo al no respetar los deseos/solicitudes de los responsables de sus respectivas funciones es inaceptable. El hecho de que asumas que la solución es la correcta no significa que lo sea. También se reduce al hecho de que el responsable no puede validar el problema contra el diagnóstico y, en última instancia, la solución. No está defendiendo que alguien debería simplemente aceptar un diagnóstico y una solución propuesta sin más, ¿verdad? ¿Cuánto tiempo se perdería entonces? ¿Cuánto tiempo se ahorraría si primero se validaran los síntomas ?
Pruébalo ! ¡Prueba que el problema existe! ¡Prueba que la solución soluciona el problema! Luego prueba que la solución no rompa nada más. Tendrías que hacer los dos últimos de todos modos. ¿Por qué desperdiciaría una solución que no ha probado y encontraría otra que podría no funcionar?
Por cierto, todo eso está en mi respuesta anterior. Necesita tener pruebas unitarias en su lugar de todos modos. Necesitas estar constantemente probando de todos modos. ¿Por qué eligió no probar una solución que alguien le dio? ¿Cómo es esto aceptable en cualquier situación?
¿Cómo se valida exactamente una prueba (y mucho menos una solución) contra síntomas que nunca se articularon en primer lugar? No asuma que el diagnóstico fue correcto para empezar. La parte interesante de esto es que su respuesta nunca aborda la pregunta real: el tono es inusual . Sin embargo, pasas una cantidad excesiva de tiempo defendiendo tu posición. Estás literalmente haciendo mi punto para mí.
Entiendo que ese es el titular, pero esa no es la pregunta. El tono en el correo electrónico era inexistente. No hay 'tono'. Son las palabras las que son inusuales. Tampoco estás discutiendo nada sobre el tono en tus primeros 3 comentarios a mi respuesta. Has empezado a discutir el proceso....
Mis comentarios abordan su respuesta . Su respuesta no aborda la pregunta general. Por ejemplo, como "Morty", estás brindando una solución pero ignorando la pregunta más importante. ¿Cuánto tiempo has pasado respondiendo algo que nunca se preguntó en primer lugar? Algunos consejos amistosos de alguien con más de 25 años haciendo esto... concéntrese en lo que realmente se pregunta, y no en lo que supone que se pregunta.
@Allan: si su equipo no puede evaluar de manera eficiente el cambio propuesto por inspección , debe despedirlos a todos y reemplazarlos con desarrolladores competentes. El problema general puede necesitar una mayor atención: podría ser solo un ejemplo de uno más generalizado, pero el cambio propuesto es una bandera legítima de una falla en el código existente, una señal de la confusión de Morty o no tiene ningún efecto real.
@ChrisStratton - Me sorprende muchísimo que la gente defienda hasta su último aliento que su posición es absolutamente correcta cuando todavía tienen que identificar los síntomas que requieren la corrección propuesta. Cada vez que adopté su enfoque, costó más recursos que los ahorros percibidos de solo implementar el cambio.
@Allan: el punto que ignora tan peligrosamente es que el código existente ni siquiera tiene que desencadenar una falla para estar equivocado. Aquí hay una obligación absoluta de averiguar si Morty está señalando un problema real en el código existente, además de verificar la falla de la prueba que informó, que puede o no estar relacionada de alguna manera con eso . Incluso si la causa real se encuentra en otro lugar, el código específico que Morty propuso cambiar aún podría ser inseguro . ¿Morty tiene razón? ¿O simplemente está confundido? Debe averiguarlo, y los desarrolladores competentes pueden hacerlo rápidamente.
@ChrisStratton - En serio... ¿cuántas suposiciones puedes hacer en dos correos electrónicos ofuscados? Si esto o si aquello , nada de eso importa. Lo que sí sé es que nadie puede hablar de ninguna de las suposiciones que haces (por lo que sabemos, Morty es un idiota), por lo que, en última instancia, son discutibles. Dicho esto, he tenido mucho éxito trabajando con desarrolladores al satisfacer sus necesidades, sin intimidarlos con hipótesis basadas en pseudocódigo.