Qual è il problema XY?
Quando si fanno domande, come faccio a riconoscere quando ci sto cadendo? Come faccio a evitarlo?
Torna allindice delle domande frequenti
Commenti
Risposta
Che cosè?
Il problema XY è chiedendo informazioni sulla tua soluzione tentata piuttosto che sul tuo problema effettivo.
Cioè, stai cercando di risolvere il problema X , e pensi che la soluzione Y potrebbe funzionare, ma invece di chiedere informazioni su X quando incontri dei problemi, chiedi informazioni su Y.
Il problema
Questo può portare alla frustrazione delle persone che stanno cercando di aiutarti a risolvere il problema perché nel momento in cui lo chiedi, la soluzione per cui hai bisogno di aiuto potrebbe non avere collegamenti evidenti al problema che stai cercando di risolvere.
Come evitarlo
Per evitare di cadere in questa trappola, includi sempre informazioni su unimmagine più ampia insieme a qualsiasi tentativo di soluzione. Se qualcuno chiede maggiori informazioni, o soprattutto una domanda più specifica, fornisci i dettagli. Se ci sono altre soluzioni che ritieni verranno suggerite e che hai già escluso, non cercare di evitare di ripassarle di nuovo, ma specifica perché le hai escluse, poiché questo fornisce maggiori informazioni sulle tue esigenze e aiuta gli altri a fornire risposte migliori.
Un esempio
Una recente conversazione IRC a scopo illustrativo:
D: Esiste una funzione per restituire una stringa tra due delimitatori?
B: Non capisco cosa intendi, ma dubito che esista già una funzione
C: Dividi e taglia
D: Anche partizione
D: Ho provato la partizione
D: Stavo cercando di utilizzare i integrati per ottenere il numero tra qualcosa di simile in una stringa ” attributo1: 50.223, attributo2: 442.1 ”D: Perché non analizzare semplicemente la stringa?
D: Pensavo che potessero esserci stati alcuni elementi di analisi incorporati
D: pair = [x.strip () per x in s.split (“, “)]; attribs = {k: v for x in coppia per k, v in [x.split (“: “)]}
D: Esistono “alcune librerie, ma i formati semplicistici sono abbastanza facili, se non ti interessano gli errori gestione
D: Modifica dellorigine per utilizzare un formato noto, ad es. json o yaml, è preferibile quando possibileD: Questo codice proviene effettivamente da HTML
D: Ma non so come analizzare Javascript con HTMLParser o come si chiamaD: È semplicemente incorporato nellHTML o in qualche versione alterata dellHTML?
D: È incorporato nellHTML
D: Se è JavaScript (e cioè, ad eccezione delle parentesi graffe esterne mancanti), JSON può probabilmente analizzarlo
Q: Grazie
D: Non lho detto esplicitamente: JSON analizza solo le strutture dei dati, non il codice JS
D: È tutto ciò di cui ho bisogno per analizzare una struttura dati
In realtà il problema riguarda come analizzare le strutture dati JavaScript, non trovare ” una stringa tra due delimitatori “, ma ci vuole un bel po di tempo e intuizione per arrivare al vero problema.
Questo è più facile da fare in una chat completamente interattiva (indipendentemente dalla modalità), ma su un sito SE , dove si rifinisce un po un post, lo si pubblica e poi si hanno 5-30 minuti, o più, prima del feedback, aiuta davvero ad andare nella giusta direzione dallinizio.
Commenti
- I problemi IMO XY a volte sono utili perché le risposte potrebbero aiutare linterlocutore a capire perché la loro soluzione non ‘ funzionerebbe e a comprendere meglio loriginale problema nel processo.
- Il modo più semplice per arrivare al vero problema è di solito chiedere il perché cinque volte.
- Anche se, se inizi con Y invece di X, potresti avere chiedere perché 10 volte (o più, applica i 5 perché a ogni livello?). 🙂
- Perché Y – quella ‘ è la domanda da porre
- Per essere onesti, molte volte gli utenti chiedono di X e la risposta è ” che ‘ è troppo, suddividila in un piccolo esempio ” e così il poster isola la loro tentata soluzione Y e tutti perdono di vista il problema originale.
- A volte sei bloccato con Y. Nel mio primo lavoro ho dovuto modificare un webshop. Il codebase era un misero mix di HTML PHP e js. Cerano 2 modi per risolvere i problemi: Ripeti il tutto (rifiutato dal capo) aggiungi altro nastro. COSÌ non mi ha davvero aiutato lì. ” Come fare a? ” ” Perché dovresti farlo? ” ” Perché devo ” ” Che cosè S / Non farlo / perché stai usando {antipattern}? ” ” Perché devo ”
- @OliverA. Quindi parte della domanda diventa una spiegazione del motivo per cui è necessario eseguire Y. ” Devo fare Y perché legacy / boss / vecchio framework ” allora la domanda diventa più facile da rispondere e più preziosa per tutti.
- @LegoStormtroopr Tranne che molte persone non ‘ lo capiscono. Non ‘ capiscono che a volte non ‘ puoi il lusso di scegliere lapproccio giusto e hai al cerotto il codice esistente e la domanda è chiusa come troppo ristretta o qualcosa del genere …
- Ho fatto solidi tentativi di ridurre tutte le mie domande a un ” Y ” possibile. Non ho alcun interesse a spiegare lintero ambito del mio problema (specialmente quando lavoro su software proprietario closed-source nel mio lavoro), e mi sento come se (escludendo il trattare con coloro che insistono a percorrere la catena con ” why? why? why? “) Posso ottenere una risposta più velocemente incapsulando le mie domande da qualsiasi contesto.
- Dipende sulla conoscenza complessiva dello spazio problematico del richiedente ‘.Sono daccordo con n00n, per quelli più esperti con le alternative, potrebbero aver già escluso tutte le possibili X ‘, e ora X è una costante e vogliono solo risolvere per Y. Il fatto di dover esaminare tutti i possibili X ‘ che ‘ hai già escluso e approfondire la politica dellufficio o larchitettura del sistema esistente. Qualcuno meno esperto potrebbe trarre vantaggio dal fatto che altri ‘ esaminino lalternativa X ‘ e suggeriscano di riconsiderare tale condizione preliminare.
- Il controesempio: Io: cè un modo per cambiare la directory corrente in Java? Altro: In Java non ‘ è necessario farlo. Cosa vuoi fare? Io: (sospiro) OK, ho un jar eseguibile per un programma che ascolta una porta e scambia messaggi. Il jar normalmente si trova in x / bin e la configurazione in x / conf. Quindi, il programma legge la sua configurazione da ../conf. Ora voglio eseguirlo allinterno di un server Tomcat chiamando il metodo principale del programma ‘ io stesso. Ma non ho alcun controllo sulla home directory del server ‘ e ” ../conf” non è un posto accettabile.
- (cont) Quindi mi chiedo se ci sia un modo per cambiare la directory home per un thread. Altro: Oh, capisco. Bene, non puoi ‘ farlo in Java. Io: perché ‘ non me lo hai detto prima? – In quel caso, ho posto la domanda X e mi è stata data risposta alla domanda Y (come usare i file in Java).
- Di solito, non voglio che le persone risolvano il mio problema, rispondi solo alla mia domanda. Può essere piuttosto fastidioso quando le persone cercano di aiutare con il primo piuttosto che con il secondo.
- @NoctisSkytower Ma la maggior parte delle volte ogni risposta dipende dal contesto … D: ” Come posso fare X in C? ” A: ” Ci sono 20 modi diversi, ognuno con le proprie insidie e casi duso, puoi studiarli tu stesso e fare tutti gli errori che gli altri hanno fatto, oppure puoi dirci quale problema vuoi risolvere con questo e noi possiamo darti lapproccio migliore ! ” D: ” Non ‘ voglio una lezione dammi solo una risposta, non ‘ mi interessa! ” – A: ” -.- bye. ”
- I siti SE non programmabili si collegano a questa risposta per spiegare il concetto di problema XY. Un esempio più universale (non di programmazione) sarebbe ancora più utile.
Risposta
Il problema XY, come a volte viene chiamato, è un blocco mentale che porta a enormi quantità di tempo ed energie sprecate, sia da parte di chi chiede aiuto, sia da parte di chi fornisce aiuto. Spesso fa qualcosa del genere
- Lutente vuole fare X.
- Lutente non sa come fare X, ma pensa di poter armeggiare per trovare una soluzione se possono solo riuscire a fare Y.
- Lutente non sa nemmeno come fare Y.
- Lutente chiede aiuto con Y.
- Altri cercano di aiutare lutente con Y, ma sono confusi perché Y sembra uno strano problema da risolvere.
- Dopo molte interazioni e tempo perso, diventa finalmente chiaro che lutente vuole davvero aiuto con X, e che Y non era nemmeno una soluzione adatta per X.
Il problema si verifica quando le persone si bloccano su un approccio e diventano incapaci di fare un passo indietro. Rimanendo aperti ad avere un nuovo guarda il quadro più ampio, queste persone potrebbero trovare la via del ritorno a X e continuare a cercare soluzioni alternative.
Vedi “ XyProblem ” per ulteriori informazioni.
Commenti
- Penso anche che questa risposta sia necessaria oltre alla spiegazione. Ho letto quanto sopra, ho provato a pensare al mio problema attuale (se si tratta di una domanda X o Y) e quando ho letto questo commento, ho ottenuto il ” aha ” momento di comprensione che se avessi pubblicato la mia domanda, avrei chiesto informazioni sulla Y e non sulla X. La reiterazione della mia situazione potrebbe essere un blocco mentale incentrato su come sto risolvendo il problema piuttosto che indicare chiaramente il problema che voglio risolvere è molto utile.
- Penso che sia la ‘ responsabilità degli utenti. ‘ ho incontrato molte volte il problema, che volevo risolvere il problema X, e tutti hanno suggerito Y e Z. Ma se avessi voluto una soluzione per Y o Z, questa è quello che avevo chiesto. Lo trovo un po imbarazzante, non solo perché le risposte che ricevo non ‘ appartengono alla mia domanda, ma anche perché mi sento sottovalutato.Dal momento che mi sfugge intenzionalmente tutti i dettagli che potrebbero indurre in errore i miei rispondenti.
- Questa particolare risposta mi ricorda Maslow ‘ s Hammer
- Non sono daccordo con la risposta. Se hai il problema X e indica Y come soluzione e chiedi aiuto per Y, ciò che ‘ stai facendo è stabilire la tua (probabilmente errata) comprensione del problema. Quando voglio aiutare qualcuno, voglio sapere non solo la sua domanda X, ma comè che sta attualmente pensando (la Y). A volte è ‘ più importante insegnare come pensare che insegnare cosa pensare. E il problema XY mi fornisce importanti indizi su come affrontare il problema.
- In realtà, ammonire i problemi XY è particolarmente ostile ai noob. E (per scegliere, oh, uno): stackoverflow è stato atroce in questo senso negli ultimi anni. ‘ sto sostenendo che gli altri siti SE incentrati sui programmatori non ‘ sono così irreparabilmente sbagliati come hanno fatto.
- @ tgm1024 Non ‘ capisco bene i tuoi commenti; il problema XY non è quando un utente include il proprio processo di pensiero fornendo sia X che Y nella domanda, è ‘ quando lutente non ‘ t include il loro processo di pensiero e fornisce solo la Y perché specialmente in quel caso ‘ è difficile insegnargli a pensare .
- @JiK, o lo identifichi come un problema XY o non ‘ t. Se lo fai, allora ‘ conosci bene la X. Se non ‘ t, allora ‘ è meglio non presumere cosa sia la X, perché la Y presentata potrebbe essere effettivamente una domanda formata in modo valido .
- Lutente non ‘ Non so come fare X, ma pensa di poter armeggiare per trovare una soluzione se riescono a fare Y. Mi sembra che tutti i problemi siano risolti: P. Portato allestremo, tutti dovrebbero iniziare la loro domanda con ” Voglio migliorare la mia vita / il mondo in qualche modo. Sono nato nel 19 … ”
- A volte ‘ ha ragione. Molti anni fa, dopo che il mio DBA Oracle si è rivolto a me (il suo amministratore di sistema) e ha detto, stancamente, ” In qualche modo, da qualche parte, qualcosa è andato storto ” Mi sono fatto una maglietta con quello sopra. È per molti versi un rapporto di errore perfetto perché ‘ non fa alcuna ipotesi che devo poi confutare: inizia con il suo problema e mi consente di approfondire le sue osservazioni e le sue aspettative per vedere dove potrebbe essere la discrepanza con la realtà.
- @ tgm1024 It ‘ su come evitare di perdere molto tempo per sia il richiedente che per chi ha risposto. Se sei a conoscenza degli avvertimenti di una Y possibilmente valida, dovresti includere tali informazioni nella tua domanda. Si eviterà ulteriormente di chiedere X. Se ‘ non conosci gli avvertimenti che richiedono X è probabilmente esattamente ciò di cui hai bisogno perché una soluzione per Y non ti aiuterà molto. Sarebbe poco amichevole non indirizzarli verso la soluzione corretta e lasciarli invece con una soluzione scadente.
- @trixn, io ‘ non sono sicuro di dove siamo disaccordo. Tuttavia, — > Se hai il problema X e indica Y come soluzione e chiedi aiuto per Y, ciò che ‘ re fare è stabilire la tua (probabilmente difettosa) comprensione del problema. Quando voglio aiutare qualcuno, voglio sapere non solo la sua domanda su X, ma anche comè che sta pensando attualmente (la Y). A volte è ‘ più importante insegnare a pensare che insegnare cosa pensare. E il loro problema XY appropriato e prezioso mi fornisce importanti indizi su come affrontare il fare proprio questo.
- @ tgm1024 Questo è letteralmente quello che hai già detto prima. Il punto era sulla tua affermazione che ammonire i problemi di XY è particolarmente ostile. Ovviamente ‘ è anche una questione di come esprimi il sospetto che una domanda possa essere un problema XY. Ma in generale non sono ‘ daccordo sul fatto che indirizzare un richiedente verso questo non è amichevole in quanto potrebbe essere ciò di cui ha effettivamente bisogno. Questo ‘ è il motivo per cui di solito chiedo maggiori informazioni sul caso duso. Se Y è una domanda di facile risposta, di solito rispondo comunque con una nota che potrebbe non essere comunque la soluzione desiderata.
- @trixn, ovviamente puoi indirizzare qualcuno nella giusta direzione, e ovviamente puoi guidare qualcuno verso un nuovo modo di vedere qualcosa.Tuttavia, iniziare con lidea che la formazione della domanda stessa sia in qualche modo sbagliata è ciò con cui ‘ sono in forte contrasto. Ad esempio, guarda la citazione iperbolica nella 71 risposta votata da Jonathan Benn: ” Specifico per Q & A, la perniciosità di un Il problema XY deriva dal fatto che è frustrante per tutte le persone coinvolte. ” Questa è semplicemente una sciocchezza. La domanda XY è preziosa. ‘ è frustrante solo per le persone che desiderano che sia così.
- Ottima spiegazione. RE: ” e che Y non era ‘ nemmeno una soluzione adatta per X “, Penso che a volte Y possa essere una soluzione per X. Ma non è una soluzione naturale o pratica.
- Imo questo è quello che dovrebbe essere in cima. Nessuna offesa in cima alla risposta, ma prima io lho letto e mi ha fatto grattare la testa e poi sono sceso a vedere questo e la risposta mi è diventata chiarissima.
Risposta
Un problema XY sembra essere un sottoinsieme dell effetto Einstellung , in cui un risolutore di problemi rimane bloccato su una particolare soluzione e non è in grado di tornare indietro mentalmente per vedere soluzioni potenzialmente superiori. Questo fenomeno psicologico colpisce tutti, principianti ed esperti allo stesso modo.
“ Perché la tua prima idea può renderti cieco a una migliore ” spiega un esempio dagli scacchi in cui una persona vince con un compagno soffocato a 5 mosse in una partita. Nella partita successiva, lo stesso giocatore non riesce a vedere un compagno di 3 mosse più veloce perché è bloccato sullidea di un compagno di 5 mosse.
Specifico per Q & R, la perniciosità di un problema XY deriva dal fatto che è frustrante per tutte le persone coinvolte:
- La persona che pone la domanda pone la domanda sbagliata (che è correlato alla loro tentata soluzione piuttosto che al problema originale), e quindi trova difficile chiarire la domanda perché sono bloccati sulla propria soluzione. Le risposte proposte sono insoddisfacenti perché non riguardano come implementare la soluzione dellautore.
- Le persone che rispondono alla domanda trovano frustrante perché la soluzione proposta non ha senso per loro poiché si stanno avvicinando problema da una nuova prospettiva e (presumibilmente) non sono influenzati dalleffetto Einstellung, e trovano difficile ottenere il poster originale per chiarire la loro domanda.
Commenti
- Interessante come la descrizione
Einstellung effect
sia basata su un errore ovvio. Luchin stava sperimentando come le persone avrebbero dedotto il problema dalla sua descrizione incompleta e ambigua (era chiedendo lottimizzazione per la latenza o lottimizzazione per la velocità effettiva?). Tuttavia si è illuso che presumibilmente stesse ancora sperimentando ” come le persone arrivano a soluzioni “. Forse è una cosa referenziale. Luchin era così concentrato sul suo interesse, che non si è accorto quando è passato a un problema molto diverso. - La mia fonte era Scientific American, se obietti puoi occupartene;)
- Penso che una migliore un esempio dagli scacchi sarebbe qualcosa come un giocatore concentrato sul tentativo di ottenere uno scacco matto complicato con materiale insufficiente, trascurando il fatto di avere una pedina che potrebbe essere regina.
Risposta
Il problema del Puzzle quadrato mancante è un buon esempio. Illustra un processo semplice e universale di problemi / domande / soluzioni, in cui “qualche illusione” causa complicazioni.
Ci sono un problema evidente — il 1 × 1 buco nella seconda cifra —, ma la soluzione è evidente solo dopo che sappiamo (come un uovo di Colombo) … Tutte le persone, esperti e non, accetta che si sia verificato un problema.
-
utente normale : pensa che “ci sono due cifre equivalenti , i” triangoli totali “in una griglia perfetta 13 × 5 .. . “, seguito dalla domanda:
- problema
Y
: “Perché il secondo triangolo equivalente ha un buco?” .
- problema
-
utente esperto : pensa qualcosa come “oops , sono figure simili , ma non “perfettamente equivalenti” “, seguita dalla domanda:
- problema
X
: “Come dimostrare che non sono equivalenti perfetti?” .
- problema
Lintelligente esperto di geometria pensa in termini di “geometrie simili che non sono” equivalenti perfetti “.
Lutente normale pensa , erroneamente, in termini di congruenza esatta. Quindi, luso di ipotesi sbagliata , produce Y
domande.
Il” problema XY “come specializzazione del” comportamento di ipotesi errate “
Vuoi risolvere la vera domanda – X
e pensi in termini di Y
-contesto e prova per utilizzare la domanda: Y
. Invece di chiedere informazioni sul contesto X
, chiedi informazioni sul contesto Y
.
(come @Gnome notato sopra , ma usando altre parole)
Quindi, “XY Problem” è solo un altro termine (più specializzato) per dire “Uso di ipotesi di lavoro errata ” .
Commenti
- Per favore rivedi il tuo voto negativo, ho modificato per separare lopinione personale da questa forma più generica e forse interessante per spiegare ” cosè “.
- Capisco il significato della tua risposta e tu ‘ sei colui che risponde alla domanda con illustrazioni animate. Se la mia reputazione (in questa meta community) mi permette di votare, lo voterò a favore.
- Questa risposta illustra un tipico caso duso , quando il ” programmatore di pensiero imperativo ” fa una domanda sul linguaggio funzionale … La soluzione suggerita : chiedi al livello più alto.
- scusa, perché il secondo triangolo equivalente ha un buco?
- Ciao @KorayTugay, la tua domanda è fuori portata (è un problema classico, quindi puoi usare le spiegazioni classiche, vedi il mio link di Wikipedia!). PS: mi piace vedere il buco come la differenza , perché i triangoli sono simili e hanno quasi la stessa area, ma non esattamente la stessa area, quindi puoi costruire il buco dalla piccola striscia della differenza geometrica.
- @koraytugay guarda il punto in cui i triangoli rosso e blu si toccano quando lanimazione si azzera .. diventa chiaro che il triangolo blu è ” più ripida ” del rosso, quindi quando il triangolo blu è in basso lipotenusa è ” convessa ” e quando in alto è ” concavo “. Questa ” piegatura ” dellipotenusa dà luogo a un quadrato ‘ di valore di differenza nellarea
Risposta
Evitare il problema XY
Io sostengo che non puoi evitarlo. Non senza semplicemente buttare giù i requisiti del tuo programma a SO e chiedere loro di fare il tuo design per te non consigliato) .
Lo dico perché il processo di progettazione di tutto il software si basa su un insieme iniziale di requisiti “A”. Da lì dici “Posso ottenere A se faccio B e C “. Da lì dici” Posso ottenere B se faccio D ed E e posso ottenere C se faccio F e G “. E questo continua fino al punto in cui diciamo che” Posso ottenere X se faccio Y “. Di solito lo facciamo così velocemente che non pensiamo nemmeno al processo.
Quindi il problema principale con il problema XY è che Y non è possibile, ma non sai quanto del tuo design per rilassarsi a g et torna alla X che è possibile. Di solito non sai nemmeno che Y è impossibile senza chiederlo. Non sai cosa non sai. Quindi è inevitabile
Fare domande in cui rischi di cadere in XY
La cosa migliore che puoi fare per risolvere il problema XY è proteggere contro di essa quando fai domande. Poni sempre la stessa domanda ma fornisci quante più informazioni pertinenti possibili:
- Esponi il tuo problema
- Indica cosa stanno cercando di ottenere
- Indica come si inserisce nel tuo progetto più ampio
Questo aiuterà le persone a identificare che è XY e ti aiuterà molto più rapidamente.
IMPORTANTE: dare risposte ai problemi XY
A mio parere il problema più grande con Le domande XY sono le risposte (frequentemente) inutili che provocano. Non smetteremo mai di porre queste domande, quindi la cosa migliore è capire come possiamo rispondere rapidamente ed efficacemente.
Ironia della sorte, molte di queste risposte e risposte negative sono date da coloro che vogliono essere i più utili e possono essere fornite da alcune delle persone più rispettabili del forum / SO.
Ho scoperto un metodo per rispondere a queste domande che sembra aiutare ad aggirare la psicologia associata ai problemi XY e portare lOP di una domanda a una soluzione funzionante. Il metodo richiede un po più di tempo per rispondere in la prima istanza ma chiude il ciclo di domande / risposte molto più rapidamente.
Suggerisco di rispondere alla domanda in tre parti e di fornirle nel seguente ordine.
-
Rispondi alla domanda dellOP . Anche se lOP probabilmente ha bisogno di qualcosaltro, non trascurare mai di rispondere alla domanda che ha effettivamente posto per prima e non alla domanda a cui pensi di voler rispondere. In alcuni casi la risposta potrebbe essere “Y non è possibile” . Troppo spesso vedo risposte (commenti) che chiedono “perché ne hai bisogno?” . Questo non dà nulla allOP. Se dici “Questo” sarà davvero difficile. Spiega perché ne hai bisogno, potremmo essere in grado di aiutarti “ poi in molti casi un OP prenderà semplicemente la ” Y è davvero difficile “ e tornerà al tavolo da disegno .. . Va bene perché hai risposto alla loro domanda e potrebbero tornare con la domanda X.
-
Discuti la soluzione tentata dallOP “. Questo bit è complicato e richiede un po di riflessione. Ma non posso sottolineare quanto sia importante. Se lOP ha chiesto Y e pensi che voglia X, dopo aver risposto alla sua domanda (1) continua a parlare di Y (NON X). Per cosa dovrebbe essere usato Y? Come non è applicabile a X? Limportante è continuare a parlare della domanda, ma passare dal rispondere al fornire informazioni utili. Perché dopo tutto questo è ciò di cui pensi abbia bisogno lOP. Informazioni utili e non la risposta alla loro domanda.
-
Risolvi X Questo è ciò che non vedevi lora di fare ed è il punto centrale della tua risposta, dopotutto. Hai incontrato lOP alle loro condizioni e hai risposto alla loro domanda. Li hai aiutati a capire gli errori della loro domanda e perché risolvere Y non è la cosa da fare … quindi ora sei completamente giustificato nello spiegare una soluzione a X.
La maggior parte delle persone è qui per imparare, quindi le parti 1 e 2 di questa risposta sono importanti quanto la parte 3. Ma troppo spesso la parte 3 viene fornita su di essa “s proprio ed è estremamente frustrante e paternalistico per lOP per non parlare di molti OP non accetteranno la risposta.
Dare questa risposta evita anche imbarazzo quando pensi che lOP abbia un problema XY quando in realtà loro Non farlo. Tutto quello che hai fatto è fornire qualche informazione in più. Dare semplicemente la parte 3 rischia di non aver letto la domanda.
Per inciso. Leggi di nuovo la domanda e leggi questa risposta … noti le tre parti?
Commenti
- As ” XY Problem ” è una sorta di ” Uso sbagliato ipotesi ” , la community di Stackoverflow deve aiutarti a mostrare lipotesi giusta … Questo è il fulcro del tuo ” Dare risposte ai problemi XY “?
- @PeterKrauss In un certo senso. Questo è più un presupposto (sono daccordo che la comunità dovrebbe) . Presumo che qualcuno che risponde alla domanda voglia fornire la parte 3: lipotesi giusta. Il problema del problema XY sta nel tempo sprecato. Quindi lobiettivo di questa risposta è evidenziare che dedicare tempo a dare le parti 1 e 2 in anticipo non è tempo sprecato, ma in realtà fa risparmiare tempo a lungo termine. Hai ragione che questa risposta è generalizzabile all Uso di ipotesi sbagliate .
- Troppo spesso lOP prende la risposta a Y e corre, senza leggere o rendersi conto che Y era il soluzione sbagliata a X. Per questo motivo, ‘ preferisco non fornire loro una risposta che verrà utilizzata in modo improprio. ‘ rischierei piuttosto di offenderli per arrivare alla soluzione corretta piuttosto che contribuire ulteriormente sia al codice sbagliato che alla logica difettosa.
- @Tom That ‘ va bene, in quei casi ” stai chiedendo qualcosa di veramente difficile ” o ” non dovresti ‘ farlo, ‘ è una pessima idea ” parte del tipo (1) sono del tutto appropriate.
- Ho riso ad alta voce dopo aver finito di leggere questo e ricontrollato. Ottima risposta, eccellenti osservazioni, eccellente leadership per esempio.
- Aggiungerei che lo scopo di questo sito non è solo quello di aiutare la persona che ha inizialmente posto la domanda, ma anche di creare un repository per chiunque altro chi trova la domanda più tardi. Anche se Y non è il modo giusto per fare X, potrebbe comunque essere utile di per sé in altri contesti, quindi anche rispondere Y può essere utile.
- Questo in realtà risponde correttamente alla domanda effettiva, mentre altri si limitano semplicemente a dichiarare fatti
Risposta
(separato dallaltra mia risposta perché questa ha più unopinione che una spiegazione)
Se sei daccordo che il “Problema XY” è solo un altro termine (più specializzato) per “Uso di ipotesi di lavoro errate”, come illustrato e spiegato qui e simile all “effetto Einstellung” spiegato qui da @Jonathan Benn …
Possiamo pensare in termini di alcune situazioni principali:
-
Rush situazione: lipotesi sbagliata è solo un effetto collaterale del linguaggio o delleccessiva semplificazione, che può essere corretto dallutente con un po più di attenzione e investendo più tempo per modificare la domanda.
-
Situazione normale: come nella illustrato Missi ng Square puzzle, non sai che la tua ipotesi è sbagliata. Questa è la situazione principale di cui discutere qui (!).
Quindi concentriamoci sulla situazione normale .
SOLUZIONI / ATTENUATORI
Il “problema XY” è un problema valido!
La domanda di Stack Exchange serve a mostrare un problema. Se la mia domanda aiuta a dimostrare che il il vero problema è la mia ipotesi sbagliata , va bene! È un primo passo , e forse non avrò bisogno di altre domande dopo aver ottenuto l ipotesi corretta (e cercando di risolverlo da solo).
Esempio. Vedi “ XPath per xml: lang? Il test dellattributo self axis non riesce “; il vero problema è che @attribute::self
non esiste, quindi era unipotesi sbagliata sul titolo della domanda.
La soluzione help/mcve
presenta delle limitazioni
Stack Overflow “s help/mcve
rationale : “Come creare un M inimale, C omplete e V erificabile E xample “, può essere utilizzato per evitare il problema XY.
Ma il costo di modifica (tempo e attenzione costosi) e la percezione che sia una sorta di inquinamento nel testo (un “cattivo marketing” per la domanda), sono aspetti negativi.
È corretto anche semplificare il problema e spiegare con maggiore attenzione sul punto.
Best practice
Formare gli utenti di Stack Overflow per verificare se la semplificazione ha senso. Algoritmo per una buona domanda:
-
Prova a creare un MCVE.
-
Se un MCVE non è pr attico, cerca almeno di semplificare.
2.1. Prova, verifica la presenza di incongruenze, simula il lettore … e rivedi. La tua semplificazione produce qualcosa di strano, cambia il contesto? Rivedi per evitare errori.
-
Ascolta i commenti sulla tua domanda e prova a chiarire, prova a lavorare modificando la domanda se necessario: se ci sono persone che commentano, è un nota che puoi investire più tempo nella tua domanda.
Lipotesi sbagliata non è ovvia, ma quando semplifichiamo, amplifichiamo gli effetti sbagliati e diventa più evidente.
PS: Daltra parte, quando spieghiamo e mostriamo tutti i dettagli, tutto il contesto e controlliamo il punto reale, lassemblaggio del problema (come quando si usa mcve
), le incongruenze si mostrano anche con ulteriori prove.
Commenti
- ‘ è la mia esperienza che il MCVE crea più problemi XY non meno. Rende unastrazione più pura spogliando il contesto della domanda originale. Questa è la X potrebbe essere contenuta nel contesto della domanda originale, ma lMCVE sarà costruito esclusivamente per esprimere Y.
- Grazie @couling (!). Sì, poiché la metodologia MCVE forse non è una ” best practice “, ma è un modo per applicare ” … spiega e mostra tutti i dettagli … “. Il nostro cervello funziona meglio dopo questo tipo di auto-revisione … Puoi modificare e correggere il testo, è un Wiki.
Risposta
Negoziare un contratto sindacale …
Il problema XY è rilevante per la differenza tra la contrattazione basata sugli “interessi” (X) e la contrattazione basata sulla “posizione” (Y).
X = la retribuzione complessiva da portare a casa del dipendente è rimasta stagnante negli ultimi anni, mentre il costo della vita aumenta continuamente; il dipendente ha bisogno di più retribuzione da portare a casa.
Y = scegliere “non aumenterai le tariffe di parcheggio” come una collina su cui morire / lunica “soluzione” a X che il dipendente è disposto ad accettare.
Mirare a Y (prendere una posizione) è mirare a una soluzione molto specifica e limitata al problema (X). Esclude il dipendente dalluniverso delle soluzioni al problema (X) insistendo sul fatto che venga risolto solo in un modo molto specifico e limitato. Se in questo modo (Y) è, per qualsiasi motivo, discutibile per il datore di lavoro, allora ci sarà uno stallo – un periodo di tempo in cui non cè soluzione a X, in cui una soluzione deve essere accettabile per entrambe le parti.
Se il dipendente può mirare a X anziché a Y, luniverso delle soluzioni rimane aperto / illimitato e il datore di lavoro può essere reclutato per aiutare a trovare possibili soluzioni a X (forse andrà bene con il dipendente ad aumentare le tariffe di parcheggio, in cambio di un aumento del costo della vita …)
Questo paradigma di interesse / posizione sembra rilevante per porre domande su SO, quando OP chiede aiuto per far funzionare la propria posizione. A volte puoi tagliare a X semplicemente chiedendo: “Perché stai cercando di fare questo?”; Ma mi chiedo se a volte, mirare a Y non sia altrettanto prezioso. Quanti di noi hanno mai provato a fare qualcosa, solo per vedere se potevamo? Chiunque qui abbia il proprio server DNS con qualche tipo specifico di software proprio per questo motivo? 🙂 Potrebbe non essere la tua migliore soluzione per X, ma è comunque interessante …
X
invece di risolvereY