Qual é o problema XY?
Ao fazer perguntas, como posso reconhecer quando estou caindo nisso? Como faço para evitá-lo?
Comentários
Resposta
O que é?
O XY problema é perguntando sobre sua tentativa de solução , em vez de seu problema real.
Ou seja, você está tentando resolver o problema X , e você acha que a solução Y funcionaria, mas em vez de perguntar sobre X quando tiver problemas, pergunte sobre Y.
O problema
Isso pode levar à frustração de pessoas que estão tentando ajudá-lo a resolver o problema porque, no momento em que você perguntar sobre isso, a solução para a qual você precisa de ajuda pode não ter nenhuma conexão óbvia ao problema que você está tentando resolver.
Como evitá-lo
Para evitar cair nessa armadilha, sempre inclua informações sobre uma imagem mais ampla junto com qualquer tentativa de solução. Se alguém pedir mais informações, ou especialmente uma pergunta mais específica, forneça detalhes. Se houver outras soluções que você acredita que serão sugeridas e que você já descartou, então não tente evitar examiná-las novamente – em vez disso, diga por que você as descartou, pois isso fornece mais informações sobre seus requisitos e ajuda os outros a fornecer respostas melhores.
Um exemplo
Uma conversa recente do IRC para ilustração:
P: Existe uma função para retornar uma string entre dois delimitadores?
B: Não entendo o que você quer dizer, mas duvido que já exista uma função
C: Dividir e fatiar
D: Partição também
P: Eu tentei partição
P: Estava tentando usar recursos integrados para obter o número entre algo assim em uma string ” attribute1: 50.223, attribute2: 442.1 ”D: Por que não apenas analisar a string?
P: Achei que pode ter havido algum material de análise integrado
D: pares = [x.strip () para x em s.split (“, “)]; atribs = {k: v para x em pares para k, v in [x.split (“: “)]}
D: Existem algumas bibliotecas, mas formatos simplistas são fáceis – se você não se importar com erros manipulação
D: Alterar a fonte para usar um formato conhecido, por exemplo json ou yaml, é preferível quando possívelQ: Este código realmente vem de HTML
Q: Mas eu não sei como analisar Javascript com HTMLParser ou o que quer que seja chamadoD: É apenas incorporado em HTML ou alguma versão mutilada de HTML?
P: Está embutido no HTML
D: Se for JavaScript (e isto é, exceto para chaves externas ausentes), JSON provavelmente pode analisá-lo
P: Obrigado
D: Eu não disse explicitamente: JSON analisa apenas estruturas de dados, não código JS
P: Tudo que preciso analisar é uma estrutura de dados
O problema é realmente sobre como analisar estruturas de dados JavaScript, não encontrar ” uma string entre dois delimitadores “, mas leva um pouco de tempo e intuição para chegar ao problema real.
Isso é mais fácil de fazer em um chat totalmente interativo (independentemente do modo), mas em um site SE , onde você aprimora uma postagem um pouco, posta-a e tem de 5 a 30 minutos ou mais antes do feedback, realmente ajuda ir na direção certa desde o início.
Comentários
- Problemas IMO XY às vezes são úteis porque as respostas podem ajudar o questionador a entender por que sua solução não ‘ funcionaria e entender melhor o original problema no processo.
- A maneira mais fácil de chegar ao problema real é geralmente perguntando Por que cinco vezes.
- Embora, se você começar com Y em vez de X, você pode ter para perguntar por que 10 vezes (ou mais, aplique os 5 porquês a todos os níveis?). 🙂
- Por que Y – essa ‘ é a pergunta a se fazer
- Para ser justo, muitas vezes os questionadores perguntam sobre X, e a resposta é ” que ‘ s demais, divida em um pequeno exemplo ” e então o autor da postagem isola sua tentativa de solução Y e todos perdem de vista o problema original.
- Às vezes você fica preso a Y. Em meu primeiro trabalho, tive que modificar uma loja virtual. A base de código era uma mistura podre de PHP html e js. Havia 2 maneiras de resolver problemas: Refazer tudo (recusado pelo chefe) adicionar mais fita. ASSIM realmente não me ajudou nisso. ” Como fazer? ” ” Por que você faria isso? ” ” Porque tenho que ” ” O que é S / Não faça isso / por que você está usando {antipattern}? ” ” Porque eu preciso ”
- @OliverA. Em seguida, parte da questão se torna uma explicação de por que você precisa fazer Y. ” Eu preciso fazer Y porque legado / chefe / estrutura antiga ” então a pergunta se torna mais fácil de responder e mais valiosa para todos.
- @LegoStormtroopr Exceto que muitas pessoas não ‘ não entendem isso. Eles não ‘ não entendem que às vezes você não ‘ não tem o luxo de escolher a abordagem certa e apenas tem para band-aid código existente, e a questão é fechada como muito restrita ou algo assim …
- Fiz tentativas sólidas de reduzir todas as minhas perguntas ao máximo de ” Y ” possível. Não tenho interesse em explicar todo o escopo do meu problema (especialmente ao trabalhar com software proprietário de código fechado no meu trabalho) e sinto que (excluindo lidar com aqueles que insistem em percorrer a cadeia acima com ” por quê? por quê? por quê? “) Posso obter uma resposta mais rápida encapsulando minhas perguntas de todos os contextos.
- Depende no conhecimento geral do solicitante ‘ s do espaço do problema.Concordo com n00n, para aqueles mais experientes com as alternativas, eles podem já ter descartado todos os possíveis X ‘ s, e agora X é uma constante, e eles só querem resolver para Y. Afasta a questão de ter que revisar todos os X ‘ s possíveis que você ‘ já descartou, e mergulhe na política do escritório ou na arquitetura de sistema existente. Alguém com menos experiência pode se beneficiar de ter outros ‘ s analisando a alternativa X ‘ s e sugerir que reconsidere essa pré-condição.
- O contra-exemplo: Eu: Existe alguma maneira de mudar o diretório atual em Java? Outro: em java, você não ‘ precisa fazer isso. O que você quer fazer? Eu: (suspiro) OK, eu tenho um jar executável para um programa que escuta uma porta e troca mensagens. O jar normalmente fica em x / bin e a configuração em x / conf. Portanto, o programa lê sua configuração em ../conf. Agora quero executá-lo em um servidor tomcat chamando o método principal do programa ‘ eu mesmo. Mas não tenho controle sobre o diretório inicial do servidor ‘ s e ” ../conf” não é um lugar aceitável.
- (cont) Então, eu me pergunto se há alguma maneira de alterar o diretório inicial de um segmento. Outro: Oh, entendo. Bem, você não pode ‘ fazer isso em Java. Eu: Por que você não ‘ não me disse isso antes? – Nesse caso, fiz a pergunta X e a pergunta Y (como usar arquivos em Java) foi respondida.
- Normalmente, não quero que as pessoas resolvam meu problema, apenas responda minha pergunta. Pode ser um tanto irritante quando as pessoas tentam ajudar com o primeiro em vez do segundo.
- @NoctisSkytower Mas na maioria das vezes cada resposta depende do contexto … P: ” Como posso fazer X em C? ” A: ” Existem 20 maneiras diferentes, cada uma com suas próprias armadilhas e casos de uso, você pode estudá-las você mesmo e cometer todos os erros que os outros cometeram, ou você pode nos dizer qual problema deseja resolver com isso e podemos lhe dar a melhor abordagem ! ” P: ” Eu não ‘ quero uma palestra, apenas me dê qualquer resposta, não ‘ me importo! ” – A: ” -.- tchau. ”
- Sites SE não programados têm um link para esta resposta para explicar o conceito do problema XY. Um exemplo mais universal (sem programação) seria ainda mais útil.
Resposta
O problema XY, como às vezes é chamado, é um bloqueio mental que leva a uma enorme perda de tempo e energia, tanto por parte das pessoas que pedem ajuda, quanto por parte daqueles que fornecem ajuda. Muitas vezes é algo assim
- O usuário quer fazer X.
- O usuário não sabe como fazer X, mas acha que pode tatear para encontrar uma solução se eles podem simplesmente conseguir fazer Y.
- O usuário também não sabe fazer Y.
- O usuário pede ajuda com Y.
- Outros tentam ajudam o usuário com Y, mas estão confusos porque Y parece um problema estranho a se querer resolver.
- Depois de muita interação e tempo perdido, finalmente fica claro que o usuário realmente quer ajuda com X e que não era nem mesmo uma solução adequada para o X.
O problema ocorre quando as pessoas prendem sua linha de pensamento em uma abordagem e se tornam incapazes de dar um passo para trás. Permanecendo aberta para ter uma nova olhe para o quadro geral, essas pessoas podem encontrar o caminho de volta ao X e continuar procurando por soluções alternativas.
Consulte “ XyProblem ” para mais informações.
Comentários
- Eu também acho que esta resposta é necessária além da explicação. Eu li o acima, tentei pensar sobre meu problema atual (se é uma questão X ou Y), e quando li este comentário, obtive o ” aha ” momento de compreensão de que se eu tivesse postado minha pergunta, teria perguntado sobre o Y e não sobre o X. A reiteração da minha situação pode ser um bloqueio mental focado em como estou resolvendo o problema em vez de declarar claramente o problema que desejo resolver é muito útil.
- Acho que é a responsabilidade ‘ do usuário. Eu ‘ encontrei muitas vezes o problema, que eu queria resolver o problema X, e todos sugeriram Y e Z. Mas se eu quisesse uma solução para Y ou Z, esta é o que eu havia perguntado. Acho isso um pouco embaraçoso, não apenas porque as respostas que recebo não ‘ pertencem à minha pergunta, mas também porque me sinto subestimado.Desde que eu intencionalmente perdi todos os detalhes que poderiam enganar meus respondentes dessa maneira ruim.
- Esta resposta em particular me lembra do martelo de Maslow ‘ s Martelo
- Não concordo com a resposta. Se você tiver o problema X e indicar Y como sua solução e pedir ajuda para Y, o que você ‘ está fazendo é estabelecer sua (provavelmente falha) compreensão do problema. Quando quero ajudar alguém, quero saber não só a sua pergunta X, mas como é que ela está pensando no momento (o Y). Às vezes, é ‘ mais importante ensinar como pensar do que ensinar o que pensar. E o problema XY me dá pistas importantes sobre como abordar isso.
- Na verdade, advertir os problemas XY é particularmente hostil. E (para escolher, ah, um): stackoverflow tem sido atroz nesse aspecto nos últimos anos. Eu ‘ estou sustentando que os outros sites SE centrados no programador não ‘ t tão irreparavelmente bagunçado como eles fizeram.
- @ tgm1024 Eu não ‘ não entendo seus comentários; o problema XY não é quando um usuário inclui seu processo de pensamento ao fornecer X e Y na pergunta, é ‘ s quando o usuário não ‘ t inclui seu processo de pensamento e fornece apenas o Y porque, especialmente nesse caso, é ‘ difícil ensiná-los a pensar .
- @JiK, Você o identifica como um problema XY ou não ‘ t. Se o fizer, então você ‘ está bem ciente do X. Se você não ‘ t, então você ‘ d é melhor não assumir o que é o X, porque o Y apresentado pode na verdade ser uma questão formada de forma válida .
- O usuário não ‘ Não sei como fazer X, mas pensa que pode tatear para encontrar uma solução se conseguir fazer Y. Parece que todos os problemas são resolvidos para mim: P. Levado ao extremo, todos deveriam começar sua pergunta com ” Quero melhorar minha vida / o mundo de alguma forma. Eu nasci em 19 … ”
- Às vezes, ‘ está quase certo. Muitos anos atrás, depois que meu DBA Oracle se voltou para mim (seu administrador de sistema) e disse, cansado, ” De alguma forma, em algum lugar, algo deu errado ” Fiz para mim uma camiseta com isso nela. Em muitos aspectos, é um relatório de erro perfeito porque não ‘ faz quaisquer suposições que eu tenho que refutar: começa com seu problema e me permite detalhar suas observações e suas expectativas para ver onde pode estar a incompatibilidade com a realidade.
- @ tgm1024 ‘ s sobre como evitar perder muito tempo tanto para quem pergunta e para quem responde. Se você estiver ciente das advertências de um Y possivelmente válido, deverá incluir essa informação em sua pergunta. Pedir mais X será evitado. Se você não ‘ não sabe que as advertências pedindo X é provavelmente exatamente o que você precisa, porque uma solução para Y não o ajudará muito. Seria desagradável noob não apontar a solução correta e, em vez disso, deixá-los com uma solução ruim.
- @trixn, eu ‘ não tenho certeza de onde estamos discordo. No entanto, — > Se você tiver o problema X e indicar Y como sua solução e pedir ajuda para Y, o que você ‘ re fazer é estabelecer sua compreensão (provavelmente falha) do problema. Quando quero ajudar alguém, quero saber não apenas a pergunta X, mas como é que eles estão pensando no momento (o Y). Às vezes, é ‘ mais importante ensinar como pensar do que ensinar o que pensar. E seu problema XY apropriado e valioso me dá dicas importantes de como abordar isso.
- @ tgm1024 Isso é literalmente o que você já disse antes. Meu ponto foi sobre sua afirmação de que admoestar problemas XY é particularmente hostil para noob. Claro que ‘ é também uma questão de como você expressa sua suspeita de que uma questão pode ser um problema XY. Mas, de modo geral, não ‘ não concordo que apontar um questionador para isso não é nada amigável, pois pode de fato ser o que ele realmente precisa. É ‘ por isso que geralmente peço mais informações sobre o caso de uso. Se Y for uma pergunta fácil de responder, geralmente respondo de qualquer maneira com uma observação de que pode não ser a solução desejada de qualquer maneira.
- @trixn, é claro que você pode apontar alguém na direção certa, e é claro você pode guiar alguém em direção a uma nova maneira de ver algo.No entanto, começar com a noção de que a formação da pergunta em si de alguma forma está errada é com o que eu ‘ estou em forte desacordo. Por exemplo, observe a citação hiperbólica na resposta com 71 votos a favor de Jonathan Benn: ” Específico para Q & A, a perniciosidade de um O problema XY vem do fato de ser frustrante para todos os envolvidos. ” Isso é simplesmente um disparate. A pergunta XY é valiosa. É ‘ frustrante apenas para quem deseja que assim seja.
- Ótima explicação. RE: ” e que Y não era ‘ nem mesmo uma solução adequada para X “, Acho que às vezes Y pode ser uma solução para X. Mas não é uma solução natural ou prática.
- Imo, esta é a que deveria estar no topo. Sem ofensa na resposta superior, mas eu primeiro li isso e isso me fez coçar a cabeça e então desci para ver isso e a resposta ficou muito clara para mim.
Resposta
Um problema XY parece ser um subconjunto do efeito Einstellung , em que um solucionador de problemas fica preso em uma solução específica e não é capaz retroceder mentalmente para ver soluções potencialmente superiores. Este fenômeno psicológico afeta a todos, novatos e especialistas.
“ Por que sua primeira ideia pode cegá-lo para uma melhor ” explica um exemplo do xadrez, onde uma pessoa vence com um companheiro sufocado de 5 lances em um jogo. No próximo jogo, o mesmo jogador não consegue ver um companheiro de 3 movimentos mais rápido porque está preso na ideia de um companheiro de 5 movimentos.
Específico para Q & A, a perniciosidade de um problema XY vem do fato de que é frustrante para todos os envolvidos:
- A pessoa que faz a pergunta faz a pergunta errada (que está relacionado à sua tentativa de solução, e não ao problema original) e, então, acha difícil esclarecer a questão porque está preso em sua própria solução. As respostas propostas são insatisfatórias porque não abordam como implementar a solução do autor.
- As pessoas que respondem à pergunta acham frustrante porque a solução proposta não faz sentido para eles, uma vez que estão se aproximando do problema de um ângulo novo e (presumivelmente) não estão sendo afetados pelo efeito Einstellung, e eles acham difícil fazer com que o autor da postagem original esclareça sua pergunta.
Comentários
- Interessante como a
Einstellung effect
descrição se baseia em um erro óbvio. Luchin estava experimentando como as pessoas deduziriam o problema de sua descrição incompleta e ambígua (ele pedindo otimização para latência ou otimização para rendimento?). No entanto, ele se iludiu de que, supostamente, ainda estava experimentando ” como as pessoas chegam a soluções “. Isso é talvez uma coisa referencial. Luchin estava tão focado em seu interesse, que ele não percebeu quando se desviou para um problema muito diferente. - Minha fonte foi a Scientific American, se você contestar, pode falar com eles;)
- Acho que um melhor O exemplo do xadrez seria algo como um jogador focado em tentar alcançar um xeque-mate complicado com material insuficiente, enquanto negligencia o fato de que eles têm um peão que poderia ser a rainha.
O problema do Quebra-cabeça do quadrado ausente é uma boa ilustração. Ilustra um processo simples e universal de problema / pergunta / solução, onde “alguma ilusão” causa complicações.
Há um problema evidente — o 1 × 1 buraco em que surge na segunda figura —, mas a solução só é evidente depois que sabemos (como um ovo de Colombo) … Todas as pessoas, especialistas e não especialistas, concorda que há um problema.
-
usuário normal : pensa que “há dois valores equivalentes , os” triângulos totais “em uma grade 13 × 5 perfeita. . “, seguindo com a pergunta:
- problem
Y
: “Por que o segundo triângulo equivalente tem um buraco?” .
- problem
-
usuário especialista : pense em algo como “oops , eles são semelhantes , mas não “figuras perfeitamente equivalentes”, seguindo com a pergunta:
- problema
X
: “Como mostrar que eles não são equivalentes perfeitos?” .
- problema
O especialista em geometria inteligente pensa em termos de “geometrias semelhantes que não são” equivalentes perfeitos “.
O usuário normal pensa , por engano, em termos de congruência exata. Portanto, o uso de hipótese errada , produza mal
Y
perguntas.
O” problema XY “como uma especialização do” comportamento de hipótese errada “
Você deseja resolver a questão real-
X
e pensa em termos de umY
-contexto e tente para usar question-Y
. Em vez de perguntar sobre o contextoX
, você pergunta sobre o contextoY
.
(como @Gnome notado acima , mas usando outras palavras)Então, “Problema XY” é apenas outro termo (mais especializado) para dizer “Uso de hipótese de trabalho errada ” .
Comentários
- Por favor, reveja seu downvote, eu editei para separar a opinião pessoal desta forma mais genérica e talvez interessante para explicar ” o que é “.
- Entendi o que você quis dizer com sua resposta e você ‘ é aquele que responde à pergunta com ilustração animada. Se minha reputação (nesta metacomunidade) permitir que eu vote, eu votarei.
- Esta resposta ilustra um típico caso de uso , quando ” programador de pensamento imperativo ” faz uma pergunta sobre linguagem funcional … A solução sugerida : pergunte no nível superior.
- desculpe, por que o segundo triângulo equivalente tem um buraco?
- Olá @KorayTugay, sua pergunta está fora do escopo (é um problema clássico, para que você possa usar explicações clássicas, consulte meu link da Wikipedia!). PS: Gosto de ver o buraco como a diferença , porque os triângulos são semelhantes e têm quase a mesma área, mas não exatamente a mesma, então você pode construir o buraco da pequena faixa da diferença geométrica.
- @koraytugay olhe para o ponto onde os triângulos vermelho e azul se tocam quando a animação é redefinida .. fica claro que o triângulo azul é ” mais íngreme ” do que o vermelho, então, quando o triângulo azul está na parte inferior, a hipotenusa é ” convexa ” e quando no topo é ” côncavo “. Esta ” flexão ” da hipotenusa dá origem a um quadrado ‘ s que vale a diferença na área
Resposta
Evitando o problema XY
Eu argumento que você não pode evitá-lo. Não sem simplesmente jogar seus requisitos de programa no SO e pedir que eles façam seu projeto para você ( não recomendado) .
Eu defendo isso porque o processo de design para todo software é baseado em um conjunto inicial de requisitos “A”. A partir daí você diz “Eu posso alcançar A se eu fizer B e C “. A partir daí, você diz” Posso alcançar B se fizer D e E e posso alcançar C se fizer F e G “. E continua até o ponto em que dizemos que” Posso alcançar X se fizer Y “. Normalmente fazemos isso tão rápido que nem pensamos no processo.
Portanto, o maior problema com o problema XY é que Y não é possível, mas você não sabe quanto do seu design para descontrair para g et de volta ao X que é possível. Você geralmente nem sabe que Y é impossível sem realmente perguntar. Você não sabe o que não sabe. Portanto, é inevitável
Fazendo perguntas nas quais você corre o risco de cair no XY
A melhor coisa que você pode fazer sobre o problema XY é proteger contra ele ao fazer perguntas. Ainda faça a mesma pergunta, mas dê o máximo de informações pertinentes possível:
- Declare seu problema
- Declare o que você estão tentando alcançar
- Declare como ele se encaixa em seu design mais amplo
Isso ajudará as pessoas a identificarem que é XY e o ajudará muito mais rapidamente.
IMPORTANTE: Dando respostas aos problemas XY
Na minha opinião, o maior problema com As perguntas XY são as respostas (frequentemente) inúteis que elas provocam. Nunca impediremos que as pessoas façam essas perguntas, então o melhor é entender como podemos respondê-las rapidamente e efetivamente.
Ironicamente, muitas dessas respostas e respostas ruins são dadas por aqueles que desejam ser os mais úteis e podem ser fornecidas por algumas das pessoas mais conceituadas no fórum / SO.
Eu descobri um método de responder a essas perguntas que parece ajudar a contornar a psicologia associada aos problemas XY e levar o OP de uma pergunta a uma solução funcional. O método leva um pouco mais de tempo para responder em a primeira instância, mas fecha o ciclo Q / A muito mais rapidamente.
Sugiro que você responda à pergunta em três partes e as forneça na seguinte ordem.
-
Responda à pergunta do OP “s . Mesmo que o OP provavelmente precise de algo mais, nunca se esqueça de responder à pergunta que ele realmente fez primeiro e não à pergunta que você acha que ele quer que seja respondida. Em alguns casos, essa resposta pode ser “Y não é possível” . Muitas vezes vejo respostas (comentários) perguntando “por que você precisa disso?” . Isso não dá nada ao OP. Se você disser “Isso” vai ser muito difícil. Explique por que você precisa, podemos ser capazes de ajudar “ então, em muitos casos, um OP simplesmente pegará o ” Y é realmente difícil “ e voltará para a prancheta. . Tudo bem porque você respondeu à pergunta deles e eles podem voltar com a pergunta X eles mesmos.
-
Discuta a tentativa de solução do OP . Isso é complicado e requer um pouco de reflexão. Mas não posso enfatizar o quão importante é. Se o OP pediu Y e você acha que ele quer X, depois de responder à pergunta (1), continue falando sobre Y (NÃO X). Para que Y deve ser usado? Como não se aplica a X? O crucial é continuar falando sobre a pergunta, mas deixar de respondê-la para fornecer informações úteis. Porque, afinal, é isso que você acha que o OP precisa. Informações úteis e não a resposta para sua pergunta.
-
Resolva X Isso é o que você está ansioso para fazer e, afinal, é o ponto principal de sua resposta. Você atendeu ao OP nos termos deles e respondeu à pergunta deles. Você os ajudou a compreender as falhas de sua pergunta e por que resolver Y não é a coisa certa a fazer … então agora você está completamente justificado em explicar uma solução para o X.
A maioria das pessoas está aqui para aprender, então as partes 1 e 2 desta resposta são tão importantes quanto a parte 3. Mas muitas vezes a parte 3 é fornecida e é extremamente frustrante e condescendente com o OP, sem falar que muitos OPs não aceitarão a resposta.
Dar essa resposta também evita constrangimento quando você pensa que o OP tem um problema XY, quando na verdade eles don “t. Tudo o que você fez foi dar algumas informações extras. Simplesmente dando à parte 3 os riscos de parecer não ter lido a pergunta.
Incidentalmente. Leia a pergunta novamente e leia esta resposta … reparou nas três partes?
Comentários
- As ” Problema XY ” é um tipo de ” Uso de errado hipótese ” , a comunidade Stackoverflow deve ajudar mostrar a hipótese certa … Este é o foco em seu ” Dando respostas para problemas XY “?
- @PeterKrauss Em certo sentido. Isso é mais uma suposição (concordo que a comunidade deveria) . Presumo que alguém que está respondendo à pergunta queira dar à parte 3 – a hipótese certa. O problema do problema XY está no tempo perdido. Portanto, o foco desta resposta é destacar que gastar tempo dando as partes 1 e 2 com antecedência não é perda de tempo, mas na verdade economiza tempo a longo prazo. Você está certo que esta resposta pode ser generalizada para o Uso de hipótese errada .
- Muitas vezes o OP leva a resposta para Y e executa, sem ler ou perceber que Y era o solução errada para X. Por causa disso, eu ‘ prefiro não dar a eles uma resposta que será mal utilizada. Eu ‘ prefiro arriscar ofendê-los para chegar à solução correta do que contribuir para códigos ruins e lógica falha.
- @Tom That ‘ tudo bem, nesses casos o ” você está pedindo algo que é realmente difícil ” ou ” você não deve ‘ fazer isso, ‘ é uma ideia realmente ruim ” parte do tipo (1) são totalmente apropriados.
- Eu ri alto depois de terminar de ler e verifiquei novamente. Excelente resposta, excelentes observações, excelente liderança por exemplo.
- Eu acrescentaria que o propósito deste site não é apenas ajudar a pessoa que fez a pergunta originalmente, mas também criar um repositório para qualquer outra pessoa quem encontra a pergunta mais tarde. Mesmo que Y não seja a maneira certa de fazer X, ainda pode ser útil por si só em outros contextos, portanto, responder Y também pode ser valioso.
- Na verdade, isso responde à pergunta real de maneira adequada, enquanto outros simplesmente afirmam os fatos
Resposta
(separado da minha outra resposta porque esta tem mais opinião do que explicação)
Se você concorda que o “Problema XY” é apenas outro termo (mais especializado) para “Uso de hipótese de trabalho errada”, como ilustrado e explicado aqui , e semelhante ao “efeito Einstellung” explicado aqui por @Jonathan Benn …
Podemos pensar em termos de algumas situações principais:
-
Rush situação: a hipótese errada é apenas um efeito colateral de linguagem ou simplificação excessiva, que pode ser corrigido pelo usuário com um pouco mais de atenção e investindo mais tempo editando a pergunta.
-
Situação normal: como na Missi ilustrada No quebra-cabeça Square, você não sabe que sua hipótese está errada. Esta é a situação principal a ser discutida aqui (!).
Portanto, vamos nos concentrar na situação normal .
SOLUÇÕES / ATENUADORES
O “problema XY” é um problema válido!
A pergunta do Stack Exchange é mostrar um problema. Se minha pergunta ajudar a mostrar que o o problema real é minha hipótese errada , está tudo bem! É um primeiro passo , e talvez eu não precise de mais perguntas após obter a hipótese correta (e tentando resolver sozinho).
Exemplo. Consulte “ XPath para xml: lang? O teste do eixo próprio do atributo falha “; o problema real é que
@attribute::self
não existe, por isso era uma hipótese errada no título da pergunta.A solução
help/mcve
tem limitaçõesStack Overflow “s
help/mcve
fundamento : “Como criar um M inicial, C ompleto e V erificável E xample “, pode ser usado para evitar o problema XY.Mas o custo da edição (tempo e atenção caros), e a percepção de que é um tipo de poluição em seu texto (um “marketing ruim” para a pergunta), são desvantagens.
É correto também para simplificar o problema e explique com mais foco no ponto.
Prática recomendada
Treine os usuários do Stack Overflow para verificar se a simplificação faz sentido. Algoritmo para uma boa pergunta:
-
Tente criar um MCVE.
-
Se um MCVE não for pr prático, tente pelo menos simplificar.
2.1. Teste, verifique se há inconsistências, simule o leitor … e analise. A sua simplificação produz algo estranho, muda o contexto? Revise para evitar erros.
-
Ouça os comentários sobre sua pergunta e tente esclarecer, tente trabalhar editando a pergunta, se necessário: se houver pessoas comentando, é um observe que você pode investir mais tempo em sua pergunta.
A hipótese errada não é autoevidente, mas quando simplificamos, amplificamos os efeitos errados e se torna mais evidente.
PS: Por outro lado, quando explicamos e mostramos todos os detalhes, todo o contexto e verificamos o ponto real, a montagem do problema (como ao usar
mcve
), as inconsistências também aparecem com mais evidências.Comentários
- É ‘ minha experiência que o MCVE cria mais problemas XY, não menos. Torna uma abstração mais pura removendo o contexto da questão original. Ou seja, o X pode estar contido no contexto da pergunta original, mas o MCVE será construído exclusivamente para expressar Y.
- Obrigado @couling (!). Sim, como metodologia MCVE talvez não seja uma ” prática recomendada “, mas é uma maneira de aplicar ” … explique e mostre todos os detalhes … “. Nosso cérebro funciona melhor depois desse tipo de autoavaliação … Você pode editar e corrigir o texto, é um Wiki.
Resposta
Negociando um contrato sindical …
O problema XY é relevante para a diferença entre a negociação baseada em “juros” (X) e negociação baseada na “posição” (Y).
X = o salário líquido geral do funcionário está estagnado nos últimos anos, enquanto seu custo de vida aumenta continuamente; o funcionário precisa de um salário líquido maior.
Y = escolher “você não aumentará as taxas de estacionamento” como uma colina para morrer / a única “solução” para X que o funcionário está disposto a aceitar.
Visar Y (tomar uma posição) é visar uma solução muito específica e limitada para o problema (X). Ele separa o funcionário do universo de soluções para o problema (X), insistindo que ele só seja resolvido de uma forma muito específica e limitada. Se essa forma (Y) for, por qualquer motivo, questionável para o empregador, então haverá um impasse – um período de tempo em que não há solução para X, em que uma solução deve ser aceitável para ambos os lados.
Se o funcionário pode apontar para X em vez de Y, então o universo de soluções permanece aberto / irrestrito, e o empregador pode ser recrutado para ajudar a encontrar possíveis soluções para X. (Talvez isso acabe por ficar bem com o funcionário deve aumentar as taxas de estacionamento, em troca de um aumento no custo de vida …)
Este paradigma de interesse / posição parece relevante para fazer perguntas no SO, quando OP pede ajuda para fazer seu cargo funcionar. Às vezes, você pode ir para X simplesmente perguntando: “Por que você está tentando fazer isso?”; Mas eu me pergunto se às vezes, mirar no Y não é tão valioso. Quantos de nós já tentamos fazer algo, só para ver se conseguíamos? Alguém aqui executando seu próprio servidor DNS com algum tipo específico de software para isso motivo? 🙂 Pode não ser sua melhor solução para o X, mas ainda é interessante …
-
X
em vez de resolverY