ביתמאמריםיותר פיצ׳רים = יותר בלגן

FEATURE BLOAT · מוצר ותהליך

יותר פיצ׳רים = יותר בלגן

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

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

״רק עוד כפתור קטן״

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

הבעיה היא שכל בקשה נשקלת לבדה, ואף אחד לא שוקל את הסכום. השאלה שנשאלת היא ״כמה זמן ייקח לבנות את זה?״ — וכשהתשובה היא ״יומיים״, הבקשה מאושרת. השאלה שלא נשאלת היא ״מה זה עושה למערכת שכבר קיימת?״, ודווקא היא היקרה.

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

ארבעת המחירים של פיצ׳ר אחד

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

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

באגים. פיצ׳רים לא מתווספים — הם מכפילים. שני מתגים בלתי תלויים יוצרים ארבעה מצבים אפשריים; עשרה מתגים יוצרים יותר מאלף. אף צוות לא בודק אלף מצבים אחרי כל שינוי, ולכן ככל שיש יותר יכולות, כך גדל הסיכוי ששינוי בפינה אחת שובר משהו בפינה אחרת. זו הסיבה שבמערכות ותיקות ״כל תיקון גורר תיקון״.

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

הבלגן לא יושב בקוד — הוא יושב אצל המשתמש

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

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

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

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

איך מחליטים מה לא נכנס

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

שואלים כמה פעמים בחודש. פעולה יומיומית ראויה למקום מרכזי. פעולה חודשית ראויה למקום שצריך לחפש. פעולה שנתית לא ראויה לתוכנה בכלל — עדיף לעשות אותה ידנית פעם בשנה מאשר לתחזק לשמה מסך לנצח.

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

מודדים לפני שמרחיבים. אם המערכת כבר חיה, אפשר לדעת ולא לנחש: מה נפתח, מה לא נפתח, ואיפה אנשים נתקעים. הרחבה שנשענת על מדידה כמעט תמיד קטנה יותר מהרחבה שנשענת על ישיבה.

ומה עושים עם מערכת שכבר התנפחה

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

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

התוצאה מפתיעה לרוב: אותה מערכת בדיוק, אותן יכולות, ופתאום אנשים מסתדרים בלי הדרכה. לא נוסף שום דבר — פשוט הפסיק להסתיר את עצמו.

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

יש לכם מערכת שהעובדים עוקפים, או אפיון שהתחיל להתנפח? כתבו לנו בקצרה מה אנשים עושים בפועל כל יום — ונגיד לכם ביושר מה מיותר.

שאלות נפוצות

למה יותר פיצ׳רים דווקא פוגעים במערכת?

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

איך יודעים שמערכת מנופחת מדי?

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

מה עושים כשעובדים מבקשים כל הזמן עוד יכולות?

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

פשטות זה לא סתם מערכת חלשה?

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

אפשר להוריד פיצ׳רים ממערכת שכבר קיימת?

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

מקורות

  1. Nielsen Norman Group — חוק היק — ההסבר המקצועי לכך שזמן ההחלטה של משתמש גדל ככל שמוצגות לו יותר אפשרויות, ומה זה אומר על עיצוב ממשקים.
  2. HTTP Archive — Web Almanac, פרק משקל העמודים — נתונים שנתיים על כמות הקוד שאתרים ואפליקציות ווב טוענים בפועל, ועל המגמה לאורך השנים.

מערכת שאף אחד לא רוצה לפתוח?

ספרו לנו מה אנשים עושים בפועל כל יום. נגיד לכם מה מיותר, מה חסר ומה אפשר להסתיר — עם הצעת מחיר סגורה מראש. ייעוץ ראשוני ללא עלות.

שלחו לנו מייל