ניהול פרוייקטי תכנה

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

הערכתי הערכה מופרזת בטח את הפרוייקט אתם בטח חושבים, אז זהו שלא.

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

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

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

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

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

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

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

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

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

אה ועוד פרט קטן, הפרוייקט כתוב ברובי, ולמרות הפיטצ'ר החדש, השכתוב גרם לי לכתוב פחות קוד, בעוד שיש לו הרבה יותר יכולות. מה שמדהים אותי, הוא שאחרי 5 שנות פיתוח בשפת רובי, אני כותב קוד קל ופשוט יותר מאשר לפני 3 שנים. ואם אומרים שלוקח 10 שנים לדעת שפה, מעניין מה יקרה עוד 5 שנים מהיום עם השפה🙂

4 מחשבות על “ניהול פרוייקטי תכנה

  1. elcuco

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s