סקר חדש - הצלחה / כשלון של פרויקטים

עידו פ

New member
סקר חדש - הצלחה / כשלון של פרויקטים

כל מי מאיתנו שאי פעם עבר הרצאה על מצב הפרויקטים בארץ זוכר את השרטוט של ארבעת הרבעים המתארים את הצלחת הפרויקט (לו"זים ותקציבים) אל מול הצלחת המערכת (התאמתה לדרישות הלקוח). אז מה דעתכם שנבדוק אם המספרים אכן נכונים ? הצביעו בסקר החדש לאיזה "רביע" אפשר לשייך את המערכת האחרונה עליה עבדתם
 

arn0n

New member
אפשר לקבל ציור והסבר?

לאלו מאתנו שהבריזו מההרצאה הזאת...
 

עידו פ

New member
בכיף

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

arn0n

New member
הניסוח מבלבל אותי

אין דבר כזה חריגה מהזמן והתקציב... אם אין זמן, אז אין לאן לחרוג. אם אין כסף, כנ"ל. החריגה, אם ישנה, היא חריגה מההערכה. אם המערכת מתאימה לצרכים ונכנסה לשימוש, סימן שהושקעו בה הזמן והתקציב שנדרשו להביאה למצב הזה. עכשיו נותרה רק השאלה אם ההערכות של הזמן/התקציב היו ראליות... מה שאני מנסה לומר זה שאין כ"כ הבדל בין פרויקט מוצלח שחורג לבין פרויקט מוצלח שאינו חורג. ההבדל הוא רק ביכולת ההערכה מראש של המשאבים הנדרשים. המצב שהפרויקט אינו מצליח לבנות מערכת הוא כזה שבו אין המשאבים הדרושים (בין אם הם אינם קיימים, או אם אינם מתועדפים לטובת הפרויקט), וזה נובע גם כן מהערכה מוקדמת שגויה. אם הפרויקט הצליח בבנית המערכת, אבל היא אינה בשימוש, אז יש כאן בעיה של לקוח שלא יודע מה הוא רוצה... ושוב אין כאן בעיה של משאבים. לפי הניתוח הזה, השאלה היא: האם פרויקט שנתן הערכת משאבים אופטימית מדי הוא פרויקט שהצליח או נכשל? או, אם להתייחס לציור, האם פרויקט זכאי להקרא "מוצלח" אממ הערכת המשאבים שלו היתה פסימית? התשובה שלי: אם המשאבים שהושקעו בפיתוח הפרויקט הוכיחו את עצמם (בחסכון, או ברווחים), אזי הפרויקט מוצלח. לתלות את הצלחת הפרויקט כולו בשלב המאד ראשוני של הערכת העלות שלו?! כמו שאמר מישהו, זה מאד קשה להתנבא, במיוחד לגבי העתיד. אם אני יודע מראש שמערכת מסוימת תתרום לי X דולרים בשורה התחתונה, והערכת עלות המערכת היא X/10 , אז לא קרה שום דבר אם העלות הממשית היא X/5 - עדיין שיפרתי את השורה התחתונה. עוד משהו קטן: לפי הציור, רק 20% מהפרויקטים עומדים בהערכת המשאבים שלהם (ללא קשר לתוצר הסופי שלהם). זוהי ססטיסטיקה חסרת משמעות - היא לא אומרת שהניהול של 80% מהפרויקטים אינו מוצלח; מה שהיא אומרת זה שהערכת המשאבים הדרושים מראש היא עניין ליידעונים ולמכשפות. מה שמעניין הוא: * בכמה הפרויקטים חורגים מההערכה? ז"א, כמה אחוזים מהפרויקטים חורגים ב-50% מהמשאבים? כמה חורגים ב-100%? כמה חורגים ב-200%? כמה העלות הממשית היתה יכולה להיות מצומצמת ע"י אופן ניהול שונה? עם נתון כזה אפשר אולי לנסח חוקים שיכולים לסייע לתת הערכות ראליות. * מה המתאם בין עלות הפרויקט והתועלת שהופקה ממנו בסופו של דבר?
 

עידו פ

New member
-->

1. ישנם פרויקטים שבהם הזמן הוא מוגדר ולא גמיש וכל חריגה ממנו תגרור הפסקה של הפרויקט (כמו נניח תיקון מערכות לפני באג 2000), אבל הרבה מהמערכות מפותחות כאשר הלו"ז נקבע אך אפשרי לשינוי (לרוב זה גם אומר שאם חורגים אז נקנסים כספית, אבל זה כבר עניין אחר). 2. כסף כמובן שזה מגבלה - אם אין כסף אין פרויקט, אבל גם זה ניתן לשינוי - אם אתה מפתח פרויקט פנימי לארגון, אתה יכול לבקש עוד כסף (לא אומר שתקבל, אבל זה לא מונע מלבקש). אם אתה מפתח פרויקט חיצוני, אתה יכול לקצץ רווחים (גם זה לא הכי מומלץ, אבל זו גזרת המציאות) 3. מערכת שמתאימה לצרכים - ייתכן מאוד שחרגה מהלו"ז. אני מכיר מערכות שניתנו שנה אחרי המועד המקורי, ולמזלנו, הצלחנו "לסבן" את הלקוח ולהסביר לו שהלו"ז נדחה בגלל סיבות שלא בשליטתנו (מה שנאמר - המנתח עשה את שלו, ראש הפרויקט יכול ללכת). מאוד יכול להיות שהערכות היו לא ריאליות - אבל הערכות לא ריאליות משקפות ניהול לא מקצועי. 4. ההבדל בין פרויקט מוצלח שחורג לבין כזה שלא חורג - תחשוב על דוגמה מקבילה - אתה רוצה לבנות בית והמהנדס (או מי שזה לא יהיה) אומר לך שזה יקח חצי שנה. אחרי חצי שנה, כשרק הקיר החיצוני בנוי, אתה תהיה באחד משני מצבים : א. אם יש לך איפה לגור בינתיים - המהנדס טמבל אבל אתה יכול לחיות עם זה (או לחילופין - הפרויקט מנוהל לא טוב אבל אני מסוגל לספוג את הבעיה בלו"ז) ב. אם אין לך איפה לגור - אתה שובר למהנדס את הרגליים (או לחילופין - זורק את מנהל הפרויקט ומביא אחד אחר או מכריז על הפרויקט ככשלון וקונה מוצר מדף) 5. פרויקט שמצליח אבל מספק מערכת לא טובה - מי אמר שזו אשמת הלקוח ? אולי המנתח לא הצליח להבין את הלקוח ? אולי מנהל הפרויקט בא בגישה של - "יש לי אפיון, תן לי חצי שנה ואני מביא לך מערכת" מבלי להראות ללקוח את תוצרי הביניים ?! זה שמערכת לא מתאימה ללקוח אין זה אומר שהלקוח טעה (הרי הלקוח תמיד צודק, לא?!) אני יכול להרחיב עוד הרבה, כי כל מה שנרשם כאן לעיל זה על קצה המזלג בכל הקשור לניהול פרויקטים. ולגבי השאלה הקטנה בסוף - יש גם טבלאות שמציינות כמה מהפרויקטים חרגו בכמה אחוזים. אין לי את השקף, אבל למיטב זכרוני מדובר על כך שמרבית הפרויקטים חורגים ב-50% מהלו"ז ומהתקציב (כלומר, תוספת 50% להערכה המקורית) ואילו חריגות של 100% או של מינוס 50% (הגיע לפני הזמן ופחות מהתקציב) הן יותר נמוכות בהרבה.
 

arn0n

New member
לחדד את הנקודה

יש הרבה סיבות לאי עמידה באילוצים (זמנים/משאבים). אני טוען שניהול גרוע הוא סיבה אפשרית, אבל לא עיקרית. חיזוי גרוע של המשאבים הנדרשים היא סיבה הרבה יותר נפוצה, בגלל הקושי (האובייקטיבי) הכרוך בכך. אנשים פשוט נוטים להערכות אופטימיות: הגופים המעריכים אוהבים לתת הערכות אופטימיות והגופים המחליטים אוהבים לקבל הערכות אופטימיות. זה לבדו יכול להסביר את 80% הפרויקטים שאינם עומדים באילוצים. ולכן, להחליט שפרויקט נכשל ניהולית בגלל אי עמידה במשאבים המוערכים מראש, זהו זלזול בשאר המרכיבים של ניהול הפרויקט. על גבי זה, צריך להוסיף שגם אם פרויקט הוא קטסטרופה מבחינה ניהולית, מה שקובע הוא מבחן התוצאה: האם המערכת שסופקה בסופו של דבר, משתלמת. אם כן: פרויקט מוצלח. אם לא: פרויקט כשלון. לגבי נקודה 5 - אנו לא באמת חלוקים: אם הפרויקט מתנהל לא טוב, ולכן מביא מעכרת שלא נותנת ללקוח את מה שהוא ביקש - זהו פרויקט שנכשל בהבאת המערכת, ללא קשר לעמידה בלו"ז. אם הפרויקט מתנהל טוב (תקשורת עם הלקוח וכו'), אבל הלקוח (ואני מחשיב את מנתח המערכת כשליחו של הלקוח) ביקש משהו שהוא לא צריך - אז הלקוח פישל, ולא מנהל הפרויקט. יש לי דוגמה ספציפית למקרה כזה - פרויקט ענק של הסבת מערכות מ-MAINFRAME לסביבה מבוזרת. הפרויקט הסתיים בהצלחה, ונעשה בו שימוש שוטף. אני מגדיר את הפרויקט הזה ככשלון, מכיוון שעלויות התחזוקה של המערכת החדשה גבוהות בהרבה מעלויות התחזוקה של המערכת הישנה, והשורה התחתונה נפגעה. מי שאשם הוא הלקוח שהחליט שהוא צריך את ההסבה, ולא הספק, שעשה עבודה טובה...
 

עידו פ

New member
כל פרויקט בכל תחום

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

arn0n

New member
האם פרויקטי תוכנה הם משהו מיוחד?

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

עידו פ

New member
בשביל זה קיימת הנדסת תוכנה

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

ייוניי

New member
אבל reusablity אמור לעזור

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

arn0n

New member
כן, אבל...

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

עידו פ

New member
שכחתי לגבי כשלון מערכת=כשלון פרויקט

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

ייוניי

New member
אני חושב שההסתכלות הסטנדרטית

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

עידו פ

New member
כפי שציינתי, קיימים שני סוגים של

פרויקטים (בגדול) - פנימיים (שמפותחים לארגון עצמו) וחיצוניים (שמפותחים עבור מישהו חיצוני). אני לא יודע להעיד אם הסטנדרט זה בית תוכנה, כי אני לדוגמה ב-8 השנים האחרונות עסקתי רק בארגונים ואני לא יודע ממש להעיד אם יותר מ-50% מהמערכות שמפותחות ברחבי העולם (ובארץ) יותר נוגעות לבתי תוכנה או לארגונים (אבל יש לי הרגשה שזה נוטה יותר לארגונים דווקא).
 

ייוניי

New member
גם בתוך ארגון

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

liortm

New member
בסופו של יום הרוב מפותח בתוך הארגון

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