אני כבר לא יודע למי מכם להגיב ../images/Emo13.gif
תכל'ס - כולם צודקים. זה משהו שדורש פשרה, ברור שאפשר לשפר אלגוריתמים בלי סוף, ולקבל פרס טיורינג על שיפור בספרה העשירית אחרי הנקודה של המקדם, אבל הזמן שזה יקח יגרום לחברה לפשוט את הרגל. מצד שני לפתור כל בעיית ביצועים על ידי "תקנה עוד זכרון" זאת בהחלט לא תשובה שהייתי מצפה ממהנדס תוכנה. אולי מהנדס תעשיה וניהול בלי הרבה נסיון יכול לזרוק כזה דבר, מהנדס תוכנה צריך לדעת יותר טוב. שיפור על ידי חומרה זה שיפור זמני בלבד, הוא מתבסס על הנחה שנפח הנתונים לא ישתנה (הנחה לא נכונה ברוב המקרים, עסקים אוהבים לגדול בד"כ), ודומה לפלסטר ששמים על פצע מזוהם - שלא יראו, אולי יתרפא מעצמו. אולי כן, אבל אם לא - הנזק יהיה גדול פי כמה. לכן לפני שאומרים "תקנה עוד זכרון" צריך לעשות ניתוח ולראות איפה הבעיות. אולי הטיפול בבעיה אכן ידרוש חודשים של עבודה, כשתיקון על ידי חומרה יכול לתת מענה הולם, שוב, בהתבסס על אותה ההנחה. אבל זה דורש בדיקה וניתוח. לדוגמא שנתתי, האלגוריתם לא רץ במסד הנתונים (במקור), אבל אחרי התיקון והשיפור, חלקו דווקא כן רץ במסד הנתונים, וזה מה שהאיץ במידה מסוימת את הביצוע. במקור האלגוריתם היה אמור להיות יותר מבוזר ולרוץ על מחשבי קצה תוך קשר רציף עם המסד, כשהמסד משמש גם כצומת תקשורת בין כל מחשבי הקצה. כשחושבים על זה קצת לעומק, ילד בכיתה ד' היה עולה עם רעיון יותר טוב. כשעושים דברים בדיעבד, לעומת זאת, גם התיקון פרקצ'י, וגם לוקח יותר זמן ליישם אותו, במקרה של הפרוייקט הנ"ל - זה הרג את הפרוייקט, שיכול להיה להכניס יותר ממאה אלף דולר עבור כל לקוח (ולפני צאת הגרסה הראשונה, הדפוקה, היו יותר מ15 לקוחות שחיכו, אחרי שהגרסה יצאה, רק לקוח אחד חיכה לגרסה המתוקנת).