בעיית XY (באנגלית "XY Problem") היא סוג של קצר בתקשורת – בין בני אדם, לא רכיבים – שגורם לבזבוז זמן משמעותי ולבלבול רב בפורומים טכניים למיניהם וגם במקומות אחרים. נתקלתי במושג לראשונה בפורום באנגלית, וחשבתי שמן הראוי שגם הקהל הישראלי יכיר אותו…
בניסוח מקוצר, בעיית XY מתרחשת כאשר אדם לא שואל על הבעיה המקורית שבה נתקל, אלא על הדבר שהוא חושב שיפתור אותה.
בשלב הראשון, השואל נתקל בבעיה X והוא לא ממש יודע איך להתמודד איתה. במקום לגשת מיד לפורום ולשאול איך פותרים את X, הוא מנסה לחשוב בעצמו על פתרון. עד כאן זה בסדר גמור, כמובן, ואפילו מומלץ. אבל לפעמים, אותו אדם מגלה שהוא לא יודע גם איך לממש את הפתרון שחשב עליו. אז הוא ניגש לפורום ומבקש עצה לבעיה החדשה (Y).
הצרה היא שלעתים הרבה יותר מדי קרובות, השואל מדבר רק על Y, בלי לתת את הרקע של X. העונים, שלא יודעים על מה מדובר, מנסים ככל יכולתם לעזור לפתור את Y, אבל בכלל לא בטוח שזה פתרון מתאים ל-X. הרבה מאמצים וזמן הולכים לאיבוד, וכשבסוף השואל חושף איכשהו במקרה את המטרה האמתית של השאלה, כולם יוצאים מתוסכלים.
הנה דוגמה מומצאת: מישהו מפתח קוד לארדואינו שקורא מידע מאיזשהו רכיב, ומגלה שחלק מהקריאות "מתפספסות" (בעיה X). הוא חושב על כך, מחליט שהסיבה היא שהארדואינו איטי מדי, ושהפתרון המתאים הוא לעשות overclocking, אבל הוא לא יודע איך (בעיה Y). אז הוא הולך לפורום ושואל איך עושים overclocking לארדואינו. המשיבים מסבירים לו איך להחליף את הגביש, והוא מזמין גביש מחו"ל ומחכה שבועות, ומכיוון שאין לו ניסיון בהלחמה הוא הורס בטעות שני לוחות עד שיוצאת לו הלחמה נורמלית, ובסוף זה לא עוזר בכלל כי בעיה X לא קשורה למהירות של הארדואינו אלא לאיזו טעות בשימוש בפוינטרים בקוד.
זה לגיטימי ואפילו חשוב לשאול שאלות ספציפיות ועל שלבים מתקדמים בתהליך – הרי המשתתפים בפורומים אינם אמורים לבצע את כל הפיתוח בעצמם עבור השואל. הדבר היחיד שחשוב לזכור הוא שגם אם זה משהו טריוויאלי לכאורה, תנו תמיד את הרקע לשאלה.
לקריאה נוספת: איך לשאול שאלות.
כל עוד פורום מוגדר question & answer, אני לא רואה כאן שום בעיה.
זה ממש לא צריך להיות משנה למי שעונה בפורום, העיקר שאתה כותב דברים נכונים.
פרט לכך, יש אנשים שפחות מעניין אותם המימוש הסופי של פרויקט מסוים ויותר נהנים מהתהליך עצמו ומהלמידה.
ובלי קשר לאלקטרוניקה,
תהיה מופתע לגלות כמה דברים הומצאו בדיוק בצורה שאתה מתאר פה – ע"י חיפוש פתרונות לא טריוויאליים לבעיה מסוימת.
אז לא הבנת… כתבתי במפורש שזה טוב מאד לנסות קודם כל למצוא פתרונות לבד; אבל הניסיון מוכיח שבהרבה מאד מקרים, השואלים הם מתחילים ללא מספיק ניסיון והבנה, ולכן פתרון ל-Y לא יפתור את X כמו שהם חשבו, ויהיה צריך להתחיל מהתחלה. הרי יש מספיק שאלות טובות שאפשר לשאול וללמוד מהן בפורומים – אם אפשר לחסוך על הדרך כמה כניסות ל"רחובות ללא מוצא", למה לא?