פיתוח עסקי

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

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

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

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

כשהתחלנו היה אסמבלר, אח"כ פורטרן, ליספ, וקובול הדור הבא כבר כלל את בייסיק, ו-C, אז הגיחה SQL שאחריה פחות או יותר התחילה המהפכה לקרות: C++ אחריה ארלנג, פרל, פייתון, רובי, ג’אווה ועוד… הרשימה חלקית מאוד, אבל לדעתי ניתן לראות דפוס מאוד ברור של מעבר משפות שדורשות הבנה של החומרה לשפות שדורשות הבנה של עולם הבעיה או כמו שאני קורא לו: המוצר.

נקודה 2: כל מפתח הוא מנהל מוצר

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

נקודה 3: אם העולם העסקי לא מעניין, אולי אתה לא בעבודה הנכונה

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

נקודה 4: התהליכים ותפיסות העבודה דוחפות לכיוון.

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

רגע רגע. אנחנו בני אדם, וככאלה אנחנו שונים זה מזה.

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

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

*מקור התמונה: http://www.flickr.com/photos/lynhdan/2409859979/

9 Responses to “פיתוח עסקי”

  1. Lior says:

    אלעד ידידי האדום
    אני רוצה להוסיף משפט נוסף…..
    “אני מנהל מוצר, זה מה שלמדתי, זה מה שמעניין אותי. לא מעניין אותי הצד של הטכנולוגיה
    ולא מעניינים אותי המפתחים”

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

    מקווה שאני הוספתי לרעיון ולא גרעתי :-9

    • eladsof says:

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

      הוספת :) תודה.

  2. חיים says:

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

    • eladsof says:

      חיים, גם אני אהבתי את התגובה של ליאור, אבל יש לי קושי להסכים עם התגובה שלך.
      1) אין לי אג’נדה אחרת מלבד לחלוק את דעותי על איך אפשר להשתפר בעולם התוכנה, אני לא מתבייש בזה שאני חושב שאג’ייל זה דבר טוב, אבל אין לי אג’נדה כזאת.
      2) אג’ייל זה לא אופנה, בטח לא חדשה. לא שמעתי אף אחד אומר ש-#C זה אופנה חדשה, והיא – יותר חדשה מאג’ייל.
      3) יש טשטוש גבולות ולטעמי זה כבר לא משנה אם זה נכון או לא, זה מה שקורה, וזה קורה מהיום הראשון שפיתחתי תוכנה פחות או יותר, תמיד היתה לי (ולאנשים סביבי) דעה על איך המוצר צריך לעבוד, לא תמיד צדקנו, בטח ובטח שלא היינו מומחים, אבל היה אכפת לנו, עניין אותנו, רצינו להשפיע ועל זה אני מדבר.
      4) לי אין ציפיה שאנשי מוצר יבינו פיתוח תוכנה, באמת שאין לי, ההבדל המשמעותי בין הדברים לטעמי הוא שמוצרים כולנו מכירים מהיום-יום, וככאלה יש לנו דעה ואנחנו מסוגלים להבין את זה ברמה זו או אחרת, תוכנה לעומת זה זה משהו שרוב האנשים לא מכירים, לא מבינים, ואין להם נגיעה לנושא כלל. לכן קשה יותר לצפות שאנשים שאין להם מושג ירוק מה זה יוכלו או ירצו להיכנס לשם.

      זו דעתי.

      • Lior says:

        אלעד,
        אל תפסיק לחלוק את הדעות שלך! תמיד שמח לקרוא את מה שאתה כותב, רוב הזמן גם מסכים :-9.
        יש יגידו שאני משוחד…….
        אני חושב שזה חשוב שכל אחד יבין את הכאבים של המפתחים…. ויש לא מעט כאלו.
        כמו כן לא יזיק לכל אחד ללמוד כיצד ליצור תוכנה, מצרף וידאו מעניין.
        http://www.youtube.com/watch?feature=player_embedded&v=nKIu9yen5nc

        מה אתה אומר?

    • ליאור (אחר) says:

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

      • חיים says:

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

  3. Orna says:

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

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

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

    כמובן למי שמתאים לתחומים הניהוליים/שיווקים – בהחלט יש מקום למעבר בין התחומים והכרת כל התחומים בהחלט יכול לסייע להבנה רחבה יותר. אבל חשוב להשאיר מקום להתפתחות אנשים שונים בכיוונים המתאימים להם בלי שהדבר ייראה “לא לגיטימי” בעיני אחרים.