User Tools

Site Tools


howto:xyproblem

Problem 'XY'

(przełożone i dostosowane z xyproblem.info)

O co chodzi?

Problem 'XY' polega na zadawaniu pytania na temat Twojej próby rozwiązania problemu zamiast pytania na temat początkowego problemu. Skutkuje to zmarnowanym czasem i wysiłkiem, zarówno ze strony osoby zadającej i odpowiadającej na pytanie.

  • Użytkownik chce zrobić X.
  • Użytkownik nie wie jak zrobić X, ale myśli że poradzi sobie robiąc Y.
  • Użytkownik tak samo nie wie jak zrobić Y.
  • Użytkownik prosi o pomoc z Y.
  • Inni próbują pomóc Użytkownikowi z Y, ale są skonfundowani ponieważ Y nie jest powszechnie rozwiązywanym problemem.
  • Po długiej wymianie okazuje się, że Użytkownik tak naprawdę chciał pomocy z X, a co gorsza Y nie było nawet stosownym rozwiązaniem X.

Problem pojawia się gdy ktoś skupia się na próbie rozwiązania zamiast na wytłumaczeniu całej sytuacji od początku.

Co z tym zrobić?

  1. Zawsze podawaj możliwie szeroki kontekst swojego problemu razem z wszystkimi próbami rozwiązania.
  2. Jeśli ktoś, kto próbuje Ci pomóc prosi o więcej informacji, podaj je.
  3. Jeśli wykluczone zostały już inne rozwiązania, wspomnij o nich i powiedz dlaczego zostały wykluczone. Da to więcej informacji o Twoich wymogach.
  4. Nie bój się, że prosząc o rozwiązanie większego/początkowego problemu czynisz to trudniejszym dla osoby która Ci pomaga.

Pamiętaj: jeśli Twoja pierwsza diagnoza była celna, najpewniej nie potrzebowałabyś/potrzebowałbyś teraz pomocy.

Przykład

  <robert> Jak mogę zdobyć trzy ostatnie znaki nazwy pliku w Bashu?
  <alicja> Jeśli nazwa pliku jest w zmiennej: echo ${foo: -3}
  <alicja> Czemu trzy ostatnie znaki? Czego NAPRAWDĘ potrzebujesz?
  <alicja> Potrzebujesz rozszerzenia pliku?
  <robert> Tak.
  <alicja> Trzeba było tak od razu!
  <alicja> Nie ma gwarancji że każdy plik ma trzyznakowe rozszerzenie
  <alicja> więc branie na ślepo trzech ostatnich znaków nie rozwiązuje problemu.
  <alicja> echo ${foo##*.}
howto/xyproblem.txt · Last modified: 2021/07/14 13:00 by q3k

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki