טבת (8)

יואל ספולסקי תובנות על תכנות: הלכה, ומעשה

http://www.joelonsoftware.com/items/2007/12/03.html

זהו החלק הראשון – מתוך שלושה חלקים – של הרצאה שנתן ספולסקי באוניברסיטת ייל, שם למד הוא עצמו.
ההרצאה היא בעצם סקירה של הקריירה של ספולסקי – מלימודיו בייל ועד עצם היום הזה – והתובנות הכלליות לחיים שהוא הפיק מכל תחנה בדרכו המקצועית.
אני נהניתי לקרוא את הסקירה הזו גם מפני שספולסקי הוא סמי-גורו בשבילי (הוא ירד מדרגת גורו אחרי שלא ביקר בארץ במסגרת “מסע ההופעות” שלו לקידום הגרסה החדשה של המוצר שלו…), אבל בעיקר מפני שיש בה אבחנות מעניינות: לגבי הפער בין לימודי מדעי המחשב לבין עבודה בתחום זה; ההבדל בין מקומות עבודה שונים; מה בכל זאת תרמו לו הלימודים. ולכן, למרות אורכה של ההרצאה, אך אני ממליצה בכל זאת לפחות מתכנתים שבינינו לקרוא אותה.

כמה דברים ששווים ציטוט בעיני:

  • ישנה לאחרונה טענה בדבר “משבר איכות”. הטענה הזו מובילה להצעות רבות, ומחקרים רבים על יצירת תוכנה באיכות גבוהה יותר. בשלב הזה, העולם מתחלק ל”גיקים” ול”חליפות”.
    הגיקים רוצים לפתור את הבעיה בצורה אוטומטית, בעזרת תוכנה. הם מציעים דברים כמו Unit Test, פיתוח מונחה בדיקות, בדיקות אוטומטיות, לוגיקה דינמית, ועוד ועוד דרכים “להוכיח” שהתוכנה נקיה מבאגים.
    החליפות לא ממש ערים לבעיה. ממש לא אכפת להם אם בתוכנה יש באגים, כל עוד שאנשים קונים את התוכנה.
    כרגע, בקרב בין הגיקים לחליפות, החליפות מנצחים, מפני שהם שולטים בתקציב, ובכנות, אני לא יודע אם זה דבר רע.
    [כאן הוא ממשיך לפתח את ההבדלים בין הגיקים לחליפות. מה שאותי מאד קנה זה הקטע שבו הוא הסביר איך הגיקים מגיעים לרעיונות כמו אפיון שמתקמפל לקוד: מאחר שרוצים שכל הבדיקות תהיינה אוטומטיות, צריך מסמך המתאר בדיוק איך התוכנה תעבוד. המסמך המתבקש הוא האפיון. אבל כדי שאפשר יהיה ליצור בדיקות מתוך האפיון, האפיון צריך להיות מאד מאד מפורט, ולתאר כל מצב, ומה צריך לקרות בו. אם יש אפיון כזה מפורט, השלב המתבקש הבא הוא שמהאפיון הזה פשוט תיגזר התוכנה עצמה. נשמע הגיוני? ממש לא – כל מה שעשינו כאן זה לקחנו את הבעיה של כתיבת קוד, והעברנו אותה למקום אחר – כתיבת האפיון.
    כל הדיון הזה היה מאד מפתיע מבחינתי, כי לי נראה שספולסקי הוא מתכנת באופיו ולכן אמור לצדד בגיקים, אבל למעשה בדיון הזה הוא תומך ב”חליפות”, כלומר במקבלי ההחלטות הבלתי טכנולוגיים…
    אך נראה שבצדק:] בהמשך, הוא מציג את ה”חליפות” כאנשים המודדים איכות של מוצר עפ”י שביעות רצון המשתמשים. הם עושים זאת מפני ששביעות רצון של משתמשים מיתרגמת לכסף, אך מתוך שלא לשמה בא לשמה – הם דואגים שהמוצרים יהיו שמישים, נעימים למראה, ועונים על צרכים של קהל גדול ככל האפשר.
    בסופו של הדיון הוא מוכיח את דבריו ע”י דוגמה של ויסטה: לטענתו, ה-QA היחידי המתבצע במיקרוסופט היום הוא מהסוג האטומטי. אחת התוצאות היא שגרסת ויסטה היא לגמרי בלתי-עקבית ובלתי-מהוקצעת. הרבה בעיות ברורות הגיעו לשלב הסופי של המוצר… אף אחת מהן היא לא “באג” לפי ההגדרות של הסקריפטים האוטומטיים, אבל כל אחת מהן תורמת לתחושה הכללית שויסטה היא downgrade מ-XP. ההגדרה הגיקית של איכות ניצחה את ההגדרה של החליפות; אני בטוח שהסקריפטים האוטומטיים בויסטה מניבים 100% הצלחה כרגע במיקרוסופט, אבל זה לא עוזר כשכמעט כל סקירה טכנולוגית ממליצה לאנשים להישאר עם XP לזמן ארוך ככל האפשר. מסתבר שאף אחד לא כתב סקריפט שבודק אם ויסטה מספקת למשתמשים סיבה משכנעת לשדרג מ-XP

http://www.joelonsoftware.com/items/2007/12/04.html
בחלק השני ספולסקי מדבר על מקומות שבהם עבד, ומשווה אותם זה לזה מבחינת היחס למתכנתים מבחינה מקצועית (יש מקומות שמתייחסים למתכנתים כקלדנים משוכללים…), ומבחינת תפקוד ההנהלה.

http://www.joelonsoftware.com/items/2007/12/05.html
בחלק השלישי הוא מספר איך הקים את החברה שלו, ואת הבלוג שלו. בענווה מסויימת הוא מציין שלדעתו הסיבה שהבלוג שלו כל כך מצליח (בין 100,000 למליון קוראים בחודש) הוא בגלל שהוא כתוב בפונט קצת גדול מהרגיל…

בסה”כ 3 קורסים שהוא לקח בייל סייעו לו בדרכו המקצועית: קורס אחד שהוא נשר ממנו אחרי שיעור אחד; קורס אחד שבו הוא כתב קוד במשך 40 שעות בשבוע; וקורס אחד שהיה כל כך בזוי בעיני המחלקה למדעי המחשב, ששעות הלימוד של הקורס הזה לא נכללו במכסת הנקודות לקראת תואר.

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

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.