עניינים של MVP ודברים שלמדתי מעבודה עם סקראם

  • פותח הנושא choo
  • פורסם בתאריך

choo

Active member
לפני שהגעתי לחברה הנוכחית, עבדתי במשך כ-3 שנים בסקראם, בתור product owner. בחברה הנוכחית חזרתי לתפקיד פיתוח, והגעתי כדי להרים פיצ'ר גדול חדש (לאחר תקופת לימוד של המערכת שכללה כמה פיתוחים קטנים במערכת הקיימת).

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

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

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

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

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

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

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

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

קלייטון.ש

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

d70

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

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

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

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

קלייטון.ש

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

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

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

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

choo

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

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

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

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

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

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

קלייטון.ש

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

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

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

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

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

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

choo

Active member
אתה ממשיך לבלבל בין יושרה לבין דברים אחרים.

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

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

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

קלייטון.ש

Well-known member
אתה ממשיך לבלבל בין יושרה לבין דברים אחרים.

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

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

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

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

choo

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

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

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