האם פרויקטי תוכנה הם משהו מיוחד?
לא יודע, אבל אני מעריך שכן. אתה צודק ב-100% כשאתה אומר: "מה שמנהלי פרויקטים ובכלל אנשי מחשבים צריכים לעשות זה לקחת צעד אחד אחורה, להסתכל על תחומי חיים אחרים בהם גם יש "פרויקטים" ולהבין שיש הרבה תחומים בהם פרויקטים כן מסתיימים בזמן, כן עומדים בתקציב וכן נותנים תוצר כפי שהתבקש" אבל יש גם הרבה תחומים שבהם זה לא פועל כך, גם עבור אנשים מנוסים. למשל - הפיאסקו האחרון של הרכבת... מבלי להכנס לסיבות שחיזוי נכשל במקרים ספציפיים, נראה לי שככל שפרויקט יותר מורכב, כך גם גרועה יותר יכולת החיזוי לגביו. פקטור נוסף הוא החדשנות - אם זה לא משהו שעשית בעבר, קשה להעריך מה הוא ידרוש ממך. מנסיוני האישי, החיזויים שאני במצע לגבי דברים חדשים הם אלו שבהם אני מפספס הכי הרבה (בשני הכיוונים, אבל בד"כ לכיוון האופטימי מדי). ניקח את הדוגמה של בניית בית. נניח שאתה קבלן, ובנית כבר עשרות בתים. לבנות גג זה משהו שלוקח לך תמיד אותו הזמן, ואין לך בעיה להעריך כמה זמן וכסף זה ייקח. גג זו בעיה פתורה. כנ"ל לגבי פיר של מעלית. וחלונות. בעצם, בניית בית היא בעיה ש-80% ממנה כבר פתור לחלוטין. כשאתה בא להעריך עלות של בית, 80% נתון לך, מחישוב של חדרים, קומות, שטח וכו'. ב-20% הנותרים אתה יכול לפספס, אבל זה זניח לעומת העלות הכוללת. נחזור לתוכנה - גם כאן יש חלקים שהם בעיות פתורות (מסד נתונים, למשל) וחלקים חדשים (אינטגרציה בין החלקים השונים, קצת BL). הקטע עם תוכנה - אם הבעיה פתורה, אז העלות שלה נמוכה בהרבה מחשיבות הרכיב במערכת (אתה לא מתכנת מחשב את ה-DB, אתה קונה אותו, או אפילו מוריד אותו בחינם מהאינטרנט). כתוצאה מהתכונה המשונה הזאת של תוכנה - reusability, העלות של הפרויקט מבוססת בעצם על החלקים החדשניים יחסית - אלו שקשה להעריך. מכאן יוצא שכשאתה מנחש כמה משאבים הפרויקט יצרוך, אתה מבצע יריה באפלה. למעשה, זה פלא שאנחנו מצליחים להתקרב לפקטור של 2...