יום שישי, 27 בינואר 2017

קצת על העבודה

זה כזה:


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


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


 


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


 


אני לא מבינה את השפה שלהם פה. אפילו המנהל שאמור להיות ישראלי הוא יותר אמריקאי מישראלי. הוא אמנם יותר קרוב לישראלי מאמריקאים אחרים אבל בהתנהלות שלו הוא יותר אמריקאי ואני לא מבינה אמריקאים. למה אי אפשר להגיש פשוט מה אתה רוצה?


 


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


 


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


OK, enough of that squeaky clean techno talk. Emotionally, most developers make a strong distinction between a class and a struct. A struct simply feels like an open pile of bits with very little in the way of encapsulation or functionality. A class feels like a living and responsible member of society with intelligent services, a strong encapsulation barrier, and a well defined interface. 


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


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


 


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


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


 


לפחות הנסיון שאני מקבלת פה יהיה מאוד בעל ערך בהמשך הקריירה. 


 

16 תגובות:

  1. אני מדעי הרוח, אז לא הבנתי פה הרבה, אבל אני מאוד נהנית לקרוא אותך.

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

    השבמחק
  3. כמו כל אופנה שמגיעה לפרקים - הגיעה גם תורה של AGILE. קשקוש נחמד שהפך לתורה ומשנה סדורה. יעבור ויגיע הדבר הבא שכולם יעשו...
    אבל אני אהבתי דווקא את התובנה שלך לגבי תרבות הווכחנות הישראלית: להתווכח על כלום באדיקות, להתווכח אפילו שמסכימים, העיקר להגיד את המילה האחרונה. להיות צודק ולא לצאת פראייר...
    (<a href=http://www.ynet.co.il/articles/0,7340,L-4913500,00.html)http://www.ynet.co.il/articles/0,7340,L-4913500,00.html)</div>
    האמריקאים איומים בהרבה נושאים, אבל יש גם הרבה תחומים ללמוד מהם ואחד מהם הוא תרבות דיון ותרבות ארגונית. 

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

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

    השבמחק
  6. כנראה שהתרבות הזו יותר הגיונית ושומרת על סביבת עבודה נעימה יותר אבל מצד שני כשאני מנסה להתייעץ במייל עם אנשים לגבי מתנה למזכירה שעוזבת ושני אנשים עונים לי שהם חושבים שונה ממה שאני חושבת but you know the best זה מרגיש לי מתנשא. לעזאזל, אני שאלתי מה דעתכם, לא ביקשתי שתאשרו את הדיעה שלי, תגידו אני חושב ככה וזהו. אל תוסיפו את הפאסיב אגרסיב של תעשי מה שאת חושבת, זה רק אני והדיעה הלא חשובה שלי. 

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

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

    השבמחק
  9. ממש עשית לי חשק לחזור לכתוב קוד  
    בכל מקרה, I as a product manager מוצאת המון שכל ב agile. ולו כי תוך שבועיים שלושה יש לי תוצרים שאני יכולה לבדוק מול לקוחות אמיתיים ואם לא דייקתי, יכולה לכוון יותר טוב ושוב לקבל תוצרים זריזים.
    זה הרבה יותר יעיל והגיוני מהשיטה הקודמת שבה תכננתי מערכת שלמה שלקח חצי שנה לפתח ורק אז לגלות שאף אחד לא מתכוון להשתמש בשני מודולים ובארבע אחרים ישתמשו בקושי ובפיצ’ר שהכי צריכים, נצטרך להשקיע עוד חצי שנה....

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

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

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

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

    השבמחק
  14. מישהו בטח מגדיר לכם מה לעשות, נכון? אז זה הוא... ואם אין לכם לקוחות, אתם צריכים להזדרז שבעתיים ולצאת עם משהו שתוכלו להראות ללקוחות פוטנציאליים ולהוכיח product market fitץ ז״א שמישהו בכלל צריך את מה שאתם בונים

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

    השבמחק