הממשק החשוב ביותר – ממשק המשתמש

הממשק החשוב ביותר – ממשק המשתמש

Print Friendly, PDF & Email

No matter how slick the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved. (Mark Gibbs)

רוב בעיות המחשוב נובעות מהממשק בין הכיסא למקלדת… כך לפחות אומר פתגם עממי של אנשי מערכות מידע. המטרה שצריכה להיות לנגד עיניהם של מנתחי המערכות והמפתחים היא בוודאי מציאת דרכים ושיטות על מנת לצמצם ככל הניתן את סיכוייו של המשתמש לבצע פעולות מוטעות. למרות זאת, מניסיוני רב השנים אני יכול להעיד כי מערכות מידע רבות בהן נתקלתי כללו ממשק משתמש אשר כמעט לא איפשר למשתמש סיכוי לצאת בשלום. בפוסט הזה אני אביא מספר דוגמאות בולטות במיוחד למקרים מסוג זה יחד עם טיפים שחשבתי שיוכלו לסייע לכם לבנות מערכות אפקטיביות יותר.

טיפ #1: אל תחנך את המשתמש שלך
נתקלתי במקרים רבים שבהם ההיגיון של משתמש מסוים (לפעמים אני) אומר שתכונה מסוימת צריכה להופיע בתפריט מסוים אבל מכיון שההיגיון של התוכניתן קבע אחרת, אני ושאר המשתמשים המתוסכלים מבזבזים זמן באיתור התכונה המבוקשת. הפתרון שלי: להציג את אותה הפונקציה במספר מקומות הגיוניים ולאפשר למשתמש לבחור מה נוח לו יותר. לדוגמה, תוכלו לראות שבתוכנת IrfanView, תוכנה חינמית מהטובות שאני מכיר לצפייה בתמונות, התכונות לטיפול ביצירה, עדכון ופירוק קבצי TIF Multipage נמצאת בתפריט מאד לא שייך – תפריט View:

IrfanView_MenuSample

אני בטוח שאתם הייתם מוצאים מקום יותר טוב למקם את התכונה הזו.

טיפ #2: תמיד תראה למשתמש שאתה עובד – כמו לבוס שלך

מתכנתים רבים דואגים להציג הודעה למשתמש בנוסח "אנא המתן", מציגים את סמן שעון החול המפורסם או מציגים סרגל התקדמות (Progressbar) כאשר התוכנה שלהם עובדת, הבעיה בדרך כלל מתחילה כאשר המתכנת לא צפה מראש את האטיות או כאשר הוא לא יכל לדעת כמה זמן תיקח הפעולה הרלוונטית ולכן לא יכל להציג סרגל התקדמות. מתכנתים בדרך כלל בונים את סרגל ההתקדמות לפי מדד כלשהו שזמין להם, למשל, אם מדובר על הורדת קבצים בדרך כלל סרגל ההתקדמות יציג חיווי לגבי כמות הקבצים שירדו ו/או כמות הבתים שירדו מתוך הנחה (נכונה) שיש למדדים אלו קשר ישיר למשך הזמן של הפעולה. כאמור, הבעיה היא כאשר לתוכניתן לא היה מדד כלשהו, למשל – במקרה של פניה לאתר אינטרנט כלשהו, לתכנית אין דרך לדעת אם הכתובת שרשמת היא אכן קיימת כמו גם אם השרת שלה זמין ופעיל כעת, משום כך לכאורה לא ניתן להציג סרגל התקדמות ואכן במערכות רבות שבהן נתקלתי מציגים הודעה למשתמש בנוסח "אנא המתן בבקשה" אבל לא אומרים כמה זמן עלינו להמתין ובאופן כללי, רק מזכירות לנו את עצם ההמתנה מורטת העצבים. הפתרון שראיתי למצבים כאלו הוא פשוט למדי: היות ובמצבים כאלו בדרך כלל קיים Timeout מוגדר שלאחריו בכל מקרה תוצג הודעת שגיאה בנוסח "השרת לא הגיב" או "השרת התפגר…" ניתן להציג סרגל התקדמות כאשר ה-100% שלו בעצם מציין שהגענו לקצה גבול ה-Timeout (והסבלנות) ועד אותו הרגע מקדמים את הסרגל אחת לשנייה או חצי שנייה וכך נראה שהמחשב עושה משהו, גם אם לאט יחסית, אם קרה נס רפואי והשרת פתאום התעורר לחיים כל שצריך לעשות הוא לקדם את החלק שנותר בסרגל ההתקדמות לפי כמות הבתים שירדו, כרגיל. מבחינת המשתמש זה ייראה כמו אטיות בהתחלה שפתאום נפתרה. האלטרנטיבה של End process tree שהמשתמש היה מבצע בעצבים אילולא היינו מראים לו שאנחנו עובדים, נראית לי אכזרית הרבה יותר.

זהו להפעם, אשתדל להוסיף יותר בקרוב…

השאר תגובה