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