¿Cómo manejar a un desarrollador que se pone a la defensiva cuando se enfrenta a romper el código?

Empecé a trabajar en una empresa como desarrollador junior, después de terminar un gran bootcamp de programación con un profundo y amplio conocimiento de programación. Desde entonces (año y medio) aprendí mucho, gané credibilidad como un buen desarrollador de software y tuve varios proyectos bajo mi responsabilidad. Gran parte de mi progreso se logró gracias a la ayuda que recibí de mis colegas desarrolladores senior durante este tiempo.

De vez en cuando, los seniors cometen errores y, a veces, estos errores rompen los módulos que están bajo mi responsabilidad. Cuando esto sucede, suelo hablar con ellos y decirles algo como:

"Oye, cambiaste la función X a Y. Este cambio rompe mi código porque no tiene en cuenta Z, y Z es lo que sucede de mi lado. ¿Te parece bien que hagas K para arreglarlo?"

Uno de ellos, cuando se le pregunta por un error, se pone a la defensiva y dice cosas como "¿Entonces no tengo permitido programar?" o "Bueno, solo cambia tu código para que cumpla con el mío" (en lugar de pensar en otras alternativas mejores).

¿Cómo debo comunicarle que vengo con buenas intenciones, pero también hacerle entender (y aceptar) que él es quien debe hacer los cambios necesarios para arreglar el código/módulo roto?

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .

Respuestas (10)

"Oye, hiciste este cambio X a esa función Y. Este cambio rompe mi código porque no tiene en cuenta Z, y Z es lo que sucede de mi lado. ¿Te parece bien que hagas K para arreglarlo?"

Necesitas hacer esto menos personal. No hay mi código y tu código . Ambos son empleados de una empresa, y esa empresa posee el código. Usted simplemente lo escribió, pero pasó la propiedad intelectual a su empleador. Asumir la propiedad es importante, pero no hable de eso de esta manera.

En su lugar, piense en todo el código como nuestro código y expréselo así. O déjalo fuera. Cuando no te enfocas en lo que hicieron, sino en cuál es el estado actual, se sentirá mucho menos como un ataque personal.

Como resultado del cambio de X a Y, esta otra funcionalidad se rompió. Le eché un vistazo y vi que también tenemos que pensar en Z.

A continuación, puede ver lo que dicen. Pueden responder con algo como "muéstrame" o "adelante y arréglalo" o "oh, no pensé en eso" y se ofrecen a arreglarlo ellos mismos.

Sin embargo, idealmente no importa quién solucione el problema. Es importante que haya un diálogo y que todos trabajen juntos para hacer que el producto en general sea estable y funcional. Tener solo una persona responsable de una parte particular del producto es peligroso en sí mismo, y este tipo de situación es una oportunidad tan buena como cualquier otra para asegurarse de que todos conozcan las otras partes del producto.


En una nota más técnica, parece que realmente desea pruebas unitarias u otra forma de prueba automatizada para al menos esa pieza de software en particular. Si hay una infraestructura general que los ejecute y muestre los resultados, será evidente si algo (¡no alguien (!), aunque por supuesto lo hay git blame) rompió las pruebas. Están allí como una red de seguridad y para que todos se den cuenta si algo sale mal.

Un beneficio adicional de tener pruebas unitarias para piezas críticas del sistema es que realmente no necesita ir y señalar que las cosas están rotas. Ya no hay policía de código . Si la cadena de herramientas se encarga de eso, nadie está dando malas noticias y hay menos malas vibraciones en el equipo, ya que hay menos espacio para discutir.

Por otro lado, también viene con la necesidad de actualizar las pruebas. Discutir los pros y los contras de eso está fuera del alcance aquí.

¡En el lugar! Los programadores suelen tomar a las críticas de forma muy personal. Eso está en nuestra naturaleza :) Simplemente hable sobre el problema y no que sea culpa de alguien que algo ya no funcione. (Excepto que fue realmente muy tonto)
Nunca dijo que no tenían pruebas automatizadas. Las pruebas nunca cubrirán todo, por lo que no abordan la resistencia que uno podría recibir de la persona que descifró el código. Una mejor sugerencia sería agregar una prueba que demuestre que el cambio ha roto algo, y usar eso como palanca para que corrijan su error.
@Michael Estoy de acuerdo. Y tienes razón, nunca dijeron que no hay pruebas. Eso es lo que no estoy sugiriendo que hagan. Simplemente digo que las pruebas son un enfoque menos conflictivo, porque eliminan la necesidad de señalar que algo no funciona, si se mantienen correctamente. Sin embargo, agregar una prueba después no es realmente útil en mi opinión. El objetivo de mi respuesta no es hacer que alguien corrija su error, sino ayudar al equipo en su conjunto a trabajar mejor juntos. Sin embargo, es probable que un conjunto de pruebas bien construido detecte ciertas cosas, incluso si es solo porque no se ha actualizado.
"Realmente no importa quién lo arregle". Realmente no estoy de acuerdo con esto, si tiene un horario y no tiene tiempo para corregir el error de otros, tiene derecho a pedirles que lo solucionen.
@Ckankonmange Supongo que depende de la estructura del equipo, el producto, la empresa y lo que quiera la gerencia. Es realmente difícil encontrar una respuesta general. He editado esa parte porque era un poco demasiado idealista. Gracias por mencionarlo.
@simbabque "agregar una prueba después no es realmente útil en mi opinión" Entonces, ¿cuándo agrega la prueba? ¿Escribes todas tus pruebas al comienzo de un proyecto y nunca agregas más?
@Michael no, por supuesto que no. Pero si un cambio rompe algo para lo que no tengo una prueba, corregiría el comportamiento y luego agregaría una prueba de regresión para asegurarme de que nunca vuelva a suceder. No dejaría el software roto y agregaría una prueba para demostrar que está roto para dárselo a otra persona para que lo arregle. A menos, por supuesto, si yo fuera un líder de equipo y le diera la tarea de arreglarlo a un junior que aún no tiene las habilidades para configurar la prueba.
El problema de @simbabque OP es que quiere que el otro tipo lo arregle. Su solución a eso no puede ser "Lo arreglaría yo mismo".
¡Este es un consejo extremadamente divino! Hace solo un par de semanas, encontré un error y, usando el control de versiones, encontré al desarrollador que introdujo cambios que no manipulaban los datos correctamente. Les conté a ellos y a mi equipo al respecto, pero evité deliberadamente decir que era culpa del desarrollador a alguien. Mientras buscábamos el origen del problema, resultó que en realidad era mi culpa: ¡no había configurado mi entorno de desarrollo correctamente! Pero debido a que no había señalado con el dedo, nadie perdió la cara.
+1 - Además, no desea crear un entorno en el que los desarrolladores estén demasiado preocupados por ser castigados por romper un módulo compartido para recrear otro por su cuenta. Entonces todos pierden.
Una vez resolví un problema similar con un desarrollador que dijo "No voy a cambiar mi código". como su mantra. Hice esto: "Oye, creo que el código que escribiste está pasando parámetros no válidos, ¿podrías poner algunas declaraciones de depuración allí para que podamos atrapar al culpable?" SABIENDO muy bien que se estaba pasando la información correcta. Eso trajo luz, no calor. Y como puede suponer, el Sr. "No voy a cambiar mi código" reconoció el problema.
Es importante no culpar al desarrollador, porque realmente no sabes si es su culpa. Muy posiblemente el error que introdujeron se debió a los malos requisitos que les dio otra persona. Se necesitan muchas personas diferentes para dar vida al software, y todas son igualmente responsables del producto final. Culpar a los individuos es una pérdida de tiempo. Lo que importa es que los problemas se solucionen.
Estoy de acuerdo con no culpar al desarrollador, sin embargo, es importante identificar al desarrollador y asegurarse de que comprendan el error (si es realmente un error) para que puedan aprender. Parece que rompieron el principio Abierto/Cerrado.
@DidIReallyWriteEso sí, eso es cierto. Pero también debemos tener en cuenta que el OP es el miembro menor del equipo, y la otra persona es mucho más senior. Además de la arrogancia y, en general, no ser un buen jugador de equipo, todavía existe la posibilidad de que hayan hecho lo correcto y es posible que el junior aún no pueda decirlo.
+1 para pruebas unitarias. Junit me ha salvado el culo tantas veces desde que me convencieron de usarlo.
Despersonalizar los errores es una muleta. Si bien evitar hacerlo personal te ayuda a tener la situación, no tiene consecuencias a largo plazo en términos de desarrollo personal para el desarrollador senior en cuestión. Si no puede manejar lo que dijiste, es dudoso que esté creciendo. Intente que lea algún material sobre el manejo de la retroalimentación si puede (por ejemplo, a través de otro senior) si desea tener un buen impacto en lugar de simplemente soportar el problema.
@simbabque seguro, y en este caso es muy posible que sea OP el que necesita ser entrenado.
Solo quiero señalar que este es un gran consejo para cualquier campo, no solo para el desarrollo de software. Demasiadas personas quedan atrapadas en esta mentalidad de "no me culpen. Mi parte está funcionando bien" de que nadie es capaz de concentrarse en el panorama general: crear un producto que funcione. En mi experiencia, cuando todos los involucrados en un proyecto adoptan un enfoque holístico, las cosas se hacen más rápido y ocurren menos contratiempos.
Esta podría haber sido una buena respuesta, pero luego dijo que no se culpara a los desarrolladores. Siempre culpar a los desarrolladores... =P (+1)

Lo primero es lo primero: no es inusual que el código de dependencia rompa el código descendente. Existen prácticas de desarrollo que pueden mitigar esto, como una buena especificación, documentación y pruebas. Pero esa no es la respuesta a tu pregunta.

Oye, hiciste este cambio X a esa función Y. Este cambio rompe mi código porque no tiene en cuenta Z, y Z es lo que sucede de mi lado. ¿Te parece bien hacer K para arreglarlo?

Lo que dices puede parecer una acusación, esencialmente estás diciendo "rompiste mi código", y esto pondrá a la gente a la defensiva.

Una mejor manera es mantener esto menos "rompiste mi código" y más "te importaría echar otro vistazo a X? Creo que necesita hacer K para trabajar con Z".

Por otra parte, si esta persona es un gruñón sin importar cómo te acerques a ella, debes informarle a tu jefe que tu trabajo se está retrasando por tener que arreglar el trabajo del gruñón. Nuevamente, no señale con el dedo, pero déjelo como "el trabajo en Z se retrasó por los cambios en X y necesitaba hacer K primero".

Y esta es una de las principales razones para usar SemVer.
"Una mejor manera es mantener esto menos 'rompiste mi código' y más '¿te importaría echar otro vistazo a X? Creo que necesita hacer K para trabajar con Z"." Esto implica que en realidad solo piensas que necesita hacer eso, y es muy posible que el otro tipo no crea que lo hace. Sin embargo, eso no es lo que está sucediendo aquí, OP sabe con certeza que el cambio ha roto la funcionalidad existente y eso es algo que seguramente debe abordarse.
@Demonblack OP podría estar equivocado. De hecho, OP podría ser el que necesita actualizar el código para cumplir con el código del desarrollador senior. El consejo importante es hablar sobre el problema con el código en lugar de señalar con el dedo, no sobre quién tiene razón o quién no.
Sin embargo, realmente no importa quién necesita cambiar qué. Incluso si el cambio es sensato, no cometes algo que rompa el código existente sin hablar con las personas afectadas de antemano.

Esta es en realidad una gran oportunidad disfrazada. La mayoría de los ingenieros no aprecian lo enorme que es esto para un empleador actual o un posible empleador. A la par de las habilidades técnicas está su capacidad para colaborar con las personas, aceptar la responsabilidad por los errores, trabajar con otros a través de los suyos propios y defender sus ideas con tacto. El consenso común es que esto se demuestra mejor cuando se entrevista compartiendo una historia anecdótica. por lo general, las personas improvisan tales historias en retrospectiva, pero podría ser muy estratégico y darse cuenta de que tiene la oportunidad de escribir una gran historia aquí mismo que respondería preguntas como "¿cómo maneja los conflictos" y probablemente abra oportunidades sorprendentes en su empleador actual? .

Algo a considerar entonces son tus tácticas vs estrategia .

Táctica

Sus tácticas son los sistemas y acciones que elige para ayudar con su problema. Entonces, por ejemplo, elegir una mejor redacción que sea menos personal, elegir el momento adecuado, tener en cuenta a la audiencia/los transeúntes, ayudar a la persona a la que te diriges a salvar las apariencias o usar pruebas automáticas para detectar el error. Pasa tiempo aprendiendo y practicando buenas tácticas. Esta será su caja de herramientas que puede aprovechar para su estrategia.

estrategia

El problema al que te enfrentas es sintomático de un problema aún mayor: a esta persona realmente no le gustas. Eso es lo que estratégicamente quieres arreglar.

En el lugar de trabajo, especialmente en un equipo, está más allá de su control que tenga una relación personal con cada uno de sus compañeros de equipo. Tal vez no le gustes a alguien y no te gusten ellos, qué lástima, te ves obligado a tener una relación por estar en un equipo. Es su elección si esas relaciones son buenas o malas. Puedes elegir poner esfuerzo en otras personas o no. El verdadero crecimiento profesional se produce cuando va más allá de pensar en sí mismo como un simple descifrador de códigos (lo que lleva a problemas de arrogancia del código), sino como un miembro funcional de un equipo, y quiere demostrar que, con usted en un equipo, ese equipo es mayor que la suma de sus partes. Eso significa una gran conciencia relacional.

La decisión estratégica es preguntarse cómo quiere que sea esa relación. ¿Es posible? ¿Qué falta o qué desafíos podrían dificultar la relación? ¿Qué necesitas hacer para que eso suceda? Por ejemplo, muchos problemas de relación se reducen a la confianza. Entonces, una estrategia sería mostrarle a este desarrollador que estás pensando en sus intereses y no solo en los tuyos, y llevar tu relación al punto en que esta persona confíe en ti. No seas un estoico sabelotodo, eso no pone a la gente de tu lado aunque tengas razón y estés justificado. La estrategia es darse cuenta de que quiere que la gente esté de su lado y pensar cómo sucede eso. Qué funciona y qué no. También es importante darse cuenta de que una estrategia exitosa a menudo requiere paciencia.

Lo bueno de esto es que, si desarrolla una relación realmente sólida con este desarrollador senior, las tácticas que lo llevaron allí se vuelven mucho menos necesarias y es más fácil ser más eficiente y exitoso en su trabajo. Una buena estrategia puede llevarte a una buena relación, y con una buena relación te resultará mucho más fácil lograr tus objetivos. Así que piensa en trabajar en tu relación con esta persona cuando no haya ningún problema, y ​​eso hará que sea más fácil cuando surjan problemas como este.

¿Cómo debo comunicarle que vengo con buenos medios, pero también le hago entender (y aceptar) que él es quien debe hacer los cambios necesarios para arreglar el código/módulo roto?

Será mejor que se asegure de que su jefe/equipo esté de acuerdo en que así es como debe manejarse. Idealmente, en un entorno de codificación, hay algún tipo de sistema de prueba automatizado, por lo que si el código que se intenta verificar se rompe, se rechaza hasta que se soluciona. Por lo general, esto lo hace la persona que lo cambió. Todos deben enorgullecerse de su trabajo, que viene con un nivel de responsabilidad de querer arreglar las cosas que se rompen.

Su jefe puede sentir que es una pérdida de tiempo que los desarrolladores senior corrijan cada pequeño error que introducen en el sistema. Piensan que esa tarea se deja para los desarrolladores junior; No estoy de acuerdo con esto. Tienes que averiguar cómo se supone que funciona esto.

Si el código se rompe a través de los límites del módulo, este es definitivamente material de desarrollador senior.
Es el desarrollador senior quien debe decidir cómo solucionarlo. Pero eso no significa que tengan que escribir personalmente la solución, o que la solución deba estar en el código que escribieron.
@ThorbjørnRavnAndersen: puede tener sentido asignarlo a un desarrollador senior, pero la mayoría de los proyectos se vuelven caóticos a veces y no se siguen las mejores prácticas. Además, podría verse como un momento de enseñanza para que un programador junior lo descubra y haga que el miembro senior brinde más supervisión.

Mi enfoque para este tipo de problema es garantizar que haya suficiente metodología y herramientas para que el problema sea técnico y no personal.

Por ejemplo, asegúrese de tener compilaciones automatizadas y pruebas de humo. Si estos se rompen, tenga la regla de que el que rompe debe proporcionar comida en la próxima reunión del equipo.

A veces, las personas desafiarán audazmente el statu quo en una búsqueda egoísta del progreso personal. En cierto modo, esto es normal. Es empresarial en el mejor de los casos. El individuo avanza en un marco que se lo permite. Entonces, cambia el marco. Ese tipo de personas no se frustrarán, progresarán de diferentes maneras. Entonces, como gerente, su objetivo es aprovechar ese espíritu y dirigirlo de una manera que sea positiva para el equipo y los objetivos.

Parte de esa estrategia de aprovechar la voluntad es asegurarse de que las personas aún sientan un sentido de propiedad. La respuesta más popular aquí hasta el momento aboga por una filosofía de renuncia a la propiedad. Creo que esto puede ser contraproducente. Deje que las personas se apropien apasionadamente de su área. Pero asegúrate de que no traspasen las de los demás.

Escribí la respuesta a la que te refieres y también estoy de acuerdo con lo que dices. Sin embargo, para un junior del equipo en cuestión, su consejo no es particularmente útil. No creo que puedan cambiar la forma en que son las cosas en su empresa. ¿Puede dar consejos más concretos no para el rol de gerente, sino más bien para la posición en la que se encuentra el OP específicamente? No estoy seguro de cómo podrían influir en eso, por lo tanto, tomé la otra ruta con mi respuesta. Me gustaría escuchar lo que piensas.
@simbabque Sí, mi respuesta es más hacia los roles gerenciales. Creo que el OP siempre podría escalar a su gerente el mismo consejo, pero mi sensación es que eso aún mantiene el problema en la esfera 'interpersonal', donde puede haber una solución técnica disponible. Es difícil saber los detalles, pero la forma en que el OP expresa su problema sugiere que él es responsable de la delegación de errores y existe una cultura floja en la que el OP simplemente se acerca a sus colegas y cara a cara arroja errores a las personas. Técnicamente, puede evitar esto agregando más pruebas o haciendo que el código imponga dependencias en el momento de la construcción/compilación.
Gracias por su respuesta. Ahora veo de dónde vienes. Para ser honesto, lo entendí más de una manera que el OP es bastante joven e inexperto, y por lo tanto sacar conclusiones quizás demasiado rápido. Por lo tanto, creo que sugerir un curso de acción a su gerente podría no ser el movimiento preferido, según su cultura.
@simbabque Es difícil saberlo. En mi opinión, cuando se registra un error y dice "el módulo A genera valores de 1 a 6" y "el módulo B dependiente espera entradas de 1 a 5", entonces alguien debe determinar dónde se debe realizar el cambio, si la cultura lo alienta. propiedad del área. Si no es así, entonces el cambio lo puede hacer cualquiera. En todo caso, me parece que este es un problema de liderazgo técnico y de arbitraje propio de esa cultura.
@simbabque Si el objetivo es asegurarse de que haya suficientes herramientas y metodología, y si la escalada a través de la administración no es una opción, entonces las contrapartes en la disputa de propiedad pueden resolver su problema trabajando en las herramientas/metodología de manera proactiva entre ellas.

Esta pregunta probablemente depende en gran medida de la cultura de la empresa.

Hay empresas en las que "no se cometen errores". O más bien, no se le permite hablar de ellos, y un gerente que se entera de que alguien cometió un error, "observará a esa persona de cerca".

En esa situación, revela el problema a esa persona personalmente de manera que el gerente solo se entera si es absolutamente necesario, diciéndole exactamente lo que quiere que haga o arregle, después de que haya intentado solucionarlo usted mismo. (Ofc. también debes correr, banderas rojas yada yada). También debes decirles que es entre tú y ellos y que eres genial.

En cualquier empresa en funcionamiento, debe asegurarse de que su divulgación no suene como una acusación.

Aún debe asegurarse de decirles exactamente lo que quiere de ellos y por qué no puede hacerlo usted mismo (porque si puede arreglarlo, entonces por qué se queja, arréglelo rápidamente y siga adelante, no lo hicieron). No lo hacen para crear trabajo para ti, tuvieron que solucionar su propio problema).

También asegúrese de que su gerente o líder del proyecto esté al tanto y haya dado su aprobación para que lo arreglen.

No pueden decidir qué hacer con su propio tiempo y obtener el trabajo asignado por su gerente/líder de proyecto.

Llegar y hablar sobre un error en un ticket que debería estar hecho ahora, sin hacer esas cosas antes de eso y abordarlas directamente creará estrés y la impresión de que desea que trabajen a tiempo cuando están asignados a otra cosa. o en su tiempo libre.

La mayoría de los conflictos o problemas con las personas se deben a problemas subyacentes del proceso. Ese es ciertamente el caso aquí.

Usted, sus colegas, su empresa y, lo que es peor, sus clientes finales son todos víctimas de procesos fallidos que deberían implementarse para administrar la calidad y la integridad de su código combinado.

Pensar y actuar desde esa perspectiva es clave para resolver los problemas de calidad subyacentes que condujeron directamente a los problemas que está experimentando. También es la clave para encontrar puntos en común con sus colegas (p. ej., le resultará fácil ponerse de acuerdo sobre los problemas del proceso que le causan todo el dolor).

Si bien es probable que solo quiera hacer el trabajo y progresar en su carrera, si se percibe que busca superar a los compañeros de trabajo más experimentados, dañará su relación laboral con aquellos que están mejor posicionados para ayudarlo. .

Mi consejo sería proponer una solución, ya sea en detalle (como una solicitud de extracción, por ejemplo) o un resumen del enfoque general que propondría como solución. Llévale esto a la persona cuyo código consideres roto y pídele su opinión. Y lo más importante escuchar la respuesta .

Esto le presenta al compañero de trabajo, a quien quizás acaba de interrumpir, una solución, en lugar de un problema y, por lo tanto, trabajo adicional. Es probable que no solo aprenda algo de la respuesta que obtenga, sino que también se lo verá como alguien útil y que trabaja en equipo.

Como otros han sugerido, debe despersonalizar esto. Debería haber una propiedad colectiva del código. Menos de "¡rompiste mis cambios!" y más como "¿cómo podemos hacer que ambos cambios funcionen bien juntos?"

También es posible que desee considerar si hay margen para mejorar la comunicación durante las reuniones diarias (si las tiene, o sugiera presentarlas si no), de modo que, en general, haya más conciencia de en qué está trabajando la gente y, por lo tanto, menos posibilidad de conflicto o rompiendo cambios.

Proporcionar el nivel adecuado de detalle en las standups es complicado, pero si sus colegas no conocen el área amplia del código en el que está trabajando, es posible que desee considerar brindar un poco más de detalle.

Algo más a tener en cuenta: como desarrollador más joven pero con menos experiencia, es muy posible que pueda codificar más rápido que sus colegas más experimentados (¡un cerebro más joven y más agudo es una ventaja real a veces!), sin embargo, también debe reconocer que sus colegas de mayor rango tienen la ventaja con la experiencia y pueden ser más considerados en su enfoque, en función de sus años de experiencia. De hecho, la mayoría de los proyectos de desarrollo se parecen más a maratones que a carreras de 100 metros. Los mejores equipos se basan en todos los niveles de experiencia.

¿Cómo debo comunicarle que vengo con buenas intenciones, pero también hacerle entender (y aceptar) que él es quien debe hacer los cambios necesarios para arreglar el código/módulo roto?

Estoy de acuerdo con mucho de lo que ya se ha dicho. Diferentes personas interpretan el mismo mensaje de diferentes maneras, y lo que una persona percibe como una comunicación completamente normal y efectiva, otra persona lo encuentra irritante o intimidante, por las razones que sean. Es probable que esa persona esté comunicando (implícitamente) que encuentra desagradable tu estilo. Prueba algo más la próxima vez. Intente cambiar la configuración: atrápelo en la fuente de agua en lugar de en su asiento. Siéntate a su lado antes de comenzar la conversación, en lugar de pararte frente a él. Pruebe diferentes enfoques: use su sentido común.

Y una cosa más que puedo sugerir, trata de equilibrar tu comunicación con él. Si es sensible a que usted le señale sus errores, encuentre oportunidades para felicitarlo (sinceramente) por sus diseños inteligentes o su ejecución efectiva; eso ayuda mucho a la mayoría de las personas.

La forma más fácil de manejarlo es no manejarlo. Deje que el desarrollador discuta con una prueba fallida en su lugar. Pregúnteles cómo se supone que funciona el código y luego cree una prueba a su alrededor. Entrégueles la prueba y dígales que falla.

Pasivo-agresivo y es posible que encuentren una solución que pase la prueba y rompa su código. Entonces, ¿qué, intensificar la broma inteligente?