El problema XY English

Guía de supervivencia para quien pregunta y para quien responde

El problema XY

Consiste en preguntar por tu intento de solución en lugar de por tu problema real.

Lo que preguntas

«¿Cómo hago Y?»
Un apaño que se te ha ocurrido y que quizá ni siquiera sirva.

Lo que necesitas

«Necesito conseguir X.»
El objetivo de verdad, el que nadie llega a oír.

Ver también: Cómo hacer preguntas inteligentes.

¿Qué es?

El problema XY consiste en preguntar por tu intento de solución en lugar de por tu problema real. Esto provoca una cantidad enorme de tiempo y energía desperdiciados, tanto por parte de quien pide ayuda como de quien la ofrece.

  1. El usuario quiere hacer X.
  2. El usuario no sabe cómo hacer X, pero cree que podrá apañárselas hasta dar con la solución si consigue hacer Y.
  3. El usuario tampoco sabe cómo hacer Y.
  4. El usuario pide ayuda con Y.
  5. Los demás intentan ayudarle con Y, pero están desconcertados porque Y parece un problema muy raro de querer resolver.
  6. Tras mucha conversación y mucho tiempo perdido, por fin queda claro que lo que el usuario quería de verdad era ayuda con X, y que Y ni siquiera era una solución adecuada para X.

El problema aparece cuando alguien se ancla en lo que cree que es la solución y es incapaz de dar un paso atrás y explicar el asunto completo.

¿Qué hacer al respecto?

  • Incluye siempre información sobre el panorama general junto con cualquier intento de solución.
  • Si alguien te pide más información, dásela.
  • Si ya has descartado otras soluciones, explica por qué las descartaste. Eso aporta más información sobre tus requisitos.

Recuerda: si tus hipótesis de diagnóstico fueran acertadas, no estarías pidiendo ayuda, ¿verdad?

Ejemplos

Ejemplo 1

El novato no quiere en realidad los tres últimos caracteres de un nombre de fichero: quiere la extensión. ¿Por qué preguntar entonces por los tres últimos caracteres?

<bob> ¿Cómo puedo mostrar los tres últimos caracteres de un nombre de fichero?
<feline> Si están en una variable: echo ${foo: -3}
<feline> ¿Por qué tres caracteres? ¿Qué es lo que quieres DE VERDAD?
<feline> ¿Quieres la extensión?
<bob> Sí.
<feline> No hay ninguna garantía de que todos los nombres de fichero tengan
<feline> una extensión de tres letras, así que coger tres caracteres a ciegas
<feline> no resuelve el problema.
<feline> echo ${foo##*.}

Ejemplo 2

Si Angela hubiera empezado explicando que lo que quiere es impedir que otros detecten su sistema operativo, esta conversación habría sido mucho más corta y mucho más productiva.

Fuentes

Fuente 1 Fuente 2

Esta página es la versión en español de xyproblem.info, que a su vez recoge el material de las fuentes citadas.