אחת האנלוגיות הכי מועילות בהתמודדות השוטפת עם עולם ה-UX היא זו של פולחן המטען. אמנם כבר כתבתי עליו לפני כמה שנים, אבל אנלוגיות הן כמו יין טוב (ראיתם מה עשיתי כאן?) – הן משתבחות עם השנים. ובכל מקרה לא נראה לי שמי מקוראיי היה עולה עליי אלמלא הסגרתי את עצמי הרגע. על קצה המזלג, פולחן המטען היא תופעה שנצפתה באיי האוקיינוס השקט לאחר שתרבויות מתקדמות יותר ארגנו שם לעצמן Airbnb במהלך מלחמת העולם השנייה. פתאום עגנו באיים אלו ספינות ענק שנשאו אנשים ומכונות, אלה הקימו מנחתים, והמנחתים משכו מטוסים שהביאו דברים כמו אלכוהול, כלים מודרניים, קופסאות שימורים, ואלכוהול. גם הרס, מוות וחורבן, אבל למה להתמקד בשלילי. מפה לשם, המלחמה הסתיימה, המערביים התעופפו להם מערבה, ובסוף האלכוהול, כדרכו, נגמר. זה לא התקבל בעין יפה אצל המקומיים, שהחליטו לעשות מעשה, חיברו אחד ועוד אחד, קיבלו חמש, ובנו מנחתים ומטוסים מקש, מתוך הנחה שזה מה שיביא שוב את האנשים עם האלכוהול. אם אתם חושבים שמדובר בבדיחה, אז ממש לא, יש ערך בוויקיפדיה ותמונות ומה שלא תרצו.
פולחן המטען לא ממש עוזר לילידי האיים לתפוס ראש, אבל כאמור הוא מאוד עוזר לי בניתוח ממשק. בכל פעם שאני שומע, או מתפתה להגיד בעצמי, "בואו נעשה כמו שראינו אצל ההם שאצלם זה עובד מצוין", דבר ראשון אני מנסה להבין האם מדובר בפולחן מטען. האם אנחנו מבינים האם, איך ומדוע זה עובד להם, והאם יש יסוד להניח שזה יעבוד גם לנו, או שמא אולי פחות.
נניח, וזו דוגמה היפותטית גרידא שבהחלט לא התרחשה לפני כמה שנים, שיש איזו מערכת עתירת טבלאות, ולעיתים קרובות המשתמשים רוצים לסנן עמודה מסוימת לפי ערך כלשהו. למשל – נגיד שזו טבלה של דגמי טלפונים סלולריים, ורוצים לצמצם אותה רק למכשירים של סמסונג. לשם כך קיים להם מעל עמודת "יצרן" אייקון קטן וסטנדרטי של משפך, שפותח רשימה של כל היצרנים הקיימים בעמודה. לחיצה על "סמסונג" בוחרת אותו, סוגרת את התפריט ומשאירה בטבלה רק טלפונים של סמסונג.
אבל העלילה מסתבכת כאשר המשתמשים מבקשים לסנן לפי כמה ערכים במקביל. בדוגמא שלנו – רוצים לראות גם את המכשירים של סמסונג, וגם את LG ו-HTC. בקשה לגיטימית בסך הכל, כל עוד הם לא רוצים גם אייפון. אז עכשיו עלינו לאפשר בחירה מרובה בתפריט, למשל ע"י הוספת checkbox לצד כל ערך. הבחירה זה החלק הקל. סגירת התפריט והחלת הסינון זה החלק הקשה, כי אנחנו לא יודעים כמה ערכים המשתמש מתכוון לבחור ומתי הוא מסיים. עד עכשיו היינו סוגרים את הפילטר ברגע שהם בחרו ערך. מתי סוגרים אותו עכשיו?
בעצם אל פעולת הבחירה מתווסף כעת צעד לוגי חדש – האמירה "סיימתי". מה שמציב אותנו בפני בחירה – האם אנחנו מפילים את עול הפעולה הזו על המשתמש או שמנסים לספוג אותו בעצמנו. האפשרות הראשונה אומרת שאנחנו מחייבים את המשתמש להגיד לנו במפורש "זהו", באמצעות איזשהו פקד ייעודי שנשלב ממשק הבחירה.
האופציה השנייה מתיימרת להסיק על סיום הבחירה מהתנהגות המשתמש. הכיוון הנפוץ הוא פשוט לחיצה מחוץ לתפריט הפתוח – בכל מקום במסך. לפי גישה זו, על-ידי לחיצה בחוץ המשתמש בעצם אומר "תראה לי את מה שלחצתי עליו" – שזה מסך העבודה במקרה שלנו.
אז שתי האופציות ברורות בגדול. עכשיו כיצד בוחרים ביניהן? אפשר כמובן לנסות לחשוב לבד, אבל למה להסתבך כשאפשר לבנות משהו מקש וללכת לרקוד את ריקוד הגשם. הולכים, רואים איך עושים את זה האורחים הלבנים שהגיעו מן הים, ובונים כזה גם, כמיטב יכולתנו. אז בואו נמצא כלי נפוץ ומוצלח שיש בו פילטר שתומך בריבוי ערכים, ונעתיק משם.
לשמחתנו, לא צריך ללכת רחוק, כי יש את אקסל, שזה הכלי הכי נפוץ בעולם לניהול של פחות או יותר כל דבר ביקום. ובאקסל באמת יש פילטר מרובה, והפתרון שלהם הוא כפתור OK מפורש. אז יאללה, נעתיק את זה וסגרנו עניין. אמנם ישנם לא מעט אנשים שכואב להם בעיניים לראות את השם "מיקרוסופט" בהקשר חיובי, ועוד בנושא של חוויית משתמש, אבל אפילו הם מסוגלים להודות שהחבר'ה של אקסל יודעים מה הם עושים. אז אם באקסל עשו את זה, לכאורה אין סיבה שלא להעתיק. עכשיו רק נשאר להדליק מדורה ולהמתין לצד מטוס הקש שלנו. הנה הפילטר שלהם:
ובכן, נכון שבמטוסים האמיתיים יש את הדבר הזה שעושה את כל הרעש… אהם… איך קוראים לו… מתחיל במ'… אה – מנוע? שחסרונו הוא, אפשר להגיד, אחת מנקודות הטורפה המהותיות במודלים המושקעים של הילידים? אז גם באקסל יש קצת יותר מאשר רשימת ערכים עם צ'קבוקסים וכפתור OK למטה. בין היתר, יש בו את כל התפריט הזה
שכל אחד מהפריטים בו פותח חלונות חמודים בסגנון הזה
ואילו החלונות בתורם מנהלים מערכת יחסים לא הכי ברורה עם רכיב בחירת הערכים. ומה שכפתורי האישור והביטול מאשרים (או מבטלים) זה את כל החללית הזאת: שלושה סוגי מיון, שמונה סוגי סינון, ורכיב בחירת ערכים עם חיפוש. ניתן להגיע כאן לשלל שילובים מורכבים למדי. המורכבות הזו בדיוק היא מה שמאלץ אותם לדרוש מהמשתמש את האמירה המפורשת של "סיימתי". איך אני יודע? בגלל שאם מסתכלים טוב, אפשר לראות את הסימנים של השמיניות שהם עשו באוויר כדי להפוך את החלון הזה לכמה שפחות מפריע.
תסתכלו על החלון שוב, אתם מבחינים במשהו מוזר? משהו שמבדיל אותו מרוב החלונות האחרים שיש להם כפתורי אישור וביטול למטה? בדרך כלל כשאנחנו מטריחים את המשתמש לעצור את תהליך העבודה שלו ולאשר מסך, אנחנו דורשים את כל תשומת הלב שלו ויוצרים הפרדה ברורה בינו לבין שאר המסך – לכן אנחנו מביאים את החלון המדובר למרכז, מדגישים את גבולותיו, וחוסמים את כל השאר. ברשת נהוג גם להחשיך את שאר שטח המסך, אבל בדסקטופ זה יותר נדיר.
כאן שום דבר מזה לא קורה. זו דוגמה סופר נדירה של חלון שהוא גם דיאלוג (כלומר, כזה שדורש מהמשתמש לאשר או לבטל אותו), הוא גם מודאלי (לא מאפשר עבודה במקביל עם מה שנמצא מחוצה לו), אבל הוא לא משתלט על כל המסך. בעיניי זה מעיד על החשיבות שמיקרוסופט מייחסת לשמירה על רצף עבודתו של המשתמש עם הפילטרים האלה.
ועדיין, נשאלת השאלה כיצד אנחנו מחליטים בין שתי הגישות. אז נכון שאקסל מדובר במנגנון מורכב ואצלנו פחות. האם זה מספיק כדי להכריע? ובכן, לדעתי ישנה דרך פשוטה מאוד לענות על זה. הרי איננו בונים מערכת חדשה וניצבים בפני המימוש הראשוני של פילטר עם בחירה מרובה. אלא, אנחנו מרחיבים את יכולותיו של פקד בחירה יחידה כך שיתמוך בבחירה מרובה. השינוי צריך להיות כמה שיותר קטן ולא מורגש (אך לא כה שקוף שהמשתמשים לא יבחינו בו). היום התפריט נסגר עם הלחיצה הראשונה. המנגנון שנאמץ צריך להוסיף כמה שפחות על התהליך הזה. התוספת של "אישור" מפורש הינה "כבדה" בהרבה מהתוספת של אישור ע"י לחיצה בחוץ – הן ויזואלית והן קוגניטיבית. הראשון דורש מהמשתמש לקבל החלטה. לחשוב, אולי להעיף מבט נוסף בהגדרות, ואז לאשר. השני אפילו לא שואל שאלה אלא מתלבש על התנהגות טבעית, ומסתכן במידה מסוימת בפספוסים פה ושם. היצמדו לעקרון ההפתעה המזערית. אל תוסיפו מורכבות מיותרת רק בגלל שאיזו חברה גדולה השתמשה בפתרון המורכב במצב שקצת מזכיר את המצב שלכם, לכאורה.
Keep it simple, stupid.
נ.ב. בעקבות דיון מלומד בעמוד הבלוג בפייסוש, מסתמן כי יש צורך להבהיר: מטרת הפוסט אינה לטעון כי בכל תפריט פילטר מרובה יש להימנע מכפתורי האישור לטובת הלחיצה בחוץ. טענה כזו תהיה הנצחת הקארגו קאלט. הטענה האמיתית היא שיש לבחון את הפתרונות הקיימים במקומות אחרים, לנסות להבין מדוע הוחלט על הממשק הזה דווקא, ואז לבחון את התאמתו אל המערכת, המשתמשים, והקשרי השימוש הרלוונטיים עבורכם.