Na czym polega problem XY?

Na czym polega problem XY?

Kiedy zadaję pytania, jak rozpoznać, kiedy się w to wpadam? Jak mam uniknąć tego?

Powrót do indeksu FAQ

Komentarze

  • Zobacz post PerlMonks na ten sam temat.
  • smutny przykład problemu XY: stackoverflow.com/questions/2691018/… wyłączenie odpowiedzialności I ' m stronniczy, ponieważ twierdzi, że dostrzega X zamiast rozwiązywać Y
  • Rosyjskie tłumaczenie ru.stackoverflow.com
  • Dostępne jest również ' s Japońskie tłumaczenie dla ja.stackoverflow.com
  • Porównaj z ” wyzwaniami ramek „, które są obecnie zniechęcane lub zabronione na wielu SE witryny: interpersonal.meta.stackexchange.com/questions/1495/…
  • Odpowiednia sekcja w ” Jak zadawać pytania w inteligentny sposób „.
  • @ Sridhar-Sarnobat W twojej analogii pytanie X → Y wyglądałoby mniej więcej tak: ” Jak można zahamować wzrost typów komórek xyz poprzez zmniejszenie poziomu białka tuv w krwiobiegu pacjenta '? „, ponieważ myślisz to jedyne możliwe lekarstwo na raka.
  • Hmmmm, więc ' mówisz, że jest to zbyt szczegółowe pytanie i powinienem dodać, że ” prawdziwym ” celem jest wyleczenie raka. Jeśli tak, słuszna uwaga. Chociaż w rzeczywistości przeciwny problem polega na tym, że pytania są zamykane jako zbyt szerokie.
  • Czy możemy przyznać, że jest to najgorsza możliwa nazwa tego problemu? Nazwa nie ma dosłownie nic wspólnego z tym, co opisuje. Na przykład, jeśli ktoś powie coś takiego jak ” postaw wózek przed koniem „, nawet jeśli ' nigdy wcześniej tego nie słyszałem, zanim przynajmniej mieli wskazówkę, że coś jest do tyłu (konie ciągną, a nie pchają). Nie ' nie mam jednak dobrych pomysłów na alternatywną nazwę.
  • Czasami warto rozważyć również sprawy z szerszego kontekstu, biorąc pod uwagę, czy co ' postęp / wynik to w rzeczywistości sensowne rozwiązanie

Odpowiedź

Co to jest?

XY to problem pytasz o próbowane rozwiązanie zamiast o rzeczywisty problem.

To znaczy, że próbujesz rozwiązać problem X , i myślisz, że rozwiązanie Y zadziałałoby, ale zamiast pytać o X , kiedy napotkasz kłopoty, pytasz o Y.

Problem

Może to prowadzić do frustracji ludzi, którzy próbują pomóc Ci rozwiązać problem, ponieważ zanim o to zapytasz, rozwiązanie, z którym potrzebujesz pomocy, może nie mieć żadnych oczywistych powiązań do problemu, który próbujesz rozwiązać.

Jak tego uniknąć

Aby uniknąć wpadnięcia w tę pułapkę, zawsze dołączaj informacje o szerszym obrazie wraz z próbami rozwiązania. Jeśli ktoś prosi o więcej informacji, a zwłaszcza o bardziej szczegółowe pytanie, podaj szczegóły. Jeśli są inne rozwiązania, które Twoim zdaniem zostaną zasugerowane i które już wykluczyłeś, nie próbuj unikać ich ponownego omawiania – zamiast tego powiedz, dlaczego je wykluczyłeś, ponieważ daje to więcej informacji o Twoich wymaganiach i pomaga innym udzielić lepszych odpowiedzi.

Przykład

Ostatnia rozmowa IRC dla ilustracji:

P: Czy istnieje funkcja zwracająca ciąg między dwoma ogranicznikami?

B: Nie rozumiem, co masz na myśli, ale wątpię, czy istnieje już funkcja

C: Podziel i pokrój w plasterki

D: Również partycja

P: Próbowałem partycji
P: Próbowałem użyć wbudowanych funkcji, aby uzyskać numer między czymś takim w ciągu znaków ” attribute1: 50.223, attribute2: 442.1 ”

D: Dlaczego po prostu nie przeanalizować ciągu?

P: Myślałem, że mogło być coś wbudowanego w parsowanie

D: pairs = [x.strip () for x in s.split („, „)]; atrybuty = {k: v dla xw parach dla k, v w [x.split („: „)]}
D: Jest kilka bibliotek, ale uproszczone formaty są wystarczająco łatwe – jeśli nie przejmujesz się błędami obsługa
D: Zmiana źródła na dobrze znany format, np. json lub yaml, najlepiej jeśli to możliwe

P: Ten kod faktycznie pochodzi z HTML
P: Ale nie wiem, jak analizować Javascript za pomocą HTMLParser czy jakkolwiek to się nazywa

D: Czy jest tylko osadzony w HTML, czy w jakiejś zniekształconej wersji HTML?

P: Jest osadzony w kodzie HTML

D: Jeśli jest to JavaScript (to znaczy, z wyjątkiem brakujących nawiasów zewnętrznych), JSON prawdopodobnie może go przeanalizować.

P: Dzięki

D: Nie powiedziałem tego wprost: JSON analizuje tylko struktury danych, a nie kod JS

P: To wszystko, czego potrzebuję, to struktura danych.

Problem polega tak naprawdę na tym, jak analizować struktury danych JavaScript, a nie znaleźć ” ciągu między dwoma separatorami „, jednak dotarcie do prawdziwego problemu zajmuje trochę czasu i intuicji.

Jest to łatwiejsze do zrobienia na w pełni interaktywnym czacie (niezależnie od trybu), ale na stronie SE , gdzie trochę dopracowujesz post, opublikujesz go, a następnie masz 5-30 minut lub dłużej, zanim otrzymasz informację zwrotną, naprawdę pomaga to od samego początku zmierzać we właściwym kierunku.

Komentarze

  • Problemy IMO XY są czasami przydatne, ponieważ odpowiedzi mogą pomóc pytającemu zrozumieć, dlaczego ich rozwiązanie nie ' nie działa i lepiej zrozumieć oryginał problem w trakcie.
  • Najłatwiejszym sposobem dojścia do prawdziwego problemu jest zwykle pięciokrotne zapytanie „Dlaczego”.
  • Jeśli jednak zaczynasz od Y zamiast X, być może zapytać, dlaczego 10 razy (lub więcej, zastosuj 5 dlaczego na każdym poziomie?). 🙂
  • Dlaczego Y – to ' jest pytaniem, które należy zadać
  • Szczerze mówiąc, wiele razy pytający pytają o X i odpowiedź brzmi „, że ' jest za dużo, podziel ją na mały przykład ” i tak plakat wyodrębnia próbę rozwiązania Y i wszyscy tracą z oczu pierwotny problem.
  • Coś, z czym utknąłeś Y. W mojej pierwszej pracy musiałem zmodyfikować sklep internetowy. Podstawą kodu była zgniła mieszanka html PHP i js. Były 2 sposoby rozwiązania problemów: Ponów całość (odrzucona przez szefa), dodaj więcej taśmy. WIĘC nie pomogło mi tam. ” Jak to zrobić? ” ” Dlaczego miałbyś to zrobić? ” ” Ponieważ muszę ” ” Co to jest T / Nie rób tego / dlaczego używasz {antipattern}? ” ” Ponieważ muszę ”
  • @OliverA. Wtedy część pytania staje się wyjaśnieniem, dlaczego musisz zrobić Y. ” Muszę zrobić T, ponieważ starsza / boss / stara struktura ” wtedy odpowiedź na pytanie staje się łatwiejsza i bardziej wartościowa dla wszystkich.
  • @LegoStormtroopr Z wyjątkiem wielu ludzi ' tego nie rozumie. Nie ' nie rozumieją, że czasami ' nie masz luksusu wyboru odpowiedniego podejścia i po prostu masz aby wspomóc istniejący kod, a pytanie jest zamknięte jako zbyt wąskie czy coś …
  • Podjąłem solidne próby sprowadzenia wszystkich moich pytań do ” Y „, jak to możliwe. Nie interesuje mnie opisywanie całego zakresu mojego problemu (zwłaszcza podczas pracy nad zastrzeżonym oprogramowaniem o zamkniętym kodzie źródłowym w mojej pracy) i mam ochotę (pomijając kontakt z tymi, którzy nalegają na przejście łańcucha w górę z ” dlaczego? dlaczego? dlaczego? „) Mogę uzyskać odpowiedź szybciej, jeśli moje pytania są oddzielone od całego kontekstu.
  • To zależy na temat ogólnej wiedzy pytającego ' na temat obszaru problemu.Zgadzam się z n00n, bardziej doświadczeni w alternatywach mogli już wykluczyć wszystkie możliwe X ' s, a teraz X jest stałą i chcą po prostu rozwiązać dla Y. To odwraca uwagę od pytania, że trzeba przejść przez wszystkie możliwe X ' s, które ' już wykluczyłeś, oraz zagłęb się w politykę biurową lub istniejącą architekturę systemu. Ktoś mniej doświadczony może skorzystać na przejrzeniu innej ' alternatywy X ' i zasugerowaniu ponownego rozważenia tego warunku wstępnego.
  • Kontrprzykład: Ja: Czy istnieje sposób na zmianę bieżącego katalogu w Javie? Inne: w Javie nie ' nie musisz tego robić. Co chcesz robić? Ja: (wzdycha) OK, mam wykonywalny jar dla programu, który nasłuchuje portu i wymienia wiadomości. Jar normalnie znajduje się w x / bin, a konfiguracja w x / conf. Tak więc program czyta swoją konfigurację z ../conf. Teraz chcę to uruchomić na serwerze tomcat, wywołując samodzielnie główną metodę programu '. Ale nie mam kontroli nad katalogiem domowym serwera ' i ” ../conf” nie jest akceptowalnym miejscem.
  • (cd.) Zastanawiam się więc, czy istnieje sposób na zmianę katalogu domowego dla jednego wątku. Inne: Och, rozumiem. Cóż, możesz ' zrobić to w Javie. Ja: Dlaczego nie ' nie powiedziałeś mi tego wcześniej? – W takim przypadku zadałem pytanie X i otrzymałem odpowiedź na pytanie Y (jak używać plików w Javie).
  • Zwykle nie chcę, aby ludzie rozwiązali mój problem, po prostu odpowiedz na moje pytanie. Może to być dość denerwujące, gdy ludzie próbują pomóc w pierwszym, a nie drugim.
  • @NoctisSkytower Ale w większości przypadków każda odpowiedź jest zależna od kontekstu … P: ” Jak mogę zrobić X w C? ” A: ” Istnieje 20 różnych sposobów, każdy z własnymi pułapkami i przypadkami użycia, możesz je samemu przestudiować i popełnić wszystkie błędy popełnione przez innych, lub możesz nam powiedzieć, jaki problem chcesz rozwiązać, a my możemy zaoferować Ci najlepsze podejście ! ” P: ” Nie ' nie chcę wykład, daj mi jakąś odpowiedź, nie ' nie obchodzi mnie! ” – A: ” -.- pa. ”
  • Nieprogramujące strony SE zawierają odnośniki do tej odpowiedzi, aby wyjaśnić koncepcję problemu XY. Bardziej uniwersalny (nie programistyczny) przykład byłby jeszcze bardziej pomocny.

Odpowiedź

Problem XY, jak to się czasem nazywa, jest blokadą psychiczną, która prowadzi do olbrzymich ilości zmarnowanego czasu i energii, zarówno po stronie osób proszących o pomoc, jak i tych, którzy ją udzielają. Często wygląda to tak.

  • Użytkownik chce zrobić X.
  • Użytkownik nie wie, jak zrobić X, ale myśli, że może znaleźć rozwiązanie, jeśli mogą po prostu poradzić sobie z Y.
  • Użytkownik też nie wie, jak to zrobić.
  • Użytkownik prosi o pomoc z Y.
  • Inni próbują pomóc użytkownikowi z Y, ale są zdezorientowani, ponieważ Y wydaje się dziwnym problemem do rozwiązania.
  • Po wielu interakcjach i zmarnowanym czasie w końcu staje się jasne, że użytkownik naprawdę chce pomocy z X i że Y nie było nawet odpowiednim rozwiązaniem dla X.

Problem pojawia się, gdy ludzie utkną na jednym podejściu i nie będą mogli się cofnąć. Pozostając otwarci na nowy spójrz na szerszy obraz, te osoby mogą znaleźć drogę z powrotem do X i kontynuować poszukiwanie alternatywnych rozwiązań.

Zobacz „ XyProblem ” dla więcej informacji.

Komentarze

  • Myślę też, że ta odpowiedź jest potrzebna dodatek do wyjaśnienia. Przeczytałem powyższe, spróbowałem pomyśleć o moim obecnym problemie (czy jest to pytanie X czy Y), a kiedy przeczytałem ten komentarz, otrzymałem ” aha ” moment zrozumienia, że gdybym opublikował swoje pytanie, zapytałbym o Y, a nie o X. Powtórzenie mojej sytuacji może być mentalną blokadą skoncentrowaną na tym, jak rozwiązuję problem, a nie wyraźne określenie problemu, który chcę rozwiązać, jest bardzo pomocny.
  • Myślę, że odpowiedzialność za ' spoczywa na użytkownikach. ' wielokrotnie napotykałem problem, że chciałem rozwiązać problem X i wszyscy zasugerowali Y i Z. Ale gdybym szukał rozwiązania dla Y lub Z, to jest o co prosiłem. Uważam to za trochę zawstydzające, nie tylko dlatego, że odpowiedzi, które otrzymuję, nie ' nie należą do mojego pytania, ale także dlatego, że czuję się niedoceniany.Od tego czasu celowo pomijam wszelkie szczegóły, które mogłyby zmylić moich respondentów w ten zły sposób.
  • Ta konkretna odpowiedź przypomina mi młotek Maslowa ' s
  • Nie zgadzam się z odpowiedzią. Jeśli masz problem X i podasz Y jako rozwiązanie i poprosisz o pomoc dla Y, ' robisz, aby ustalić (prawdopodobnie błędne) zrozumienie problemu. Kiedy chcę komuś pomóc, chcę wiedzieć nie tylko ich pytanie X, ale także, jak to jest, że obecnie myśli (Y). Czasami ' jest ważniejsze, aby nauczyć jak myśleć niż uczyć co myśleć. A problem XY daje mi ważne wskazówki, jak podejść do tego.
  • Właściwie napominanie problemów XY jest szczególnie nieprzyjazne dla noobów. I (do wyboru, och, jeden): przepełnienie stosu było pod tym względem okropne w ciągu ostatnich kilku lat. W ' twierdzę, że inne strony SE zorientowane na programistów nie ' nie są tak nieodwracalne jak oni.
  • @ tgm1024 Nie ' nie rozumiem twoich komentarzy; problem XY nie występuje, gdy użytkownik uwzględnia swój proces myślenia, podając w pytaniu zarówno X, jak i Y, ale ' jest wtedy, gdy użytkownik nie ' t uwzględnia ich proces myślenia i podaje tylko Y , ponieważ szczególnie w tym przypadku ' trudno jest nauczyć ich myślenia .
  • @JiK, albo identyfikujesz to jako problem XY, albo nie ' t. Jeśli tak, to ' dobrze znasz X. Jeśli nie ' t, to ' d lepiej nie zakładać, czym jest X, ponieważ przedstawione Y może być właściwie sformułowanym pytaniem .
  • Użytkownik nie ' Nie wiem, jak zrobić X, ale uważa, że mogą znaleźć rozwiązanie, jeśli tylko uda im się zrobić Y. Wygląda na to, że wszystkie problemy są dla mnie rozwiązane: P. W ostatecznym rozrachunku każdy powinien zacząć swoje pytanie od ” Chcę w jakiś sposób poprawić swoje życie / świat. Urodziłem się w 19 … ”
  • Czasami ' ma rację. Wiele lat temu, gdy mój Oracle DBA zwrócił się do mnie (swojego administratora systemu) i powiedział ze znużeniem ” Gdzieś coś poszło nie tak ” Zrobiłem sobie koszulkę z tym na sobie. Pod wieloma względami jest to doskonały raport o błędzie, ponieważ nie ' nie zawiera żadnych założeń , które muszę następnie obalić: zaczyna się od jego i pozwala mi przeanalizować jego obserwacje i jego oczekiwania, aby zobaczyć, gdzie może być niezgodność z rzeczywistością.
  • @ tgm1024 ' o unikaniu marnowania dużo czasu zarówno pytającym, jak i odpowiadającym. Jeśli znasz zastrzeżenia dotyczące prawdopodobnie ważnego Y, powinieneś zawrzeć te informacje w swoim pytaniu. Dalsze proszenie o X będzie unikane. Jeśli nie ' nie wiesz, że zastrzeżenia dotyczące pytania o X są prawdopodobnie dokładnie tym, czego potrzebujesz, ponieważ rozwiązanie dla Y niewiele ci pomoże. Nie byłoby nieprzyjazne, gdybyśmy nie wskazali im właściwego rozwiązania, a zamiast tego zostawili złe rozwiązanie.
  • @trixn, ja ' Nie wiem, gdzie nie zgadzać się. Jednak — > Jeśli masz problem X, podaj Y jako rozwiązanie i poproś o pomoc dla Y, co ' dot. robienie to ustalenie twojego (prawdopodobnie błędnego) zrozumienia problemu. Kiedy chcę komuś pomóc, chcę wiedzieć nie tylko jego pytanie dotyczące X, , ale także, jak to się obecnie myśli (Y). Czasami ' jest ważniejsze, aby nauczyć, jak myśleć, niż uczyć, co myśleć. A ich odpowiedni i cenny problem XY daje mi ważne wskazówki, jak podejść do tego.
  • @ tgm1024 To jest dosłownie to, co już powiedziałeś przed. Chodziło mi o twoje stwierdzenie, że upominanie problemów XY jest szczególnie nieprzyjazne dla noobów. Oczywiście ' jest również kwestią tego, jak wyrazisz swoje podejrzenie, że pytanie może być problemem XY. Ale ogólnie rzecz biorąc, nie ' zgadzam się, że kierowanie pytającego w kierunku tego nie jest nieprzyjazne dla noobów, ponieważ w rzeczywistości może to być to, czego on / ona naprawdę potrzebuje. To ' jest powodem, dla którego zwykle proszę o więcej informacji na temat przypadku użycia. Jeśli Y jest pytaniem, na które łatwo odpowiedzieć, zwykle odpowiadam na nie z uwagą, że i tak może to nie być pożądane rozwiązanie.
  • @trixn, oczywiście, możesz wskazać komuś właściwy kierunek i oczywiście możesz poprowadzić kogoś w kierunku nowego sposobu patrzenia na coś.Jednak aby zacząć od poglądu, że tworzenie pytania samo jest w jakiś sposób błędne, jest to, z czym ja ' jest w dużej sprzeczności. Na przykład spójrz na hiperboliczny cytat w 71 głosowanej odpowiedzi Jonathana Benna: ” Specyficzne dla Q & A, złośliwość Problem XY wynika z faktu, że jest frustrujący dla wszystkich zaangażowanych. ” To po prostu nonsens. Pytanie XY jest cenne. ' jest frustrujące tylko dla osób, które sobie tego życzą.
  • Świetne wyjaśnienie. RE: ” i że Y nie był ' t nawet odpowiednim rozwiązaniem dla X „, Myślę, że czasami Y może być rozwiązaniem dla X. Ale nie jest to naturalne ani praktyczne rozwiązanie.
  • Imo, to jest to, które powinno być na górze. Bez obrazy w górnej odpowiedzi, ale ja pierwszy przeczytałem to i podrapałem się w głowę, a potem zszedłem na dół, aby to zobaczyć, i odpowiedź stała się dla mnie krystalicznie jasna.

Odpowiedź

Problem XY wydaje się być podzbiorem efektu Einstellung , w którym osoba rozwiązująca problem utknęła przy konkretnym rozwiązaniu i nie jest w stanie cofnąć się mentalnie, aby zobaczyć potencjalnie lepsze rozwiązania. To zjawisko psychologiczne dotyka każdego, zarówno nowicjuszy, jak i ekspertów.

Dlaczego Twój pierwszy pomysł może oślepić Cię na lepszy ” wyjaśnia przykład z szachów, w których osoba wygrywa z matem zduszonym w 5 ruchach w jednej partii. W następnej grze ten sam gracz nie widzi szybszego mata w 3 ruchach, ponieważ utknął na pomyśle mata w 5 ruchach.

Specyficzne dla Q & A, zgubny problem XY wynika z faktu, że jest on frustrujący dla wszystkich zaangażowanych:

  1. Osoba zadająca pytanie zadaje niewłaściwe pytanie (które wiąże się raczej z ich próbą rozwiązania niż pierwotnym problemem), a następnie ma trudności z wyjaśnieniem pytania, ponieważ utknęli w swoim własnym rozwiązaniu. Proponowane odpowiedzi są niezadowalające, ponieważ nie dotyczą sposobu wdrożenia rozwiązania autora.
  2. Osoby odpowiadające na pytanie uważają to za frustrujące, ponieważ proponowane rozwiązanie nie ma dla nich sensu, ponieważ zbliżają się do problem z nowej perspektywy i efekt Einstellung na nich (prawdopodobnie) nie ma na nich wpływu, a także trudno jest uzyskać oryginalny plakat, aby wyjaśnić ich pytanie.

Komentarze

  • Ciekawe, jak Einstellung effect opis opiera się na oczywistym błędzie. Luchin eksperymentował, jak ludzie mogliby wydedukować problem z jego niepełnego i niejednoznacznego opisu (czy on prosząc o optymalizację opóźnienia lub optymalizację pod kątem przepustowości?). Dał się jednak złudzeniom, że rzekomo wciąż eksperymentuje z ” sposobem, w jaki ludzie dochodzą do rozwiązań „. To może być kwestia referencyjna. Luchin był tak skupiony na swoich zainteresowaniach, że nie zauważył, kiedy skierował się do zupełnie innego problemu.
  • Moim źródłem był Scientific American, jeśli sprzeciwiasz się, możesz zająć się tym;)
  • Myślę, że lepiej Przykładem z szachów może być coś w rodzaju gracza, który koncentruje się na próbie uzyskania skomplikowanego mata z niewystarczającą ilością materiału, pomijając fakt, że ma pionka, który może hetmanem.

Odpowiedź

Problem Brakująca kwadratowa układanka to dobra ilustracja. Przedstawia prosty i uniwersalny proces dotyczący problemu / pytania / rozwiązania, w którym „jakaś iluzja” powoduje komplikacje.

Istnieje oczywisty problem — 1 × Na drugiej figurze pojawia się 1 dziura —, ale rozwiązanie jest oczywiste dopiero wtedy, gdy wiemy (jak Jajko Kolumba) … Wszyscy ludzie, eksperci i nie-eksperci, zgadzam się, że wystąpił problem.

tutaj wprowadź opis obrazu

  • zwykły użytkownik : myśli, że „istnieją dwie równoważne figury,„ wszystkie trójkąty ”w doskonałej siatce 13 × 5 .. . ”, po pytaniu:

    • problem Y : „Dlaczego drugi równoważny trójkąt ma dziurę?” .
  • użytkownik-ekspert : pomyśl coś w stylu „ups , są podobne , ale nie są „idealnie równoważnymi” liczbami, co prowadzi do pytania:

    • problem X : „Jak pokazać, że nie są idealnymi odpowiednikami?” .

Sprytny ekspert od geometrii myśli w kategoriach „podobnych geometrii, które nie są„ idealnymi odpowiednikami ”.

Normalny użytkownik myśli , omyłkowo, pod względem dokładnej zgodności . Zatem użycie błędnej hipotezy , stwórz błędne Y pytania.


„ Problem XY ”jako specjalizacja„ niewłaściwego zachowania hipotez ”

Chcesz rozwiązać prawdziwe pytanie – X i myślisz w kategoriach Y -context i spróbuj użyć pytania- Y. Zamiast pytać o kontekst X, pytasz o kontekst Y.
(jako @Gnome zauważony powyżej , ale używając innych słów)

A więc „XY Problem” to tylko kolejny (bardziej wyspecjalizowany) termin, który można opisać „Użycie błędnej hipotezy roboczej .

Komentarze

  • Zapoznaj się z Twoim głosem przeciw, zredagowałem , aby oddzielić osobistą opinię od tej bardziej ogólnej i być może interesującej formy wyjaśnienia ” co to jest „.
  • Rozumiem Twoje znaczenie z Twojej odpowiedzi, a Ty ' to osoba, która odpowiada na pytanie za pomocą animowanej ilustracji. Jeśli moja reputacja (w tej meta społeczności) pozwala mi zagłosować, zagłosuję za tym.
  • Ta odpowiedź ilustruje typowe przypadek użycia , gdy ” programista myślący i imperatywny ” zadaje pytanie o język funkcyjny … Sugerowane rozwiązanie : zapytaj na najwyższym poziomie.
  • przepraszam, dlaczego drugi równoważny trójkąt ma w sobie dziurę?
  • Cześć @KorayTugay, twoje pytanie jest poza zakresem (to klasyczny problem, więc możesz użyć klasycznych wyjaśnień, zobacz mój link do Wikipedii!). PS: Lubię postrzegać dziurę jako różnicę , ponieważ trójkąty są podobne i mają prawie taką samą powierzchnię, ale nie tę samą powierzchnię, więc możesz skonstruować otwór z małego paska różnicy geometrycznej.
  • @koraytugay spójrz na punkt, w którym czerwony i niebieski trójkąt stykają się, gdy animacja się resetuje. staje się jasne, że niebieski trójkąt to ” bardziej stromo ” niż czerwony, więc gdy niebieski trójkąt znajduje się na dole, przeciwprostokątna jest ” wypukła „, a na górze jest ” wklęsły „. To ” wygięcie ” przeciwprostokątnej daje jeden kwadrat ' wartości różnicy w okolicy

Odpowiedź

Unikanie problemu XY

Twierdzę, że nie można tego uniknąć. Nie bez rzucenia wymagań programu w SO i poproszenia ich o wykonanie projektu za Ciebie ( niezalecane) .

Spieram się z tym, ponieważ proces projektowania całego oprogramowania opiera się na początkowym zestawie wymagań „A”. Stamtąd mówisz „Mogę osiągnąć A, jeśli zrobię B i C ”. Następnie mówisz„ Mogę osiągnąć B, jeśli zrobię D i E, i mogę osiągnąć C, jeśli zrobię F i G ”. I to trwa do momentu, gdy mówimy, że„ Mogę osiągnąć X, jeśli zrobię Y „. Zwykle robimy to tak szybko, że nawet nie myślimy o tym procesie.

Więc głównym problemem związanym z XY jest to, że Y nie jest możliwe, ale nie wiesz, ile z projekt odprężenia do g et z powrotem do X, co jest możliwe. Zwykle nawet nie wiesz, że Y jest niemożliwe bez pytania. Nie wiesz, czego nie wiesz. Dlatego jest to nieuniknione


Zadawanie pytań, w których ryzykujesz wpadnięcie w XY

Najlepszą rzeczą, jaką możesz zrobić z problemem XY, jest ochrona podczas zadawania pytań. Nadal zadawaj to samo pytanie, ale podawaj jak najwięcej istotnych informacji:

  • Opisz swój problem
  • Podaj, co próbujesz osiągnąć
  • Określić, w jaki sposób pasuje do Twojego szerszego projektu

Pomoże to ludziom zidentyfikować XY i pomoże Ci znacznie szybciej.


WAŻNE: udzielanie odpowiedzi na problemy XY

Moim zdaniem największy problem z Pytania XY to (często) nieprzydatne odpowiedzi, które prowokują. Nigdy nie powstrzymamy ludzi przed zadawaniem tych pytań, więc najlepiej jest zrozumieć, jak możemy szybko na nie odpowiedzieć i skutecznie.

Jak na ironię, wiele z tych złych odpowiedzi i odpowiedzi jest udzielanych przez tych, którzy chcą być najbardziej pomocni, i mogą ich udzielić jedni z najbardziej szanowanych osób na forum / SO.

Odkryłem metodę odpowiadania na te pytania, która wydaje się pomagać w obejściu psychologii związanej z problemami XY i poprowadzeniu OP pytania do praktycznego rozwiązania. Odpowiedź na tę metodę zajmuje trochę więcej czasu w pierwszej instancji, ale znacznie szybciej zamyka pętlę Q / A.

Proponuję odpowiedzieć na pytanie w trzech częściach i podać je w następującej kolejności.

  1. Odpowiedz na pytanie OP . Nawet jeśli PO prawdopodobnie potrzebuje czegoś innego, nigdy nie zaniedbuj odpowiedzi na pytanie, które faktycznie zadali, a nie pytanie, na które Twoim zdaniem chce odpowiedzieć. W niektórych przypadkach odpowiedź może brzmieć „T nie jest możliwe” . Zbyt często widzę odpowiedzi (komentarze) pytające „dlaczego tego potrzebujesz?” . To nie daje OP nic. Jeśli powiesz „To” będzie naprawdę trudne. Wyjaśnij, dlaczego tego potrzebujesz, być może będziemy w stanie pomóc ” wtedy w wielu przypadkach OP po prostu przyjmie „ Y jest naprawdę trudne ” i wróci do deski kreślarskiej. . Nic nie szkodzi, ponieważ już odpowiedziałeś na ich pytanie i mogą oni sami wrócić z pytaniem X.

  2. Dyskutuj próba rozwiązania OP . To trochę trudne i wymaga przemyślenia. Ale nie mogę podkreślić, jakie to ważne. Jeśli OP poprosił o Y i uważasz, że chce X, to po udzieleniu odpowiedzi na ich pytanie (1) przejdź do rozmowy o Y (NIE X). Do czego ma służyć Y? Jak to nie dotyczy X? Najważniejsze jest, aby dalej mówić o pytaniu, ale przejść od udzielania odpowiedzi do udzielania pomocnych informacji. Bo przecież tego „myślisz, że OP potrzebuje. Pomocnych informacji, a nie odpowiedzi na ich pytanie.

  3. Rozwiąż X To jest to, do czego dążyłeś i jest to w końcu sedno Twojej odpowiedzi. Spotkałeś OP na ich warunkach i odpowiedziałeś na ich pytanie. Pomogłeś im zrozumieć wady ich pytania i dlaczego rozwiązywanie Y nie jest rzeczą do zrobienia … więc teraz jesteś całkowicie uzasadniony, wyjaśniając rozwiązanie do X.

Większość ludzi jest tutaj, aby się uczyć, więc części 1 i 2 tej odpowiedzi są równie ważne jak część 3. Ale zbyt często część 3 jest podana własne i jest to niezwykle frustrujące i protekcjonalne dla PO, nie wspominając o tym, że wielu PO nie zaakceptuje odpowiedzi.

Udzielenie tej odpowiedzi pozwala również uniknąć zakłopotania, gdy myślisz, że OP ma problem z XY, podczas gdy w rzeczywistości oni nie. Wszystko, co zrobiłeś, to podanie dodatkowych informacji. Po prostu dając część 3 ryzyko, które wydaje się, że nie przeczytałeś pytania.


Nawiasem mówiąc. Przeczytaj ponownie pytanie i przeczytaj odpowiedź … zwróć uwagę na trzy części?

Komentarze

  • As ” Problem XY ” to rodzaj ” Użycie niewłaściwego hipoteza ” , społeczność Stackoverflow musi pomóc w ukazaniu właściwej hipotezy … Na tym koncentruje się Twoja ” Udzielanie odpowiedzi na problemy XY „?
  • @PeterKrauss W pewnym sensie. To raczej założenie (zgadzam się, że społeczność powinna) . Zakładam, że ktoś odpowiadający na pytanie chce podać część 3 – właściwą hipotezę. Kłopot z XY tkwi w zmarnowanym czasie. Zatem celem tej odpowiedzi jest podkreślenie, że poświęcanie czasu na dawanie części 1 i 2 z góry nie jest stratą czasu, ale w rzeczywistości oszczędza czas na dłuższą metę. Masz rację, że ta odpowiedź jest uogólniona dla użycia złej hipotezy .
  • Zbyt często OP przyjmuje odpowiedź na Y i biegnie, nie czytając dalej ani nie zdając sobie sprawy, że Y był złe rozwiązanie dla X. Z tego powodu ' wolę nie dać im odpowiedzi, która zostanie niewłaściwie użyta. ' Wolę ryzykować urazę ich, aby znaleźć właściwe rozwiązanie, niż dalej przyczyniać się do powstania zarówno złego kodu, jak i błędnej logiki.
  • @Tom That ' w porządku, w takich przypadkach ” prosisz o coś naprawdę trudnego ” lub ” nie powinieneś ' tego robić, to ' to naprawdę zły pomysł ” wpisz część (1).
  • Zaśmiałem się głośno po przeczytaniu tego i sprawdzeniu ponownie. Doskonała odpowiedź, doskonałe obserwacje, doskonały przykład przywództwa.
  • Dodam, że celem tej witryny jest nie tylko pomoc osobie, która pierwotnie zadała pytanie, ale także stworzenie repozytorium dla kogokolwiek innego kto później znajdzie pytanie. Nawet jeśli Y nie jest właściwą drogą do zrobienia X, nadal może być użyteczne samo w sobie w innych kontekstach, więc udzielenie odpowiedzi Y może być również cenne.
  • To właściwie odpowiada na rzeczywiste pytanie, podczas gdy inni po prostu przedstawili fakty

Odpowiedź

(oddzielone od mojej drugiej odpowiedzi, ponieważ ta zawiera więcej opinii niż wyjaśnienia)

Jeśli zgodzisz się, że „Problem XY” jest tylko innym (bardziej wyspecjalizowanym) terminem na „Stosowanie złej hipotezy roboczej”, to zilustrowane i wyjaśnione tutaj i podobne do „efektu Einstellung” wyjaśnionego tutaj przez @Jonathan Benn

Możemy myśleć w kategoriach niektórych głównych sytuacji:

  • Pośpiech sytuacja: zła hipoteza jest tylko efektem ubocznym języka lub nadmiernego uproszczenia, który może zostać poprawiony przez użytkownika przy odrobinie uwagi i inwestowaniu więcej czasu na edycję pytania.

  • Normalna sytuacja: jak w ilustrowana Missi ng Square puzzle, nie wiesz, że twoja hipoteza jest błędna. To jest główna sytuacja do omówienia tutaj (!).

Skoncentrujmy się więc na normalnej sytuacji.


ROZWIĄZANIA / ATTENUATORY

„Problem XY” to ważny problem!

Pytanie wymiany stosów ma na celu pokazanie problemu. Jeśli moje pytanie pomaga wykazać, że prawdziwym problemem jest moja błędna hipoteza , jest OK! To jest pierwszy krok i być może nie będę potrzebował żadnych innych pytań po uzyskaniu poprawnej hipotezy (i próbuję rozwiązać samodzielnie).

Przykład. Zobacz „ XPath dla xml: lang? Testowanie osi własnej atrybutu kończy się niepowodzeniem „; prawdziwy problem polega na tym, że @attribute::self nie istnieje, więc była to błędna hipoteza dotycząca tytułu pytania.

Rozwiązanie help/mcve ma ograniczenia

Przepełnienie stosu „s help/mcve rationale : „Jak stworzyć M inimal, C omplete i V erifiable E xample „, można użyć do uniknięcia problemu XY.

Ale koszt edycji (kosztowny czas i uwaga) oraz przekonanie, że jest to rodzaj zanieczyszczenia tekstu („zły marketing” w przypadku pytania), są wadami.

Dobrze jest również uprościć problem i wyjaśnij, skupiając się bardziej na tym punkcie.


Sprawdzone metody

Przeszkol użytkowników Stack Overflow, aby sprawdzić, czy uproszczenie ma sens. Algorytm dla dobrego pytania:

  1. Spróbuj utworzyć MCVE.

  2. Jeśli MCVE nie jest pr aktywne, spróbuj przynajmniej uprościć.

    2.1. Przetestuj, sprawdź niespójności, zasymuluj czytelnika … i przejrzyj. Czy twoje uproszczenie powoduje coś dziwnego, zmienia kontekst? Przejrzyj, aby uniknąć błędów.

  3. Posłuchaj komentarzy na temat swojego pytania i spróbuj wyjaśnić, spróbuj pracować edytując pytanie, jeśli to konieczne: jeśli ktoś komentuje, jest to zauważ , że możesz poświęcić więcej czasu na swoje pytanie.

Zła hipoteza nie jest oczywista, ale kiedy upraszczamy, wzmacniamy złe efekty i staje się to bardziej oczywiste.


PS: Z drugiej strony, kiedy wyjaśnimy i pokażemy wszystkie szczegóły, cały kontekst i sprawdzimy rzeczywisty punkt, złożenie problemu (np. Przy użyciu mcve), niespójności pokazują również więcej dowodów.

Komentarze

  • Z mojego doświadczenia wynika, że ' MCVE stwarza więcej, a nie mniej problemów XY. Czyni bardziej czystą abstrakcję, pozbawiając kontekst pierwotnego pytania. Oznacza to, że X może być zawarty w kontekście pierwotnego pytania, ale MCVE zostanie skonstruowane wyłącznie w celu wyrażenia Y.
  • Dzięki @couling (!). Tak, ponieważ metodologia MCVE może nie jest ” sprawdzoną metodą „, ale jest sposobem na wymuszenie ” … wyjaśnij i pokaż wszystkie szczegóły … „. Nasz mózg działa lepiej po takiej samoocenie … Możesz edytować i poprawiać tekst, to jest Wiki.

Odpowiedź

Negocjowanie umowy związkowej …

Problem XY jest istotny dla różnicy między rokowaniami opartymi na „odsetkach” (X) a rokowaniami opartymi na „stanowisku” (Y).

X = ogólne wynagrodzenie pracownika na rękę pozostawało w stagnacji od kilku lat, podczas gdy jego koszty utrzymania stale rosną; pracownik potrzebuje więcej wynagrodzenia do domu.

Y = wybranie „nie podniesiesz opłat parkingowych” jako wzniesienia, na którym można umrzeć / jedynego „rozwiązania” dla X, które pracownik jest skłonny zaakceptować.

Dążenie do Y (zajęcie stanowiska) to dążenie do bardzo konkretnego i ograniczonego rozwiązania problemu (X). Odcina pracownika od wszechświata rozwiązań problemu (X), nalegając, aby można go było rozwiązać tylko w jeden bardzo konkretny i ograniczony sposób. Jeśli ten sposób (Y) jest z jakiegokolwiek powodu niewłaściwy dla pracodawcy, to nastąpi impas – okres czasu, w którym nie ma rozwiązania dla X, gdzie rozwiązanie musi być do przyjęcia dla obu stron.

Jeśli pracownik może dążyć do X zamiast Y, wtedy wszechświat rozwiązań pozostaje otwarty / nieograniczony, a pracodawcę można zatrudnić, aby pomógł znaleźć możliwe rozwiązania dla X. (Może okaże się, że będzie to w porządku z pracownik podniesie stawki za parkowanie w zamian za podwyżkę kosztów utrzymania …)

Ten paradygmat zainteresowania / stanowiska wydaje się odpowiedni do zadawania pytań na temat SO, gdy OP prosi o pomoc w sprawieniu, by ich stanowisko zadziałało. Czasami możesz przejść do X, po prostu pytając: „Dlaczego próbujesz to zrobić?”; Ale zastanawiam się, czy czasami celowanie w Y nie jest tak samo wartościowe. Ilu z nas kiedykolwiek próbowało coś zrobić, tylko po to, aby zobaczyć, czy możemy? Każdy tutaj, kto ma własny serwer DNS z określonym typem oprogramowania do tego celu powód? 🙂 Może nie być najlepszym rozwiązaniem dla X, ale wciąż jest interesujące …

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *