כותרות TheMarker >
    cafe is going down
    ';

    ניהול פרויקטים, החיים, ומה שביניהם

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

    זמן יקר הרבה יותר מכסף

    2 תגובות   יום שבת, 14/2/09, 15:46
    זמן הרבה יותר יקר מכסף

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

    כדי להסביר את טענתי אני בוחר להתמקד בפרויקטים של פיתוח תוכנה.

    מה המיוחד בפרויקטים של פיתוח תוכנה?

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

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

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

    זמן יקר יותר מכסף 

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

     

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

     

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

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

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

     

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

     

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

     

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

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

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

    ועל כך בפוסטים הבאים...

    שלכם, ניצן

    דרג את התוכן:

      תגובות (2)

      נא להתחבר כדי להגיב

      התחברות או הרשמה   

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

      /null/text_64k_1#

      RSS
        26/2/09 10:17:


      בנאדם! השתגעת!

      לא הבנתי כלום

      (האמת שכן הבנתי

      למרות שאתה כותב

      ככל הנראה כמו שאתה מדבר

      ולכן זה היה קצת בלאגן בשבילי)

       

      אבל

       

      בסוף הפוסט חיכיתי שתעשה

      איזשהו קישור לעולם הרוחני

      שלנו בניי האדם החיים במרחב

      היומיומי. משהו שיוכל לגרום לי להבין

      את הפואנטה של הפוסט ביחס לחיים שלי עצמי

      (באם אני לא מהנדסת תוכנה. ואני לא!)

       

      אחלה פוסט (-:

        14/2/09 18:39:
      אהלן, קודם כל תתחדש על הבלוג – כמדומני זה הפוסט הראשון. חזרה לפוסט – קראתי את הפוסט (פעמיים האמת) ולא הבנתי בדיוק את ההסבר של טענתך (ערכו של זמן יותר יקר מכסף...). הפוסט שלך החזיר אותי לקורס למבוא למקרו\מיקרו כלכלה אבל במקום להשתמש במונחים הרגילים די בלבלת אותי (בדרך כלל בכללה כמשתמשים במכונות פס ייצור מתכוונים למשהו מדיד בניגוד לתוכניתן שכמובן שיש תוכניתן שכותב ועושה איקס בזמן מסוים בתלות מסוימת ויש תוכניתן שעושה Y בזמן... בכל אופן – בהצלחה.

      תגובות אחרונות

      ארכיון

      תגיות

      פרופיל

      ניצן מירב
      1. שלח הודעה
      2. אוף ליין
      3. אוף ליין