רברס עם פלטפורמה

רברס עם פלטפורמה

By רברס עם פלטפורמהTechnology
Download on the App Store

רברס עם פלטפורמה episodes

  • 444 GPU databases
    [קישור לקובץ mp3]פרק מספר 444 (!) של רברס עם פלטפורמה - אורי ורן מארחים באוגוסט החם את שחר מחברת SQream [הגייה: כמו Scream, רק עם Q . . . ] כדי לדבר על GPU Databases.(רן) דיברנו בעבר על GPU בהקשרים אחרים [נגיד כאן - 363 GPU @ Nvidia], בעיקר בהקשר של Deep Learning ועיבוד גרפי, אבל עוד לא דיברנו על GPU ל-Databases, או לפחות לא הקדשנו לזה פרק שלם - אז אני שמח לעשות את זה היום.

    ולפני שנצלול פנימה - כמה מילים עליך, שחר:
    • (שחר) שחר פיינס - נשוי לעדי, אבא ליואב, נדב ונעמי מהרצליה, Senior Product Manager בחברת SQream.
      • מגיע מרקע של פיתוח - הייתי מפתח, ראש צוות וארכיטקט - ולאחרונה “חציתי את הקווים” לפרודקט . . . .
      • ניסיון בחברות גדולות - הרבה שנים ב-NICE, ב-Cellebrite
      • ניסיון בעולם ה-Enterprise Software וה-Analytics.
    (רן) מעולה . . אז שוב, שמחים שאתה פה. וקצת על SQream, זאת אומרת - מה עושים שם? מתי נוסדה החברה? מה קורה שם היום?
    • (שחר) אז SQream היא חברה ותיקה למדי - קיימת כבר 12 שנים, ממוקמת בתל אביב, ה-Founder-ים הם עמי גל ה-CEO ורזי שושני ה-CTO, אנחנו כ-150 איש . . . 
    • והמוצר העיקרי שלנו הוא Database, שעובד מעל GPU - וזו הסיבה שלשמה התכנסנו.
    • אנחנו Database, שבעצם מיועד ל-Peta-scale ול-Very Big Data
      • בעבר היינו מפוקסים בעולמות ה-On-Prem וכיום אנחנו מתרחבים ומרחיבים את ה-Offering שלנו לעולמות הענן.

    (רן) אז עולות לי כמה שאלות לראש: אחת זה ברמה הטכנית - איך בכלל אפשר לעשות Database מעל GPU? מה GPU יכול לעזור לך?אבל לפני זה - ואני יודע, אורי, שזה מה שאתה אוהב - “למה בכלל צריך את זה?” . . . . - זאת אומרת, יש לנו כל הרבה סוגים של Database-ים, ו . . . (אורי) השאלה שלי היא האם לפני 12 שנים - היה GPU?
    • (שחר) לפני 12 שנים היה GPU - זו הייתה תחילת הדרך אבל היה GPU ובהחלט, ה-Founder-ים שלנו ראו קדימה והביאו את היוזמה בשלב מאוד מוקדם
      • זיהו את בעיית ה-Big Data, זיהו את ה-GPU שהיה “בחיתולים” ויכול להביא בשורה לעולם הזה
      • אבל כן - הוא כבר הרבה שנים איתנו, ה-GPU . . . .
    (רן) כן, אז נראה לי שכולם מבינים “למה Big Data?” ואת כל ה”V’s” שקשורים אליו - אבל נשאלת השאלה: אוקיי, יש כמה פתרונות בעולם: יש Database-ים  אנליטיים מסוגים שונים, יש Database-ים עם Scale ורטיקלי . . .  יש לא מעט פתרונות בעולם, נזכיר ממש קצת - החל מעולם ה-Hadoop ו-Spark וDatabase-ים כמו Vertica וכו’
    • (אורי) Scale הוריזונטלי (Horizontal) . . . .
    • (רן) הוריזונטלי, כן - התבלבלתי בגלל ה-V.
    אז  מה גורם לבנאדם לקום בבוקר ולחשוב שצריך עוד Database - אבל הפעם מעל GPU, מעבד גרפי שנועד לעיבוד תמונה?
    • (שחר) אז אני חושב שהמוטיבציה העיקרית זה בעצם להביא Database שהוא SQL-י, שזה עולם שהוא מאוד “Comfort Zone” - מאוד מוכר, מאוד נפוץ אצל DBA-ים כמובן, אבל לא רק.
      • בניגוד לעולמות ה-Hadoop למיניהם, שהם חזקים מאוד ונותנים פתרונות טובים ויעילים - אבל הם מורכבים יחסית ודורשים להבין טוב מה הבעיה שאתה רוצה לשאול, איך ומה אתה רוצה לתשאל ב-Data
        • אתה צריך להכין אותו מראש, לעשות את ה-Partitioning או את ה-Sharding בצורה הנכונה
    • ובעצם, בפתרון שהוא מבוסס-GPU אתה יכול לעשות משהו ולתת פתרון של Data מאוד גדול - אבל בלי צורך לדעת מראש מה אתה רוצה לשאול.
      • יש לך הרבה יותר גמישות של איך לתשאל את ה-Data - אתה יכול לקום בבוקר, לחשוב על בעיה עסקית חדשה שאתה רוצה לשאול - ואתה יכול פשוט לכתוב את ה-SQL שלך ולשאול אותה . . . 

    (רן) אז בוא, רגע, ננסה לתרגם את זה לשפה שלי, ברשותך - אז אם ה-Data קטן אז הכל טוב: תכניס את ה-Data איך שאתה רוצה, תאנדקס, אל תאנדקס (Indexing), תתשאל מה שאתה רוצה - הכל יעבוד ואין שום בעיה, ה-Database-ים יכולים להחזיק את הכל בזיכרון וכמה שתנסה להיות לא יעיל הם עדיין יהיו יעילים והכל עובד.כשה-Data גדל, אז יש לך פה כמה אפשרויות - אחת היא לתכנן ממש טוב את השליפות, וזה בדרך כלל בא עם עלות של דה-נורמליזציה והכנסות יותר יקרות, ולפעמים אתה לא כל כך יודע איך הולכות להיות השליפות - וזה אתגר אחד.אפשרות אחרת היא להשקיע הרבה מאוד כסף בהרבה מאוד זיכרון, אולי בביזור מאוד חזק . . . .אבל השאלה היא . . . (אורי) ואז יש גם את שתיהן . . . .(רן) או ביחד, כן . . . .אתה יכול לעשות את שתיהן יחד(אורי) לא בהכרח. . . מערכת שהיא יקרה יותר לא בהכרח תהפוך לך את החיים לפשוטים יותר . . . . ובאמת, אם בעולם ה-Data היום אז Hadoop יושב יותר . .  הוא ה-Data Lake בסוף, הוא ה-Data - שם שטוח, אין שם Index-ים, אין כאילו . . . עושים בסוף MapReduce-ים, וזה לא משנה אם בסוף תשים על זה Hive, לצורך העניין, שנותן לך Interface שהוא SQL-י אז אתה לא חסום על ידי זה שזה SQL או לא SQL - אבל בסוף ה-Data שטוח, והוא לא ממש יעיל לשליפות מהירות . . .  אם אתה רוצה שליפות מהירות אז אתה צריך ללכת ל-Data Warehouse, ששם מאוד חשוב לבנות את ה-Data “נכון”, בשביל השליפה שאתה רוצה - ושם העולם שבו אתם משחקים.(רן) אז אתה אומר “אל תחשוב הרבה מראש - שים את ה-Data, איך שזה נראה לך טבעי, ואנחנו כבר נדאג לזה שהשליפות תיהינה מהירות, באמצעות “הקסם הזה” שנקרא GPU” . . . .
    • (שחר) כן, גם בעצם ההכנסה תיהיה מאוד מהירה וגם השליפה תיהיה מאוד מהירה - ובסופו של דבר, בעיות שאתה רוצה לקבל עליהן תובנות עסקיות בזמן קצר ב-Peta-Scale, אז נוכל לתת מענה באמצעות ה-Database שלנו.

    (רן) אז כששולפים Data מ-Database, אני מניח שיש כמה שלבים - בחיים לא כתבתי Database אבל אני מנחש: אתה צריך לקרוא את זה מהדיסק, אתה צריך להביא את זה לזיכרון, אתה צריך להביא את זה ל-CPU או ל-GPU, לעשות איזשהו עיבוד, לפעמים לעשות Merge או Join בין כמה Data-Sets . . .  אבל ה-GPU זה רק רכיב אחד בכל הסיפור הזה, וגם אם תצליח לשכנע אותי שאוקיי - אפשר לעשות את החישובים האלו יותר מהר עם GPUs, זה בסך הכל רכיב אחד - ואני לא בטוח שזה בכלל צוואר-הבקבוק . . . אולי אתה יודע להגיד?
    • (שחר) אתה צודק בהחלט - ותיכף נדבר על ה-GPU ואיפה היתרונות שלו, אבל זה רק חלק מהעניין.
    • בסוף, אנחנו שילוב של GPU ושל ארכיטקטורה של Shared-Storage - שהשילוב ביניהם נותן לנו בעצם את היכולת - את ה-Linear Scale שאנחנו מציעים ואת היכולת לתמוך ב-Peta-Byte Scale.

    (רן) אז נתחיל אולי מה-Basics - נניח שיש לי קוד של Database שיודע לעשות Merge בין שתי טבלאות, והוא כתוב נניח ב-++C - אבל מעל CPU. איך אתה לוקח  את הקוד הזה ומעביר ל-GPU? פשוט מתרגם את זה אחד-לאחד ב-CUDA או Whatever?
    • (שחר) אז כן - בגדול, התשובה היא כן.
    • אנחנו משתמשים ב-CUDA ובספריות שנותנות לנו לתכנת מעל CUDA כדי לעשות את אותן הפעולות מעל ה-GPU
      • אבל אנחנו בעצם נהנים מריבוי ה-Core-ים, מאלפי ה-Core-ים שה-GPU נותן לנו - ולכן אנחנו יכולים למקבל את אותן הפעולות ולעשות אותן בצורה הרבה יותר מהירה.
    (רן) אז כל תוכנית ב++C - אני פשוט יכול לקחת מה-CPU ולהמיר אותה ל-GPU - וזה ימוקבל? אני מניח שהתשובה היא “לא”, אבל תסביר לי איך . . . 
    • (שחר) זהו, אז לא כזה פשוט . . . . אני חייב להודות שבסופו של דבר אני איש Product ולא איש פיתוח, אני לא יודע יותר מדי לפרט על הדברים האלה.
      • אבל ברמה המאוד כללית ופשוטה, התשובה היא “כן” . . . .
    • מצד שני - אנחנו חברה שקיימת כבר כמה שנים - וזה לקח יותר מיומיים לבנות את זה . . . 
      • אז זה אפשרי, אבל לאו דווקא הדבר הכי פשוט בעולם.

    (רן) אוקיי, אז נניח שאנחנו יודעים לתרגם את הלוגיקה הזאת, שנניח שהיא קיימת ב-MySQL או בכל Database אחר שהייתה כתובה מעל CPU - אל מעל GPU, אוקיי.איך אנחנו פותרים את שאר צווארי הבקבוק? זיכרון, קריאה מדיסק, העברה של Data וכו’ . . . 
    • (שחר) אוקיי, אז כמו שהזכרתי - דבר ראשון, אנחנו עובדים בארכיטקטורת Shared-Storage, שזה אומר שככל שיהיה לנו יותר Compute Node, יותר GPUs - כשה-GPUs יכולים להיות בעצם גם מספר GPUs לכל Node - אנחנו יכולים להעלות את ה-Scale שלנו בצורה ליניארית.
    • אנחנו בעצם עושים שילוב של שימוש ב-CPU וה-GPU, כשה-CPU משתמש לפעולות “הפשוטות” - להכנת ה-Data - כדי להעלות את ה-Data ל-GPU ולהכין אותו לפעולות “הכבדות”, לפעולות שדורשות מקבול.
    • בעצם, אנחנו לוקחים את המידע שאנחנו צריכים כשהוא דחוס, כשהוא מקומפרס (Compressed) מהדיסק ומעלים אותו ל-GPU
      • ב-GPU בסופו של דבר יש זיכרון מוגבל יחסית, ויש לנו את צוואר הבקבוק של ה-Bus, שגם הוא בסוף - ה-I/O הזה - הוא יקר.
    • אז אנחנו מעלים את הדאטה בצורה שהיא מקומפרסת (Compressed), עושים את ה-Decompress על ה-GPU - ואת כל פעולות החישוב וההשואות וכו’ אנחנו עושים ב-GPU עצמו.
      • כשאנחנו שמים הרבה מאוד דגש באלגוריתמים שלנו על להעלות רק את מה שצריך ולעשות רק את מה שצריך ולהיות מאוד יעילים
      • כי שוב - הדגש הוא על Big Data ועל לתת זמני-ריצה טובים בכמויות גדולות של מידע.
    (אורי) אבל בעצם, מה שתיארת עכשיו נכון כמעט לכל פעולה שאתה עושה על GPU . . . . תן לנו איזו דוגמא ל-Flow ש . . . אני לא יודע, 80% מהמאזינים שלנו מכירים - מה ההבדל בין איך שזה מבוצע על CPU ועל GPU? איזשהו Select-משהו-משהו . . . 
    • (שחר) אז אני חושב שהדוגמא הפשוטה ביותר זה לעשות Order-By, לעשות Sort - אלגוריתמית, אין הבדל מהותי בין מה שאנחנו עושים על CPU ועל GPU.
      • ההבדל הוא שבאמצעות ה-CUDA וה-General-Purpose-GPU, אנחנו פשוט מקבלים יותר Core-ים ואנחנו יכולים למקבל את התהליך בצורה טובה יותר ולהאיץ אותו בצורה הזאת.
      • אין פה איזה משהו ברמת האלגוריתם או הקוד שצריך להיות שונה.
    (אורי) אבל אני מניח שיש לך חתיכת-קוד או חתיכת-Data שאתה מריץ עליה קוד, או למשל Sort - יש תלות בין חלקים שונים של ה-Data כדי לעשות את ה-Sort הזה . . .  אז זה לא שאתה יכול פשוט לקחת חתיכת-Data ולעשות עליה מניפולציה מסויימת והיא לא תלויה בחתיכת-Data אחרת, שרצה על Core אחר, נכון? אז איך זה עובד שונה בין CPU ל-GPU?
    • (שחר) אז האלגוריתם עצמו הוא לא מאוד שונה, כי שוב - זה נכון שאני צריך לקחת הרבה חתיכות של Data, למיין כל אחת מהן ובסוף למרג’ג’ (To Merge) אותן ביחד כדי לקבל תוצאה סופית ממויינת.
    • אבל בסך הכל, אני עושה את זה בין חתיכות שאני מעלה ל-GPU - או אם יש לי כמה GPUs במקביל אז בינהם - ובסוף מאחד.
    • הפעולות והאלגוריתם - הוא לא שונה. ההבדל הוא רק בזה שאני יכול לעשות יותר חתיכות כאלה במקביל - וכל חתיכה לוקחת לי פחות זמן, כי אני יכול להאיץ את התהליך באמצעות ריבוי ה-Core-ים.

    (אורי) אז תן לי, רגע . . .  אני זורק פה Statement - בעצם אתה עושה MapReduce, אבל במקום לעשות אותו על Multiple Cores או Multiple Machines ב-Hadoop, אתה מנצל את זה שיש לך “אלף Core- ים”, ואתה עושה את ה-MapReduce בתוך המכונה?
    • (שחר) אז בגדול זה נכון - רק שצריך לזכור שגם יש לי את הארכיטקטורת Shared-Storage
      • זאת אומרת שזה לא רק . . .  אם אנחנו מדברים על MapReduce, אז יש לנו Data Affinity ואנחנו בעצם רוצים להביא את ה . . . .
    (רן) צריך לדאוג “להסיע את ה-Data בין השלבים השונים” . . . .
    • (שחר) בדיוק . . . . .
    (רן) . . . . ופה יש לך Shared Storage, אז זה יותר פשוט.
    • (שחר) בדיוק - בגלל ה-Shared Storage, ככל שיהיו לי יותר GPUs וככל שיהיו לי יותר Nodes . . . .
    (אורי) אבל זה נכון גם ל . . . . זה לא קשור ל-GPU . . . . גם אם אתה עושה את זה על CPU.(רן) כשאנחנו מדברים על “Shared Storage” - הכוונה היא “על ה-Host”? או שיש פה איזשהו Cluster? . . . (אורי) זה NAS . . . .
    • (שחר) זה אפילו SAN, ברוב המקרים . . . אצלנו, בסוף, ה-Bandwidth הוא מאוד חשוב - אנחנו צריכים Throughput מאוד מהיר לרשת . . . 
    (אורי) . . . אחרת זה יהיה ה-Bottleneck שלכם . . . . 
    • (שחר) כן . . . . אז לרוב, אנחנו אנחנו מדברים על פתרונות של Bandwidth - 
      • שזה או ה-NAS-ים עם ה-Very High Scale או SAN-ים או Bucket-ים של ה-Cloud Providers השונים.

    (אורי) אבל יש לי פה שאלה - אנחנו פה צוללים . . . . - נניח שיש לנו Shared Storage ונניח שיש לנו Core-ים על גבי כמה מכונות, ואנחנו נעשה את הפעולות Map שלנו על כל אחת מהמכונות, נכתוב את התוצאות ל-Shared Storage ואז נעשה, עם עוד כמה מכונות, את ה-Reduce - האם גם ברמת המכונה וגם ברמת ה-Memory של המכונה אתם עושים את ה-Map וה-Reduce בפנים, בגלל הארכיטקטורה של ה-GPU? . . . האם ה-GPU פה הוא לא רק “Processor עם מלא-מלא Core-ים”’ אלא גם בארכיטקטורה שלו-עצמו אתם מצליחים בפנים, בתוכו, לעשות חלק מהמניפולציות, בין ה-Compute-ים שנעשים בכל אחד מה-Core-ים האלה?
    • (שחר) כן, אני מבין את השאלה - פשוט לצערי אני לא כל כך  . . . קצת צללנו עמוק ואני לא בטוח לגבי התשובה אז אני לא רוצה סתם . . . .
    (אורי) אוקיי - נעלה, ניקח אוויר ונמשיך.
    (רן) אז בואו, רגע, ננסה להבין איך נראית הארכיטקטורה: אז יש איזשהו Cluster, שיש בו Shared Storage . . . . גודל טיפוסי של ה-Cluster זה - מה? 5? 10? 20? . . . .
    • (שחר) זה מאוד תלוי בגודל ה-Data, אבל לרוב זה סדרי הגודל . . . 
    (רן) אז אלו סדרי-הגודל - לא מדובר על אלפים, כמו נגיד ב-Hadoop, אבל על כן על “תריסר”, נקרא לזה . . . 
    • (שחר) בהחלט, זה הסדר-גודל
    • והרבה פעמים אנחנו מתחרים מול Cluster של Hadoop, שיכול להיות להכיל עשרות או מאות Server-ים . . . 
    (רן) אוקיי - עכשיו, כל אחד מה-Server-ים הוא יקר ויש לו GPU - ו-GPU נכון להיום עדיין יותר יקר, אבל אתה אומר שבחישוב הכללי, כשאתה מסתכל על עלות השרתים ואולי על כל שאר הדברים שמסביב, זה יכול לצאת יותר זול.
    • (שחר) נכון
    (אורי) בתנאי שפתחת את ה-Bottleneck-ים האחרים . . . 
    • (שחר) נכון, כן . . .  בתנאי שיש לך . . . בעיקר את ה-Bandwidth, את הרשת המתאימה.
    (רן) אוקיי, אז עכשיו אני שולח שאילתא - אני מניח שאתם תומכים בפרוטוקולים סטנדרטיים כמו ODBC וכו’ - אני שולח שאילתא שיש איזשהו Node שמקבל את השאילתא ומתחיל לפזר את העבודה בתוך ה-Cluster. ואז עולות שאלות של Redundancy ואולי, אתה יודע - אולי אחד מהם קצת איטי . . . .(אורי) ויש Fragmentation . . . .(רן) כן . . . . ויכול להיות שכרגע הם גם עסוקים בשאילתות אחרות וכו’ - זאת אומרת, זו לא השאילתא היחידה שחיה בעולם, אולי בדיוק מכניסים Data . . . . איך מתמודדים על כל הסמטוחה הזאת, ולמה אתם רוצים את זה? . . . .(אורי) עשרים שנה, בכל זאת . . . .
    • (שחר) אז אנחנו רוצים להתמקד ב-GPU - אנחנו, ברמת ה-GPU, מטפלים בכל זמן נתון בשאילתא אחת
      • או יותר נכון ברמת ה-Worker - אנחנו מריצים Worker-ים על ה-GPU שמטפלים בחתיכות האלה של המידע.
      • אז כל Worker כזה מטפל בזמן נתון בשאילתא אחת - ויכולים להיות כמה Worker-ים שעובדים על GPU.
    • אבל אנחנו . . . מן הסתם זה האתגר - לראות שאנחנו יודעים לעקוב אחרי כל החלקים של השאילתא, לוודא שכל ה-Processing מתבצע בצורה טובה.
      • ומכיוון שגם בסופו של דבר אנחנו ACID Database - אז במידה ויש בעיות, אנחנו צריכים להכשיל את אותה השאילתא ואנחנו צריכים להבטיח Consistency.
    (רן) . . . וזה מעניין - זאת אומרת, אתם Database אנליטי במהותו, אני מניח - ה-Use case עצמו זה לאנליסטים ושאילתות אנליטיות - אבל אתם גם ACID. עכשיו, יש הרבה Database-ים אנליטיים שלא צריכים ACID-י. למה בחרתם להיות גם ACID? תאר לי קצת . . . רק להסביר - ACID מאפשר לנו אטומיות ויכולות טרנזקציוניות וכו’, שאלו דברים שבדרך כלל צריכים ב-OLAP - ב-Database-ים שהם Online Transactional Processing - והרבה פעמים דווקא לא נדרשים ב-Database-ים שהם אנליטיים ושבדרך כלל “נהנים” או יכולים להנות מזמני תגובה יותר איטיים - ובדרך כלל ההכנסות אליהם קורות ב-Batch-ים ואין כל כך חשש לטרנזקציות.למה אתם צריכים גם את זה וגם את זה?
    • (שחר) אז אחד מה- Use cases העיקריים שאנחנו משרתים זה מה שנקרא Data Processing Pipelines -
      • אנחנו חלק מאיזשהו תהליך של ELT או איזשהו תהליך של Crunch של ה-Data ושל הכנת ה-Data.
      • ושוב - באים לענות על הבעיה של “יש לי Data מאוד גדול, אני רוצה לקבל תובנות מהר, ה-Timing הוא משמעותי”
        • אנחנו לאו-דווקא מי שבסוף יתן את התוצאה אלא חלק מה-Pipeline שמעבד את המידע.
      • ובתהליך הזה אנחנו כן - הסידור הוא חשוב: אנחנו צריכים להבטיח Consistency ואנחנו צריכים להבטיח שה-Data יטופל כמו שצריך ושלא נאבד מידע בתהליך.
    (רן) מעולה - הבנו.
    נושא שמדובר לא מעט בזמן האחרון זה Use Cases של  . . . - פעם היו קוראים לזה Data Warehouse, אחרי זה עברנו ל-Data Lake - והיום יש מושג חדש שנקרא Data Lake-house . . . היית מאמין?אז בוא תעשה לנו קצת סדר - מה המשמעות של המושגים האלה? מהם ההבדלים בין שלושת המושגים?(אורי) זה הבית-קיט, ליד האגם . . . .(שחר) בהחלט - אנחנו באוגוסט, מה . . . .(רן) בית-הקיץ של ה-Data . . . 
    • (שחר) אז כן - בואו נלך ונעשה קצת סדר בדברים, בסדר כרונולוגי, מה שנקרא:
    • אז ה-Data Warehouse, כשמו-כן-הוא: הוא היה “המחסן” של ה-Data - 
      • זה בעצם Database, בסופו של דבר, שמנהל את ה-Data.
      • רוב ה-Data היה Data שהוא Structured
      • והוא בסופו של דבר “סוג-של-Database גדול”
    (רן) ל-Data Warehouse - יש לו סכמה מאוד . . . 
    • (שחר) Strict . . . 
    (רן) כן, Strict . . . נפחים - גדולים יחסית? קטנים? יחסית למה ש . . . 
    • (שחר) הכל יחסי - בימים שהוא נולד אני חושב שהם היו גדולים, במושגים של היום זה כבר נפחים לא מאוד מרשימים . . . 
    (אורי) אני חושב שזה תלוי מאוד באפליקציה, כאילו - מאוד תלוי מה האפליקציה שלך דורשת ומה ה-Business שלך דורש. הרבה מאוד מהדברים האלה כמובן משמשים ל-Business Intelligence ואוקיי . . . . עד כמה החברה היא Data-Driven? . . . (רן) אוקיי, אז זה ה-Data Warehouse, אי-שם בשנות ה-80 של המאה הקודמת, פחות או יותר . . . .(אורי) פחות או יותר . . . 
    • (שחר) מאוחר יותר היכרנו את ה-Data Lake
      • שה-Data Lake שהוא בעצם הרבה פחות Strict והרבה פחות  . . . הסכמה היא הרבה פחות מוכתבת-מראש.
      • הפורמטים הם יותר פתוחים - כל מיני Semi-structured כאלה למיניהם.
      • ובעצם הוא “האגם” שאליו אנחנו “שופכים” את כל ה-Data שלנו, מכל המקורות
      • ועדיין - ה-Data יושב ב-Data Lake - ואפשר לתשאל את ה-Data מעל ה-Data Lake . . . 
    (רן) אז לדוגמא - למשל, אפשר לזרוק את כל ה-Bucket-ים ב-S3 - כל אחד שם שם מה שבא לו ואיך שבא לו, בגדול - יכול להיות עם סכמות שונות לחלוטין, יכול להיות עם דופליקציה (Duplication) בין ה-Data-אות - ולפעמים, אם יש לך מזל, יש לך איזשהו Meta-Data שמסביר  מה קורה שם. אז אולי קצת בניגוד ל-Data Warehouse, ששם הסכמה הייתה מאוד Rigid, מאוד Explicit - כאן הרבה פעמים הסכמה היא Implicit. זאת אומרת שאתה יכול להסתכל על הקובץ ולהבין מה יש שם, וכמו שאמרתי - אם יש לך מזל אזי ש שם איזשהו Meta-Data, בחברות שכמובן מקפידות על זה אז יש לך הרבה מזל . . . .אבל בגדול זה די “ביצה” נקרא לזה אולי . . . (אורי) כאילו, S3 הוא Storage - יש שם Data Lake - יש שהם עוד יותר Structured, זאת אומרת - זה לא “סתם Storage” - זה Storage שיש לו פורמט מסויים.(רן) לחלוטין . . . אז גם יש פורמטים יותר מודרניים ויעילים וגם ישנן שיטות אחסון, שגם מאפשרות Consistency וכו’ - אבל עדיין ה-Data הוא הרבה הרבה פחות Structured מהפתרון הקודם . . . אוקיי - אז זה Data Lake . . . 
    • (שחר) נכון, ומה שמשותף גם ל-Data Warehouse וגם ל-Data Lake זה באמת עניין ה-Storage
      • הפתרונות הללו ניהלו את ה-Storage
    • ופה נכנס בעצם ה-Data Lake-house - כשה-Data Lake-house הוא בעצם פתרון שהוא “Storage-less”
      • זה פתרון שהוא Engine - פתרון שעובד מעל פורמטים של קבצים שניהיו מאוד נפוצים בשנים האחרונות כמו  Parquet וכמו ORC וכמו JSON.
        • ובעצם הוא מתשאל אותם כקבצים חיצוניים
        • הוא יודע לקבל מקורות מידע יותר מודרניים, כמו Streaming של Data
      • בעצם, הוא משמש כמנוע שיודע לתשאל את ה-Data - בלי לנהל אותו.
    • בעולם של היום, כשהכמויות של ה-Data הן מאוד גדולות וכשאנחנו לא רוצים לשכפל את המידע, הפתרון הזה ניהיה מאוד מאוד נפוץ ורלוונטי.

    (רן) זאת אומרת ש-Use case טיפוסי הוא כזה שבו יש לך Data Lake-house, שידע לתקשר בחלק מהמקרים עם Kafka ובחלק מהמקרים עם S3 ובחלק מהמקרים אולי עם Database SQL-י כלשהו - והוא “בסך הכל” המנוע החישובי שיודע לעשות אגרגציות (Aggregation) מכולם ולתשאל. הבנתי.
    איך SQream - עם Q! - נכנסת לכל הסיפור? מה אתם?
    • (שחר) אנחנו, מסורתית, היינו Analytical Data Warehouse - וזה גם הפתרון העיקרי שהיום אנחנו Deployed איתו אצל לקוחות קיימים.
    • ממש בימים אלה אנחנו יוצאים עם פתרון חדש - שהוא Query Engine
      • שהוא בדיוק פתרון ל-Data Lake-house - 
        • שהוא Storage-less, שהוא מתקיים בענן
        • ושהוא בעצם אמור לקחת את ה-Core Capabilities שלנו - ולתת אותן כפתרון שהוא Storage-less.
    (רן) אז זה סוג של . . . .(אורי) מה זה משנה איפה הוא מתקיים - אם הוא בענן או “בעולם האמיתי”? הוא בסוף Compute Engine שמתחבר ל-Storage - מה שתרצה . . . .
    • (שחר) נכון, זה באמת לא משנה - העניין הוא שבעולמות הענן, הנושא של “אל תנהל לי את ה-Data!”, “אל תשכפל לי את ה-Data!” זה Pain הרבה יותר משמעותי . . . 
    (אורי) כמו כל דבר בענן . . . 
    • (שחר) נכון . . . נושא העלות הוא רגיש.
    (רן) אז מצד אחד, יש לכם את החוזקה של Compute - אתם יודעים לעשות Compute בצורה מאוד יעילה. Storage זה משהו שהייתם צריכים לעשות כי הייתם צריכים, אבל זה לא היה . . . זו לא הייתה חוזקה.אמרת גם שהשתמשתם גם ב-Shared Storage - אבל פה אתם כבר לא יכולים לעשות את זה, אם אני מבין נכון. זאת אומרת . . .
    • (שחר) נכון . . . 
    (רן) אז איך אתם בכל זאת עושים Compute בצורה יעילה? מצד אחד . . . (אורי) לא רק . . . זאת אומרת, S3 הוא Shared Storage בסוף - אבל המהירויות זה לא SAN . . . 
    • (שחר) S3 מגיע למהירויות מאוד יפות - ב-Instance-ים של GPU, שכמו שאמרנו, בכל זאת אנחנו מדברים Instance-ים שהם קצת יותר יקרים - אנחנו מקבלים מהירויות של 25Gb/s ו-50Gb/s, מהירויות ש-Per-Instance הן Good enough.
    (אורי) Giga-Byte או Giga-Bit? . . . 
    • (שחר) Giga-Bit . . .
    • ואלו מהירויות שבעצם נותנות לנו להגיע לקצבים טובים וגבוהים
      • אין לנו . . . זו לא מגבלה.
    (רן) ונזכיר שאתם Data Base אנליטי, אז מה שחשוב זה ה-Throughput ופחות ה-Latency
    • (שחר) נכון
    (רן) בגלל זה אנחנו מדברים על ה-Throughput, בקיצור . . . .
    אולי נדבר על כמה Use-Cases? - איך אתה רואה אנשים שמשתמשים ב-Database-ים שלכם?
    • (שחר) ה-Use-case העיקרי, אני חושב, שלקוחות שלנו משתמשים בו, זה עולם ה-Manufacturing 
    • בעיקר יצרני Semiconductors ואלקטרוניקה - מכונות עם הרבה מאוד סנסורים, עולמות ה-IOT
      • בעצם, אוספים ברצפת הייצור הרבה מאוד מידע מסנסורים - ובעצם משתמשים באלגוריתמים של Anomaly Detection
      • המטרה שלהם היא כמה שיותר מהר לזהות את הבעיות - עד כמה שאפשר לצפות את הבעיות מראש, עוד לפני שיצאו יחידות תקולות מרצפת הייצור.
      • ובעצם ככה לחסוך, למנוע הפסדים ולהעלות את איכות הייצור.
      • זה Use Case אחד מאוד נפוץ.
    (רן) אז אתה אומרים שמרכיבים ומייצרים Chip-ים ויכול להיות שיש סנסורים שנותנים דיווח שהוא קצת שונה מתמיד - ואז אתה בכל פעם צריך ללכת ל-Database ולתשאל אותו, ואז להריץ Anomaly Detection. ככל שתוכל לעשות את זה יותר מהר . . . כמו שאומרים - “גילוי מוקדם מונע אסון”. ברור.
    • (שחר) כן . . . 
    (אורי) אני לא יודע . . . אני מוצא שכל העולם של Visibility ו-Observability [כזה - 433 Breaking Down Observability with Nitay Milner], גם בתוך מערכות עם הרבה מאוד מידע שזורם כל הזמן . . . כל מי שמחזיק חברת-Web בגודל סביר-פלוס - יש לו כמויות Data שהן לא יותר קטנות מעולם ה-IOT ורצפת ייצור של . . . [הכמויות ברצפת-ייצור הן אסטרונומיות]
    • (שחר) אני מסכים, וכמו שאמרתי - היום, רוב הלקוחות הקיימים שלנו הם מעולמות ה-On-Prem: זה Manufacturing, שזה עולם מאוד “מסורתי”, נקרא לו - ועולם מאוד On-Prem-י באופיו.
    • היום, עם ה-Offering החדש שהזכרתי שאנחנו יוצאים איתו, של ה-Query Engine - איתו באמת אנחנו עובדים היום עם חברות Ad-Tech, חברות Web . . . 
        • שאני לגמרי מסכים - מייצרות כמויות מאוד גדולות של Data, רוצות תובנות מהירות - וגם לשם הפתרון הוא מאוד רלוונטי.
      • זה פשוט חברות שמתקיימות בעולם ה-Cloud - ואנחנו עכשיו, ככה, מתחילים לעשות את צעדינו הראשונים המשמעותיים ב-Cloud.
    (רן) אוקיי, אז דיברנו על חברות Manufacturing ודיברנו על חברות Cloud. יש עוד Use-Case שונה שהיית רוצה להזכיר?
    • (שחר) כן - אני אזכיר כם עולם ה-TelCo.
    • בעולם ה-TelCo, אלגוריתמים של Network Optimization
      • שוב - מקומות שיש בהם הרבה מאוד Data שמגיע מהרשת - מה-Switch-ים, מהאנטנות, מהטלפונים עצמם שמדברים איתם
      • ופה, ה-TelCo רוצה פשוט להעלות את ה-Quality - של השיחות, של ה-Data - שהלקוחות שלו מקבלים.
      • ומצד שני, לחסוך כסף - בסוף, הציוד, האנטנות - צורכים הרבה חשמל, דורשים הרבה Maintenance . . .
        • וגם פה - ככל שנוכל To better tune them ולגלות את הבעיות מוקדם, אז גם הTelco Provider יחסוך עלויות וגם הלקוחות  יקבלו שירות יותר טוב.
    (רן) בקיצור - מצאנו מי אחראי ל-5G! . . . . סוף סוף . . . 
    (רן) שחר - תודה רבה שבאת! היה סופר-מעניין. לא ידעתי שיש Database-ים שאפשר באמת לבנות מעל GPU . . . . זה כיף לשמוע. שיהיה בהצלחה! - (אורי) כבר 12 שנה! . . . - (שחר) תודה רבה, היה כיף.
     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    33 min
  • 443 Hiring for strength, not skill with Sahaf from Hippo
    [קישור לקובץ mp3]
    אורי ורן מארחים בחופשת הקיץ (של הילדים…) את שחף מחברת Hippo, אחרי תכנון של כמעט חצי-שנה, כדי לדבר על איך מגייסים מועמדים לפני החוזקות שלהם ולא בהכרח לפי ה-Skill שלהם.
    (רן) אבל לפני שנתחיל - שחף, ספר לנו שתי דקות על עצמך ועל איפה אתה נמצא היום . . . .
    • (שחף) בשמחה - היום אני ב-Hippo, חברה שנסחרת בבורסה, בנאסד”ק (HIPO)
      • חברה אמריקאית, שבעצם פונה לשוק האמריקאי
        • יש לנו פה בארץ סניף פיתוח - יש לנו גם Marketing ו-Engineering ו-Product וכו’
      • ו-Hippo בעצם נותנת לבתים הגנה - גם ברמה הביטוחית וגם ברמה של שירותים 
        • תיקונים וכל מיני בדיקות לבית - כל מה שצריך מסביב לבית
    • לפני Hippo הייתי בחברת Chegg
      • הייתי כ-10 שנים - מרמה של חמישה אנשים ועד בסוף, כשאני עזבתי, לרמה של בערך 110.
      • נחשפתי וראיתי מה זה לקחת חברה שאף אחד לא מכיר - ואיך אנחנו הופכים אותה למשהו שמוכר בשוק ואנשים רוצים לעבוד בו.
      • ויותר מזה - גם אוהבים ונשארים לאורך זמן
        • אני חושב שזה מאוד מאוד מתחבר למה שאנחנו הולכים לדבר עליו.


    (רן) מעולה! אז כשאני מגייס, אתה יודע - כמו במבצע סבתא [!]: אני מתחיל הכי הכי חזק, ולאט לאט מגביר . . . . תמיד כולם רוצים את האנשים כי טובים והכי מהר - אתמול. זה לא תמיד עובד, מן הסתם . . . .אז אתה יודע - יש תמיד את ה-Desire הזה, לבוא ולחפש את האנשים הכי טובים - אבל מה זה אומר, בעצם? מה זה “הכי טובים” - האם יש דבר כזה “הכי טובים”? האם זה בכלל נכון להשתמש במושג הזה?
    • (שחף) אני חושב שאנחנו לא משתמשים במושג “הכי טובים” - אנחנו משתמשים במושג “הכי מתאימים”
      • וזה משנה כמעט את כל התמונה, כי  . . . 
    • אני יכול לספר על עצמי - אני בא מרקע טכנולוגי, הייתי יועץ בחטיבת ה-Services ב-Microsoft, לפני Chegg
      • והגעתי אחרי זה ל-Chegg - ופתאום אני הבנאדם הכי פחות טכני בחברה . . .
      • כי הטכנולוגיה שהשתמשנו בה הייתה יותר מבוססת Web - ואני הייתי יותר Desktop-י ותחנות-עבודה
      • ואתה פתאום מוצא את עצמך במקום שאתה אומר “רגע, אני ממקום מאוד טכנולוגי ואני כל כך מאחורה - מה זה אומר עלי?” . . .
    • ותחשוב על האנשים האלה, שאנחנו פוגשים לאורך הדרך - מתכנת טוב זה מתכנת טוב, לא משנה איזו שפה תזרוק לו
      • וככה אני הרגשתי וזה גם מה שאני מחפש כשאני מגייס
      • אני מחפש אנשים טובים, אני מחפש אנשים שהייתי רוצה להיות חבר שלהם.
    • ולא רק רוצה - אנחנו גם, אקטיבית, הופכים אותם לכאלה:
      • אנחנו מתחברים אליהם מאוד ומנסים להביא את זה לרמה מאוד מאוד שונה.
    • אז זו כבר שיחה לא על “איזה Talent?” אלא “The Right Talent” - זה כבר הופך  להיות מרמה של Skill לרמה של “האם זה בנאדם שאני רוצה לקום ולעבוד איתו כל בוקר?”
    (רן) כן, אז אתה לא מתכוון “ה-Talent הנכון” במובן של “זו המשימה שיש לי עכשיו” - לצורך העניין, יש לי אפליקציה ב-iOS אז “מפתח iOS” זה ה-Talent שאני צריך - לא ב-Context הזה, אלא “הבנאדם הנכון” במובן של “אני רואה את הפוטנציאל - ממש לא מעניין אותי מה הוא יודע, ממש לא מעניין אותי Skill - אני פשוט עושה Hire לפוטנציאל” . . .
    • (שחף) אני רוצה להגיד לך איך ממש ראינו את זה, הלכה למעשה:
    • במשך תקופה מאוד ארוכה, ניסיתי לשכנע את המנהל שלי ש . . . . אנחנו עושים Mobile, בנינו Mobile ב-Chegg במשך תקופה מאוד ארוכה
      • ואמרתי “תשמע, זה לא באמת עובד - מה שהחברה מנסה לעשות ולייצר לא באמת מצליח” . . .
      • שכנענו אותו בסוף ללכת לאיזו הרפתקאה כזאת - תחשוב, מיני-סטראטאפ-Innovation כזה, בתוך החברה
        • אספתי את כל החבר’ה - אספתי קודם כל את המנהלים
        • אספתי אותם לחדר ואמרתי “קודם כל - אנחנו נכנסים עכשיו לחדר ואתם מפסיקים לרגע להיות להיות מנהלים, אתם ב-Mode האזנה”.
        • ביקשתי מהאיש Product שלי לפני כן להפעיל איזשהו מוצר, נכנסתי לחדר ואמרתי להם “יש לכם עכשיו שבוע - אנחנו עושים Hackathon!”
        • “הנה המוצר שאני רוצה - ואין פה מנהלים בחדר . . . זה אומר שהמנהלים שלכם הם בדיוק כמוכם”
      • וקרה משהו מופלא -  . . . 
      • אה, הייתה עוד בקשה אחת - אמרתי להם “תבחרו פלטרפורמה אחת” . . . .
        • אני לא יודע אם אתם זוכרים, אבל לפני כמה שנים הייתה מלחמה מאוד קשה על מי יפתח אנדרואיד ומי יפתח iOS ומי יותר טוב . . . 
        • אני מניח שהיא עדיין קיימת שם . . . 
      • אז ביקשתי רק פלטפורמה אחת והם  . . . וישבתי ושתקתי.
    (רן) הם בחרו Windows Phone? . . . 
    • (שחף) לא . . . דווקא בחרו אנדרואיד, מפתיע מאוד . . .
    • ואנשים שחשבנו שהם יישבו מאחורה - קפצו קדימה, ומשכו את השיחה והתחילו לעשות ארכיטקטורה . . .
    • ובעצם כל הדבר הזה פתאום קיבל תפנית מאוד גדולה
      • אנשים שפיתחו אנדרואיד אמרו פתאום “רגע, אני רוצה בכלל לפתח Backend!”
      • אנשים של ה-iOS אמרו “טוב, אנחנו נלמד עכשיו אנדרואיד”
    • ופתאום, נוצר מצב של להחליף את הטכנולוגיה ולקפוץ על כל דבר אחר - זה חלק מהכיף וזה חלק מהעשייה.
    • וכשסיימנו את השבוע הזה והם באו אלי, בסוף בסוף - הם אומרים לי “שמע, בוא נריץ את זה” . . . 
      • והיה שם איזשהו באג, זה לא באמת הצליח . . .
      • נתתי להם עוד איזה יום - ולא ממש הצליחו לפתור את הבעיה
    • אבל אמרתי “תשמעו - את המשימה שלנו עשינו, הצלחנו באמת לייצר משהו יפה”
      • בסדר, אז יש פה איזושהי בעיה וזה לא עובד . . .
    • אחד מהחבר’ה לא הסכים לקבל את זה - עבד כל הסופ”ש, תיקן את הבעיה, בא בבוקר והראה לי את זה עובד.
    • שאלתי אותו “תגיד, למה?  . . . בסך הכל עשינו, בנינו” . . . 
      • אז הוא אמר “תשמע, אחרי שכל החברה עשתה את המאמץ הזה פה, אני לא מוכן שבסוף הם לא יראו לך את זה עובד”.
      • “אז אני חייב לשבת ולהפוך את זה למשהו שעובד”.
    • עכשיו אתה מבין מה זה “The Right Talent” . . . .  
      • זה לא הקוד שאתה כותב
      • זה לא כמה מהר וכמה מיוחד אני יודע לכתוב את שורות הקוד שלי
      • זה איך שאני מגיע לעבודה, מה אני רוצה, מה מניע אותי ביומיום ומה מייצר את ההצלחה של המשימה - מעבר לרק שורות הקוד.

    (רן) אז כשמחפשים מועמדים,  בדרך כלל מחפשים כל מיני תכונות - אולי גם Skills, אבל כאן אנחנו מדברים על תוכונת אופי - ואתה פה מדבר על “תחושה של מחוייבות”, במקרה הזה, נכון? מחוייבות, אכפתיות, אולי אפילו “ערבות הדדית”, אם  . . .(אורי) . . . יש פה גם “יציאה מ-Comfort Zone”, בסיפור שלך . . . (רן) כן . . . ונשאלת השאלה של אוקיי, אז מגיע אליך מועמד ואתה שואל אותו “תגיד, אתה מחוייב לעבודה שלך?” . . . .
    • (שחף) אז נכון, אתה יודע - זו שאלה מאוד קשה.
    • אני אספר לך, קודם כל, איך אנחנו עובדים - מהו הכלי.
      • אנחנו לא עושים ראיון - אנחנו עושים משהו שנקרא Two-talk - אני בהרבה פעמים לא קורא קורות חיים לפני
        • כי נוצר מצב שהרבה פעמים, כשאתה קורא קו”ח - אתה כבר מסווג, בראש שלך, מיהו הבנאדם שאתה הולך לפגוש 
        • אז אני גם אומר את זה לבנאדם שאני פוגש - בדרך כלל אני גם אומר לו את זה מראש: “תשמע, אני לא קראתי את הקו”ח, בדיוק כמו שאתה לא ממש מכיר אותי - אז אני לא ממש מכיר אותך, ועכשיו בוא ננהל שיחה”.
      • אז קודם כל, אני רוצה לראות בנאדם שאני אוהב לדבר איתו לשוחח איתו ויכול להגיע לעומקים.
    • הכלי שאנחנו משתמשים בו הוא כלי מבוסס-מחקר של Gallup, שנקרא Clifton] Strengths]
      • יש ממש כלי שמאפשר לעשות - StrengthsFinder זה נקרא - שמאפשר ממש לבדוק את החוזקות שלך.
    • אני אתן דוגמאות לחוזקות - לי, למשל, יש חוזקת “הגיית רעיונות”, חוזקה של “למדנות”, חוזקה של “מפעילן” . . . 
      • כל אחת מהחוזקות האלה - הנה, אני מגלה עכשיו עוד חוזקה, ככה . . . הספר הזה [?]
      • זה הכלי שאנחנו ממש משתמשים בו.
    • הדרך היא להבין - פסיכולוגיה חיובית - להבין שכל אחד בעצם הוא שונה, ואני רוצה [מעדיף] לחזק את הדברים הטובים שלך מאשר להתעסק בחולשות שלך.

    (רן) זאת אומרת . . . אוקיי - אורי, אני רואה שאתה הרבה זמן רוצה להגיד משהו אז אני אתאפק רגע . . .(אורי) לא, יש לי, תוך כדי, הראיתי לך את הספר הזה שיושב פה על המדף ויש עליו הרבה אבק . . . [First, Break all the rules, אחלה גם באודיו]
    • (שחף) קראת אותו?
    (אורי) קראתי חלק . . . הוא בעיקר מתאר את החוזקות וכו’ . . .
    • (שחף) אתה יודע מה החוזקות שלך?
    (אורי) בוודאי, אני אגיד לך יותר מזה - אנ עובד עם הצוותים שלי ואני מבקש מהם לעשות את ה-StrengthsFinder, ושכל אחד יכתוב את החוזקות שלו ב-Google Docs או Spreadsheet - ואני מאוד נהנה לעבוד עם המפה של החוזקות שיש לי בצוות . . .
    • (שחף) נכון . . .
    (אורי) . . . זה סוג של פאזל . . . והשאלה שלי אליך היא האם אתה “מגייס לתוך הפערים”?
    • (שחף) אני אגיד לך . . . . קודם כל, אני אגיד לך איך אנחנו בכלל עושים את זה, כי נגעת בנקודה מאוד מאוד חשובה
    • אצלנו, כל מועמד, כשהוא מגיע לשלב שהוא כבר עבר את הראיונות - אנחנו נותנים לו לעשות את המבחן, בתור מתנה מאיתנו
      • זה לא משנה אם הוא אחר כך יחתום או לא יחתום - זו ממש מתנה מאיתנו
        • [תכל’ס מגניב . . . ]
      • חשוב להגיד שזה . . קודם כל, זה מלמד אותך משהו על עצמך ותודה רבה על הזמן שהשקעת בנו
    (אורי) אגב - הבן שלי היה בן 18 עכשיו וקיבל את הספר בשביל לעשות את המבחן . . . 
    • (שחף) וואו . . . אני מחכה שהבנות שלי תגענה לגיל הנכון כדי לעשות להן את הבדיקה
      • ואחר כך - יש לי ארבעה ילדים, שני הבנים יותר מדי קטנים עדיין.
    • אנחנו מתעסקים בזה כל הזמן, זאת אומרת - מגוייס מקבל לעשות את המבחן, וכשהוא מתחיל לעבוד אצלנו אז אנחנו עושים ממש “מפגש חוזקות”
      • יושבת מירב ים-חן, שהיא בעצם זו שהכירה לנו את הכלי הזה - היא עושה איתו ניתוח חוזקות
      • מכניסה את המנהל פנימה, לתוך השיחה הזאת - לחצי שעה האחרונה של השיחה - ובעצם מסתכלים על התמהיל
        • גם של המנהל, גם של הצוות וגם של העובד החדש
      • וככה בעצם מבינים מהן החוזקות שאנחנו הולכים להשתמש בהן בתוך העשייה ובתוך העבודה.
      • ובעצם, אנחנו ממשיכים את השיח הזה כל הזמן
    • עכשיו, חדרי הדיונים שלנו הם לפי החוזקות הפופולאריות ביותר שיש לנו בארגון
      • ב-Chegg, ממש שמנו על השולחן - אתה [אורי] עשית את זה ב-Google Docs - ממש יצרנו תיקייה כזו, ששמים בה עפרונות, עם כל החזקות 
        • ככה שכל אחד שעובר בעצם יכול לראות את החוזקות שלך
    • ואנחנו מנהלים ממש שיח-תמידי על נושא החוזקות - וזה משנה בכלל את הדרך שבה אתה חושב על אנשים.
    • הגענו לזה  . . .

    (אורי) לגמרי . . . אני, ברגע שעשינו את זה ומיפינו חוזקות כאלה, של צוות ההנהלה - פתאום זה שינה לי את הדרך שבה אני ניגש לאנשים בשביל להניע אותם לפעולה . . .
    • (שחף) להבין אותם בכלל . . . 
    • אני, כשעשיתי את המבחן וגיליתי את החוזקות שלי, אז אני מסתכל על זה ואומר “וואו, מישהו ממש כתב איך אני חושב” . . .
      • הדבר הראשון שעשיתי זה שהדפסתי את זה והבאתי לאשתי
        • אמרתי “תראי, תקראי - ככה”
      • ואז ביקשתי ממנה, דרך אגב, לעשות גם את המבחן . . . .
      • וכשהיא עשתה, פתאום התברר לי עד כמה אנחנו עובדים שונה
        • דברים שבעבר מאוד מאוד תסכלו אותי - פתאום הבנו עד כמה אנחנו מסתכלים על העולם בצורה שונה . . . 
        • לדוגמא - לי יש “מפעילן” - מפעילן זה בנאדם שלא יכול לעצור . . . “קדימה! איך אפשר לעשות פעולה?”
    (אורי) . . . זה שנכנס לסופר עם רשימה, גומר את כל הרשימה - וזהו, נגמר . . . 
    • (שחף) זהו - הוא צריך לסיים את המשימה ולהתקדם קדימה
      • הוא הראשון שפועל בכל דבר.
      • ולאשתי יש דברים אחרים - יש לה “התמודדות”, יש לה עוד כל מיני דברים.
    • בעצם, כשאנחנו עכשיו הולכים לחפש מכונת כביסה . . .
    (אורי)  . . . . כשהיא נכנסת לסופר בלי רשימה, היא ממלאה את העגלה . . .
    • (שחף) היא מכינה רשימות, דרך אגב, מדהימות
    • אבל השוני בינינו הוא כזה שכשאנחנו הולכים לקנות משהו אז היא אומרת “טוב, צריך לקנות מכונת כביסה”
      • ואני אכנס לחנות הראשונה - אסתכל על שלוש - אבחר אחת - סיימתי את המשימה.
        • “מפעילן” בשיא תפארתו . . . 
      • והיא צריכה לעשות מחקר - היא צריכה את הזמן שלה לראות . . . היא צריכה הרבה דברים.
      • אז פתאום נוצר מצב שברגע שיש לנו משימה כזאת, אנחנו ממש מגדירים מן שלב כזה של “עכשיו זה שלב חיפוש - ובשלב חיפוש למפעילן אין עבודה, הוא לא צריך ללכת לקנות כלום . . . .”
        • אז קדימה - בואי נסתובב כמה שאת רוצה, אבל אין לי משימה שאני צריך לעשות . . . 
      • ברגע שהיא כבר החליטה ואומרת “אני חושבת שזה הכיוון שלנו” - אז עכשיו היא מביאה “למפעילן שבי” את המשימה - “לך תקנה”
      • ואז אני הולך - ואני קונה . . . 
        • וזה פתאום שינה מאוד - אפילו באינטראקציה הזאת - את החווייה בינינו, של להבין משהו.
    • ותחשוב על דבר כזה בצוות שלך - כשלמישהו אחד, למשל, יש חוזקה של “למדנות”, שזו גם חוזקה מאוד יפה [1+!]
      • אגב - כל החוזקות יפות . . . כל החוזקות זה “הצד החיובי” של דברים, זה הדבר הזה  . . . 
      • מה שאנחנו עושים כשאנחנו משתמשים בהן זה כשאנחנו הכי הרבה נהנים - זה “הוואו הזה” שקורה לנו.
    (אורי) אגב וואו - יש את Woo. . . .
    • (שחף) יש את Woo, כן . . . זו חוזקה מדהימה גם כן.
    (אורי) יצא לי . . . אבל לפעמים אתה לא שם לב ואתה נורא מתוסכל מבנאדם - כי אתה לא מצליח, נגיד, להניע אותו לפעולה. “מפעילן” - זו ממש בעיה בשבילו, כשהוא לא מצליח להניע לפעולה . . . והיה לי מישהו בצוות שלא הצלחתי - הייתי ממש מתוסכל מלנסות להניע את הבנאדם . . . כאילו, אני לא מבין - למה הוא לא נע? למה הוא לא זז?ואז [ואז!) - יום אחד הוא זז . . . . יום אחד הוא ניהיה ה-Advocate הכי גדול של אותה פעולה, אותו מעשה, אותו מהלך שאני נורא רציתי שהוא כבר יעשה - והוא כל הזמן ייצר לי Resistance.  פתאום, ביום אחד, הוא הפך להיות ה-Advocate הכי גדול של המהלך הזה - עד שגיליתי שיש לו Responsibility מאוד חזק: מי שיש לו Responsibility, לא יבצע פעולה . . . (רן) עד שהוא לא “ירגיש שזה שלו”, אתה אומר? משהו שמישהו צריך לעשות והוא צריך להרגיש שזה “שלו”?(אורי) לא - אני חושב שהיה בו את הרצון או את התחושה שכדאי לעשות את זה, אבל ה-Responsibility שלו “לא הרשה לו” להעביר את זה לפעולה - עד עד שהוא הרגיש שהוא באמת יכול לעשות את זה . . . הוא הרגיש שהוא יכול לקחת את האחריות למהלך . . .(רן) הבנתי - הוא לא רצה להתחייב לפני שהוא היה בטוח שהוא יוכל לעשות את זה . . . (אורי) כן . . . וברגע שפרשנו את זה והבנו את החוזקות - פתאום, וואלה - נהייה הרבה יותר קל עם הדבר הזה, ידעתי איך לגשת לבנאדם ואיך לעורר אצלו את תחושת הביטחון, לפני שאני רוצה להניע . . . 
    (רן) אז פה [בדוגמא של אורי] אנחנו בעצם מדברים על צוות שקיים - אנשים שאתם עובדים איתם כבר איזושהי תקופה ועל איך עובדים עם החוזקות - אבל הסיטואציה ששחף מדבר, שעליה התכנסנו לדבר, זו בעצם סיטואציה של ראיון עבודה. אז שתי שאלות - אחת זה האם כשאתה מגדיר דרישות תפקיד, לצורך העניין - אתה רושם את התכונות שם? מה . . .
    • (שחף) לא . . . כשאנחנו מגדירים דרישות תפקיד, בסוף אנחנו חיים באיזשהו שוק שבו הרבה שחקנים מדברים בשפה הזאת, אז אנחנו משתמשים בשפה שכולם מבינים - אבל הראיון שלנו מאוד שונה.
      • הדרך שבה אנחנו מבצעים אותו, הדרך שבה אנחנו מבצעים את כלל הראיונות.
    • אגב, אתה יודע - היום יש מעיין טרנד כזה של כמה שפחות ראיונות - ואני חושב שהפוך:
      • בוא נכיר כמה שיותר ותפגוש כמה שיותר אנשים ותוכל “לטעום מהחברה” כמה שיותר
      • ועוד פעם - אנחנו לא קוראים לזה “ראיונות” - אנחנו הרבה יותר קוראים לזה Tow-talk ובעצם זו שיחה.
    • עכשיו, זה לא אומר שאין את הפן הזה של “בוא נבין, ברמה הטכנית, שאתה יודע לעשות את מה שאתה עושה” - אני חושב שזה Goes without saying
      • צריך להיות איזשהו Level מסויים 
    • אני חושב שמה שאנחנו אומרים זה - “לא כל בנאדם מתאים לכל חברה”
      • וזה אומר שבעצם אני רוצה להביא את האנשים שמתאימים ל-DNA שלנו, ואני אשמח מאוד שאנשים שמתאימים ל-DNA של חברה אחרת - יהיו שם . . . 
      • אז זה הדבר הראשון שאנחנו מחפשים.
    • הדבר השני ש . . .
    (אורי) יש לי גם על זה מה להגיד - אבל עוד רגע . . . 
    • (שחף) הדבר השני שאנחנו מחפשים או מסתכלים עליו - אני חושב שזו האחריות שלנו כמעסיקים או כחברות, וזה לא משנה אם אתה ראש צוות, איש צוות או מנהל של חברה גדולה - זה שבנאדם שמגיע אלינו נכנס ברמה מסויימת - וכשהוא יוצא אז הוא יוצא ברמה הרבה יותר גבוהה ממה שהוא נכנס.
    • וזה התפקיד שלנו, בתוך הדרך הזאת שהוא עובר
      • ותוך כדי כשאנחנו עושים את זה, אז ברור שהוא מייצר תכנים בשביל החברה והוא מביא לנו הרבה מאוד  Value 
      • אבל ה-Value שהוא מקבל צריך להיות נוכח וקיים שם
    • וכשזה קורה - תחשוב שכל החברות היו מייצרות את זה, איזה מקום טוב היינו חיים בו?
      • בעצם, מה שאני מייצר עם האנשים שלי יכול לעבור ברמת הידע למישהו אחר - והוא יכול לבוא וללמד ולייצר את אותו הדבר בחברה הבאה בתור שבה הוא נמצא . . .
    (אורי) יש לכם Developer ב . . . 
    • (שחף) יש לנו לא מעט Developers . . . 
    (אורי) לא - חוזקה של “Developer” . . . 
    • (שחף) אה, חוזקה של “Developer” - כן, יש לנו גם.

    (אורי) דיברת על הנושא של “לא כל בנאדם מתאים לתרבות” או לא מתאים לחברה, ולאחרונה שמעתי בפודקאסט - יש דבר כזה, “פודקאסטים” - על הנושא של מה שאנחנו קוראים לו “תרבות מחבקת” - אתה רוצה שמישהו יהיה בתרבות שלך, לפעמים Choice או Selection, הוא טוב עד כדי - ויותר חזק ממנו זה ה-Socialize: כשאנחנו מייצרים “חיברות” עם הבנאדם שנכנס אלינו. אני ראיתי את זה קורה אצלנו - אני חשבתי שדיברנו על זה בפודקאסט הקודם [לא זכור לי…], על מקרה שקרה לנו: ביום אחד, ביום הראשון שלה בחברה הגיעה מנהלת HR של הסניף הישראלי, וכמו שהיא נכנסת ביום  הראשון, היא נכנסת אלי ולמנהל פיתוח ואומרת “תקשיב - עברתי עכשיו על רשימת המגוייסים: יש פה שם של בנאדם, שאני פיטרתי אותו על התאמה תרבותית לפני כמה חודשים מחברה אחרת . . . . אני לא מוכנה שאתם תיקחו אותו, הוא לא יתאים לכם פה לתרבות . . . “. ואמר לה המנהל פיתוח: “תקשיבי, אני ראיינתי אותו - נראה לי שמה שהוא יעבור פה זה שהתרבות תחבק אותו ונראה לי שהוא יהיה בסדר”. וכך היה - הוא באמת היה אחד הטובים . . . “ה-Socializing הזה”, שאתה מראה לבנאדם ש”ככה זה פה - ככה מתנהגים פה”, עושה הרבה יותר ממה אתה יכול להבין, גם בראיונות.
    • (שחף) קודם כל - אני מסכים איתך לגמרי.
    • אני חושב ש”תרבות מייצרת תרבות” וצריך איזשהו גרעין כדי לייצר את זה - אבל אני יודע איזו תרבות הצלחנו לייצר ב-Chegg ואנחנו עובדים על לייצר אותה כרגע גם ב-Hippo
    • אני עבדתי עם חברים שלי - מבחינתי, כל יום שהגעתי זה היה פשוט לפגוש את כל החברים שלי ולעבוד איתם ולהנות איתם כל יום.
      • ואני יודע שזה גם מהכיוון השני היה ככה
    • ראינו את זה בזה שאתה יודע - בזה שאנחנו נפגשים אחרי שעות העבודה, בזה שאנחנו מחפשים אחד את השני, בזה שאנחנו כל הזמן עושים דברים ביחד
      • אני עזבתי את Chegg ואני עדיין נפגש עם לא מעט מהחברים שלי משם.
      • אז הדבר קיים - והוא חשוב.
    • עכשיו, לפני כמה זמן, הייתי בכנס של HR וסיפרתי סיפור שבאמת מתחבר למקום הזה של “חיבוק”
      • ישב איתי אחד המאמנים שאני מאוד מעריך בשם אבי צ’ארקם [Avi Charkham] - והוא שואל אותי שאלה:
        • “שחף, תגיד לי - אם אני עכשיו יושב איתך על תמונה עתידית, ואני שואל אותך איך נראה - באותה זמן זה היה ‘Chegg-ישראל האולטימטיבית’ - שנה מהיום, איך? מה תספר לי?”
      • אז אמרתי לו, חשבתי שנייה וחצי ואמרתי לו - “שמע, אני יכול להראות לך, אני לא חייב לספר לך” . . . .
      • פתחתי את האינטרנט ואני מראה לו איזושהי תמונה, מסובב אליו את המחשב - והוא מסתכל ומתחיל לצחוק . . .
        • אני שואל “למה את צוחק?” והוא אומר “מה אתה מראה לי פה? דוב? מה? תראה לי” . . .
      • אמרתי לו “תשמע - זאת התמונה, אבל בוא אני אסביר לך”
        • התמונה שהראיתי לו היא תמונה של “דובוני אכפת-לי” . . . . 
      • והוא מסתכל עלי ואומר “מה זה דובוני אכפת-לי?  איך אפשר להתסכל על זה?” . . . 
        • אז אמרתי לו “תסתכל על היצורים האלה - היצורים האלה באים לעולם כדי לעשות משהו טוב, אבל הטוב הזה הוא משהו שיש להם בבטן, הוא יוצא מתוכם”
        • זה אומר שהם נולדו עם זה, ככה הם רואים את העולם - והדרך שהם עושים את זה היא להוציא קרן-אור מהבטן שלהם [וזה אנשים עשו לפני DALL·E 2, כן? . . . .]
        • והקרן-אור הזאת - היא שונה מאחד לשני: לכל אחד יש צבע אחר
        • אבל זה שהם שונים לא נותן לכל אחד יותר כוח - יש להם עדיין לכל אחד את אותה העוצמה, פשוט הצבע אחר.
        • אבל מדי פעם, מה לעשות, הם צריכים טיפה יותר כוח. אז מה הם עושים? הם מחזיקים ידיים, מכוונים ביחד - ומייצרים קשת בענן כזאת . . .
    (אורי) “קרן-אור!” . . .
    • (שחף) קרן-אור! הם מייצרים קשת-בענן - וככה הם מייצרים יותר כוח . . . 
      • ומספיק שיש לך דובון אכפת-לי אחד שהם קוראים לו - אז אתה בעצם קורא לכולם . . . 
      • ואמרתי לו “תסתכל מה יש לנו פה - יש לנו בחברה הרבה אנשים שבאמת רוצים כל הזמן לעשות טוב, כל הזמן מחפשים במשימות ובעשייה שהם עושים, הם רוצים לעשות טוב”
        • וזה לא סתם “טוב” - זה באמת בא מתוכם: כל אחד שמגיע עושה.
        • והם מאוד מאוד שונים אחד מהשני - אבל הם לא עובדים בצורה של “קובעים לי - עושים לי”, אלא הם עובדים ביחד
        • לכל אחד יש את הצבע שלו - והכוח הכי חזק שלנו מגיע כשיש לנו בעיה ואנחנו מתחברים כולנו ביחד ופותרים אותה ביחד, כצוות.
        • לא מתוך מקום של יותר עוצמה אלא מתוך מקום של “לעבוד מחוברים”.
      • וארצות הברית יודעת, למשל שאם יש בעיה והיא קוראית למישהו מישראל, היא יודעת שהיא מקבלת את כל ישראל ביחד בתוך התמונה הזאת. [?]
      • אני חושב ש . . .
    (אורי) “כל ישראל ערבים זה לזה” . . . .
    • (שחף) נכון . . .  אני חושב שה”חיבוק דוב” הזה הוא בדיוק הדבר הזה [“חיבוק דוב” זה משהו קצת אחר…]
    • עכשיו תחשוב שברגע שאתה נכנס ל”חברת דובוני אכפת-לי” הזאת, אתה מבין שאתה לא יכול להיות שונה
      • אתה מבין שזה עוטף אותך מכל כיוון
      • ועכשיו זה אחת מהשתיים - או שזה מצליח להוציא ממך את הדובון אכפת-לי, ואתה יכול להיות פה, 
      • או שאולי זה לא מתאים לך, ואז אתה באמת הולך למקום הבא בתור, שאולי הוא יותר . . . יכול יותר להתאים.
    • זה לאו-דווקא צריך להתאים לכל אחד - אבל מי שכן נכנס למקום הזה וכן מוצא שזה מתאים לו, אז הוא מרוויח הרבה מאוד בתוך הקונסטלציה הזאת.
    • אגב, כשהוא שאל אותי “רגע, אבל . . . . אז למה?”
      • אמרתי לו “תשמע, כשחשבתי על התמונה, לא יכולתי, למשל, להראות . . . “ - הרבה פעמים משתמשים בספורט, בכדורסל או פוטבול או כאלה - אמרתי לו “בספורט יש את אותם העקרונות, אבל יש רק בעיה אחת: יש שם מצב של Win-Lose, יש רק קבוצה אחת שמנצחת וקבוצה שנייה שמפסידה”.
      • ובדובוני אכפת-לי, במשל של דובוני אכפת-לי, אין את זה - זה בעצם לטוב.
    • כשסיפרתי את זה למנטור אחר, הוא אמר לי “שמע, מצאנו דוגמא נוספת, שהיא לא דובוני אכפת-לי . . . “
    (אורי) שמע - הדבר הזה יכול לעבוד רק עם אבי צ’ארקם . . . אל  . . . .
    • (שחף) תשמע, אתה יודע מה הדבר הכי מצחיק בזה? - כשסיפרתי לו את כל זה אז הוא אמר “טוב, עכשיו תיקח את זה לצוות שלך” .  . 
      • אמרתי לו “מה, אתה מטורף? איך אני אגיע לצוות שלי ואני אגיד להם את זה? . . . .”
      • ומאז זה האתגר שלי . . . זה האתגר שלי - לקחת את סיפור הזה . . . 
    • ורק כדי לסבר את האוזן - הדבר השני, המשל השני שאפשר להשתמש בו זה של מקהלה או להקה
      • ששם זה גם Win-Win כזה, זו לא מלחמה . . .

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

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

    (אורי) אבל אני חושב שיש עוד משהו, במיוחד אם אתה משתמש ב-StrengthsFinder - זה כלי שאם עובדים איתו טוב בתור מנהל, אז הצלחת הקליטה היא טובה יותר, כי אתה פשוט יודע יותר טוב איך לגשת לבנאדם, אתה יודע מה מדליק אותו, אתה יודע מאיפה להניע אותו . . . 
    • (שחף)  . . . כל הצוות יודע, אגב . . . 
    • זו באמת תפיסה - זה לא מספיק אם זה רק בא ממני או מהראש צוות: זה משהו שצריך לחיות אותו.
    (רן) זהו - זה מה שאני מנסה לשאול: האם . . . בסופו של דבר, גיליתם מהן החוזקות של המועמד - האם זה משמש אותך רק להחלטת Hire / No-Hire? או שזה משמש אחר כך ל-Onboarding ו . . . 
    • (שחף) תראה, זה כלי תומך-החלטה, ועוד פעם - הנה בדיוק הדפוס הזה שצריך רגע לשנות: מה זה אומר “Hire / No-Hire”? חוזקות זה דברים טובים, אלו דברים שהמועמד יודע לעשות בצורה טובה
      • אז למה שאם אני אדע את כל הדברים שהוא ממש ממש טוב בהם, אני אחשוב עליו הפוך, אוקיי?
      • אז חוזקות רק יעזרו לי לגייס אותו יותר . . . זו אמירה ראשונה.
    • הדבר השני זה שאם אני יודע שככל שאני אשתמש בחוזקות שלו, אני ארוויח יותר, בתור מעסיק.
      • והוא ירוויח יותר, בתור מישהו שעובד ומשתמש בחוזקות שלו ברמה היומיומית.
    • אם אנחנו נסתכל על המספרים של כמה אנשים נהנים בעבודה שלהם - המספרים הם די עגומים . . . 
      • ובינינו - אנחנו הולכים למקום שהוא . . . אנחנו רואים את זה עכשיו בכל השוק, שאנשים עוזבים כי הם לא מוצאים משמעות ולא מסתכלים עליהם והם לא גדלים.
      • אז משהו חייב להשתנות
    • ואנחנו יודעים שאנחנו עושים משהו טוב, כי אנחנו מסתכלים על כמות האנשים שנשארים אצלנו, על Retention, ועל כמות האנשים  שבאמת רוצים להמשיך לעשות את מה שהם עושים והם מאותגרים וכיף להם - יש לנו מספרים מאוד מאוד יפים.
      • אז אנחנו יודעים שאנחנו עושים משהו טוב
    • הקושי הוא - איך אתה באמת מחדיר את זה לארגון, וזה לא קל
      • איך אתה גורם לזה להיות השיחה - ככה מסתכלים וככה מדברים
    • כי השוני שבין להסתכל על חוזקות לבין להפוך להיות ציני כלפי הכלים האלה הוא מאוד מאוד קטן . . . 
      • צריך לדעת לנווט את זה נכון תוך כדי השיח, כי בסוף אפשר להסתכל על חוזקה כעל אחריות
        • דווקא הפוך - אפשר לבוא לבנאדם . . . 
    • התחלנו - כשהתחלנו את התהליך של החוזקות - התחלנו כי באמת שני מובילים אצלנו כל הזמן התנגשו אחד בשני
      • וכשגילנו את החוזקות, גילינו שלאחד מהם יש את חוזקת האחריות ולשני יש את חוזקת . . . ברח לי לרגע השם שלה . . . לא משנה
      • מה שאחד עשה זה שכל משימה שהייתה - הוא פשוט “קם ושם אותה על הכתף שלו”, כי יש לו אחריות
        • והשני חשב שהוא כל פעם מתערב לו . . . הוא כל פעם לוקח לו, כל פעם נוגס לו בתוך העבודה שלו . . .
    • פתאום, ברגע שהבנו שזה המצב והתחלנו לשנות את השיח ביניהם - משהו מופלא קרה
      • אז לא עשינו פה משהו אקטיבי, מיוחד - פשוט שינינו את הדרך שבה אנחנו מסתכלים על איך מישהו עושה משהו
      • ואז פתאום נוצר שיח כזה, של “רגע, סליחה: זה שלי - אל תיגע!”
        • “’אדון אחריות’ - תן לי עוד דקה, זה אצלי, אל תדאג” . . . 
      • ואז ‘אדון אחריות’ יכול להגיד “וואי, אתה יודע מה - אם זה אצלך אז זו אחריות שלך וזה בסדר”.
        • אז נוצר שיח אחר.

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

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

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

    (אורי) כשאנחנו עשינו את זה . . . אתה [רן] עשית את זה פעם?(רן) עשיתי . . .  כן. לא זוכר  מה יצא . . . (אורי) לא זוכר? . . . חשבתי שכל אחד בשולחן יספר על חוזקה אחת שיש לו ואיך זה . . . (רן) לא תחזקתי, כמו ששחף אומר . . . (אורי) כן . . . אבל אני זוכר שכשעשינו את התרגיל הזה, ושמנו את הכל על Spreadsheet - אז מי שיש לו את החוזקה של “[Analysis [Analytical” מיד עשה אנליזה . . . אמר “רגע! אין לנו אף Command בצוות . . . “
    • (שחף) נכון . . . .
    (אורי)  . . . “החוזקה הכי נפוצה אצלנו בצוות היא זאת-וזאת” . . . 
    • (שחף) אני אספר לכם עוד סיפור שקשור לזה - אני לא יודע אם שמעתם אבל עשינו גם פרויקט שנקרא “אמא מחליפה” - מכירים את הסדרה, “אמא מחליפה”?
    (רן) את הסדרה, כן . . . 
    • (שחף) אז גילינו, כשהסתכלנו על כל החוזקות שהיו לנו ב-Chegg, שיש לנו הרבה “למדנים”
      • עכשיו “למדן” - יש לו שני סוגים: 
        • אחד זה זה שלומד ומעמיק בתחום אחד
        • ואני גם “למדן” - אבל מהסוג השני: אני אוהב לדעת הרבה דברים, לרוחב ולאו דווקא לעומק
      • ובעצם ראינו שיש לנו הרבה מאוד “למדנים” ואמרנו “רגע - מה אנחנו עושים עם זה?”
        • ואנחנו רואים שאנחנו, כחברה, אוהבים כל הזמן ללמוד כל הזמן ממקומות אחרים
      • אז אמרנו “אוקיי - אנחנו נעשה כמו “אמא מחליפה” - ניקח מתכנת אחד שלנו ומתכנת אחר מחברה אחרת, נחליף ביניהם לשבועיים ונראה איך זה עובד” . . . .
        • ועשינו את זה  פעמיים - פעם אחת עם eBay Innovation ופעם אחת עם Monday
          • החלפנו, בעצם מתכנתים . . . 
        • ומה שקרה שם פשוט היה מדהים . . . 
      • קודם כל - צריך לעבור איזשהו פחד: תמיד שאלו אותי “רגע! אתה לא מפחד שהבנאדם שלך יעזוב?”
        • אבל אני לא מפחד - כי אני יודע שאם הוא רוצה ללכת למקום אחר אז זה חלק מה”אני מאמין” שלו
        • אני אעזור לו להגיע למקום האחר . . .
        • אז מהמקום הזה לא פחדנו.
      • כשהוא חזר, הוא בא ואמר לי “תשמע, שחף - קרה לנו עכשיו משהו, ככה, מוזר: ישבתי מול הראש צוות, סיימתי את המשימות שלי . . .” -
          •  זה ספרינט כזה והם הלכו על שבועיים והוא סיים את הספרינט
        • אז הוא אומר “סיימתי את המשימות ובאתי לראש צוות ואמרתי לו שסיימתי ומה עכשיו”
        • אז הראש צוות הסתכל עליו ואמר לו “תשמע, אצלנו בדרך כלל המתכנת בא עם המשימה הבאה בתור” . . . 
      • הדבר הזה הביא אותנו למקום שבו פשוט שינינו את כל התהליך שבו עבדנו
        • והיה לנו תהליך מצויין לפני כן - באמת, חברות באו אלינו ללמוד אותו
        • והמשפט הזה שהוא הביא אלינו פשוט גרם לנו - “חוזקת הלמדנות” פעלה אפילו יותר חזק - והלכנו ועשינו שינוי ממש משמעותי בכל הדרך שבה אנחנו מפתחים תוכנה.
      • אז יש גם דברים שקורים מעולם החוזקות, שאנחנו מצליחים ממש להפוך אותם למציאות ולהשתמש - ב“חוזקת הלמדנות” במקרה הספציפי הזה - כדי להוביל אותנו עוד קצת קדימה.

    (רן) אז בזה אנחנו עומדים לסיים - קודם כל, אנחנו נשים לינק לכלי ה-Online-י שאותו הזכרת [ברור - יש מלא לאורך הפרק אבל הנה שוב: StrengthsFinder]. דרך אגב - זה פתוח? בתשלום?(אורי) צריך לקנות את הספר [אפשר - ואז הספר בא עם קוד לבחינה חינם, כן]. . . 
    • (שחף) הבחינה עצמה זה $15, אם אני לא טועה, 
      • באתר שלהם - אתה עושה שאלון ומקבל את החמש חוזקות [העיקריות] שלך
      • [זה נכון לעכשיו $19.9 ל-5 חוזקות עיקריות או $49.9 לדוח מלא של כל ה-34]
    • ומי שרוצה מוזמן . . . .
    (רן) אני זוכר שגם  . . . זהו, כנראה שראיתי איזושהי גרסא-לייט שהיא בחינם - אבל בכל אופן גם אם לא, אז זה קצת כסף. יש כמובן ספר ויש גם בעברית.וזהו - תודה שבאת לחזק אותנו! תודה רבה ולהתראות.
     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    43 min
  • 442 With Mor Shamir about management in tech, families and teams
    [קישור לקובץ mp3] 
    פרק מספר 442 (טיפולוגי!) של רברס עם פלטפורמה - אורי ורן מארחים בעונת אירועי הסיום של סוף יוני 2022 את את מור שמיר לפודקאסט טכנולוגי על הדרכת הורים ועל איך שזה נוגע אלינו כמנהלים בחברות טכנולוגיות.

    (רן) אז מור - ספרי לנו קצת על עצמך לפני שנצלול?
    • (מור) אז קודם כל אני רוצה להגיד שאני חושב שאני מדריכת הורים קצת שונה, כי בעצם בחרתי ממש לעסוק כל כולי בתחום של הדרכת הורים וייעוץ זוגי, אחרי שהייתי 17 שנים בהייטק - זה היה לפני הרבה זמן, אני קצת “עתיקה”, אבל אנחנו לא נגלה כמה . . . 
    • את דרכי התחלתי בטכניון - הייתי מתכנתת, הייתי מנהלת פרויקטים בפיתוח, הייתי מנהלת מוצר בשיווק, התעסקתי בכלים ותהליכים, אפילו הקמתי סטארטאפ פעם . . . 
    • אז אם אתם שואלים, בגדול, איך בנאדם כזה הופך פתאום להיות כזה כמו שאני, אז תכל’ס - הייתי “האמא ההייטקיסטית הזאת”, שהיו לה הרבה מאוד מאבקי-כוח ועשתה כל מיני דברים שהיא לא תמיד התגאתה בהם
      • ורציתי להבין יותר לעומק, אז התחלתי, תוך כדי ההייטק, לעשות את הקורס באדלר וללמוד
    • ועם הזמן, כנראה שהחיים יעדו לי את הדבר בזה - ובעצם מה שאני עושה היום זה ערבוב של הדרכת הורים וייעוץ זוגי
      • וכל מה שאני מכירה מארגונים בתחום של עבודת צוות וניהול אפקטיבי
    • ומהערבוב הזה אני עובדת בעיקר עם הקהל ההייטקיסטי - 
      • זה בעצם קהל שיש לו כל מיני מאפיינים, אנחנו לא נגלה את כל הסודות . . . 
      • אבל אני רוצה להגיד שאני מאוד מאוד מאמינה שאנשים האלה, העובדים, קודם כל רוצים להיות עובדים טובים - ומגיע להם
        • הם למדו הרבה זמן והם התאמצו בשביל להגיע לאן שהם הגיעו
        • ואני חושבת שמגיע לנו להיות מסופקים גם בעבודה - לכולנו, גם לאבות וגם לאמהות
        • ותכל’ס . . . 
    (אורי) . . . . זה נכון לכל אחד - שהוא רוצה לעבוד טוב ולהרגיש משמעות ושהוא מנצל את זמנו בצורה טובה . . .(רן) סליחה שאני מתפרץ לדבריך . . . . לא, אני מניח שזה נכון - אבל אני גם מתאר לעצמי שאתה יודע, לאופי שונה של עבודה יש דילמות אחרות . . . לצורך העניין, אם הייתי עובד במתנ”ס אז היו לי דילמות אחרות מאשר בעבודה בחברה טכנולוגית, בהקשר של משפחה . . . אבל הייתי רוצה להיות מסופק, אני מסכים איתך.
    • (מור) אני חושבת שבעצם כל ההורים העובדים - לאו דווקא הייטק, אלא כל ההורים העובדים - שעובדים הרבה שעות, שנמצאים בעומס, שאין להם חופשים מסודרים שהם אולי מסונכרנים עם החופשים של הילדים . . .
      • פוגשים את ההתמודדות הזאת - ואני בטוחה שגם אתם, לפחות ממה שראיתי במטבח שלך [אורי], אני בטוחה שעשית פה הרבה דברים.
        • גם אם לא היית נוכח בחלק מהזמן, לפי מה שהבן שלך בא ב . . .
        • (אורי) לפעמים הם מגזימים, כן . . . 
    • (מור) אז בסופו של יום, אנחנו רצים בין כל העולמות האלה - עולם העבודה, עולם ההורות, הזוגיות, האישי - עם מלא ייסורי מצפון
      • ומה שרציתי להגיד זה שאני מאמינה שאם אנחנו עוצרים ולומדים כלים, אנחנו יכולים לנהל את זה ככה שבעצם נרגיש טוב - גם פה וגם פה.
      • אף פעם זה לא יהיה מושלם ואנחנו גם לא מושלמים - גם אצלי ממש לא מושלם.
    (אורי) אני חייב לספר לך סיפור של ייסורי מצפון - לפודקאסט הזה קוראים “רברס עם פלטפורמה” כי זו בדיחה פרטית שלי ושל רן, בגלל שאנחנו קיבוצניקים . . . 
    • (מור ) וואלה? שניכם?! . . .
    (אורי) כן . . . סוג בדיחה פרטית, אבל אני לא אם אתה, רן, אבל אני לפחות ילד-לינה-משותפת . . .(רן) אני גם-וגם, על הגבול . . . . היו תקופות שכן והיו תקופות שלא.(אורי) אז עם כל הלינה המשותפת וזה שההורים שלנו ראו אותנו ארבע שעות ביום . . . (רן) קראת את הספר?  . . . (אורי) לא קראתי את הספר, אבל . . . 
    • (מור) איזה ספר?
    (רן) זה נקרא ארבע שעות ביום . . . (אורי)ארבע שעות ביום . . . ברבות הימים, לפני כמה שנים אפילו, אבא שלי מה שנקרא “נעץ לי את המזלג” ואמר לי “אתה יודע, עם כמה שהיינו רואים אתכם ארבע שעות ביום וכו’, אני ביליתי איתך הרבה יותר ממה שאתה מבלה עם הילדים שלך” . . . . [אווץ’ . . . .]
    • (מור) וואו . . . 
    (אורי) . . . . לא יכל לעשות את זה יותר . . . .
    • (מור) יותר “בפנים” . . . .
    (אורי) כן . . . ונהניתי מהלינה המשותפת . . . .
    • (מור) ומה ענית לו על זה?
    (אורי) לא היה לי הרבה מה לענות . . . . אבל היו להם חיים אחרים . . . הם ישנו צהריים! בגלל זה הם חיים עכשיו עד גיל 90 . . . 
    • (מור) לגמרי . . . האמת שאני מכירה את זה ממש מקרוב, כי הבני-דודים שלי, האחות היחידה של אמא שלי היא מבית השיטה, אז כל החופשים ועם הבן-דוד שלי שבגילי - הייתי ישנה איתם בלינה המשותפת ומתרחצת שם עם הילדים כאילו . . . הרגשתי שאני ממש כאילו  . . . .חלום חיי היה להיות ילדת-קיבוץ, אגב.
    • אבל כן, לפחות בקיבוץ ההוא, ראיתי שלגמרי הילדים כמעט ולא היו מגיעים לבתים, אז זה שאבא שלך עשה את זה - הוא כנראה היה . . . היה בו, ב-DNA, משהו שרצה לעשות את זה
      • כי מי שלא רצה, הצליח ממש טוב לא לעשות את זה, בעיקר בלינה המשותפת . . . 
      • אז כנראה שירשת ממנו משהו, בתוך ה-DNA הזה.
    (אורי) הלאה, בואו נמשיך . . . .
    (רן) ומהקיבוץ - להייטק! בעצם, מה שאנחנו מנסים לעשות פה היום זה למצוא מקבילות או למצוא נושאים משותפים שבין דילמות הוריות או הדרכת הורים וזוגיות לבין דילמות בעבודה - ואחד הדברים שלי קורה, ואני מניח שקרה ללא מעט מנהלים, אפשר אולי לשים את זה תחת הכותרת של “ניהול מטריציוני”, זאת אומרת שיש אנשים שאולי מנהלים אותם באופן ישיר ויש אנשים שמנהלים אותם באופן מקצועי, והשם “ניהול מטריציוני” קצת עבר “Shaming” במשך תקופה מאוד ארוכה אז הוא לא כל כך פופלארי אז היום קוראים לזה “גילדות” [כאלה] וקוראים לזה בכל מיני שמות אחרים, אבל הנושא עדיין קיים . . . לפעמים המנהל בישראל ולפעמים המנהל לא נמצא בכלל בישראל אבל עדיין מנהל אותך, יצא לי להיות בכל מיני סיטואציות כאלה.אחת הדילמות שם, כמנהל, היא איך לייצר מוטיבציה - איך לייצר מוטיבציה, וזו גם דילמה הורית, הרבה פעמים . . . 
    • (מור) בדיוק . . . 
    (רן)  . . .  “הכיור הפוך!” - איך לייצר מוטיבציה?
    • (מור) זה גם ממש רלוונטי, השאלה הזו, לקראת החופש הגדול - כי בחופש הגדול אנחנו ממשיכים לעבוד והילדים שם שרועים על הספות מול המכשירים, אם זה מתבגרים
      • אם זה צעירים אז הם מקסימום הולכים לקייטנה של איזה שתי שעות וחצי - ואז שרועים בתוך המסכים . . . .
    • ואנחנו פה - מפרפרים בין כל המשימות.
    • אז קודם כל באמת - זו ה-שאלה - אין שאלה יותר פופלארית מ”איך אני יכול לייצר מוטיבציה לילד שלי?”
    • אז קודם כל, אני אגיד שבגדול, כבני אדם - אנחנו מתעסקים פה בבני אדם, אז כל דבר שאנחנו מתעסקים בו, שקשור בהדרכת הורים או ייעוץ זוגי - הוא קשור גם לעובדים בחברות.
    • אני אפילו יכולה להגיד שאני מעבירה בהרבה ארגונים סדנא שנקראית “משפחה עסוקה”, שכל תפקידי בתוך הסדנא הזאת זה לקחת אנשים שרוצים לדבר רק על הבית שלהם, ללמד אותם כלים שיעזרו להם בפתרון לגבי הילדים שלהם - ולהראות להם איך אותו הכלי בדיוק הופך אותם למנהל יותר טוב ולחבר צוות יותר טוב
      • יש המון נקודות השקה.
    • אז הדבר הראשון, לפני שאני עונה על מוטיבציה - הדבר הראשון שאני רוצה להגיד זה שאם אתה יודע לעשות דברים טוב כמנהל אתה יכול, את אותם הדברים שאתה עושה, לקחת ולהשתמש בהם בבית.
      • ואם אתה לומד דברים בהקשר להורות או בהקשר לזוגיות - אתה יכול, את אותם הכלים, לקחת ולנסות להשתפר עם העובדים שלך או עם המנהלים שלך, כי זה יעבוד ממש ממש טוב.
      • וסתם לראייה - אחת המשפחות שאצלי בקליניקה היום: האבא הוא מנכ”ל של סטארטאפ - דווקא סטארטאפ מצליח, אבל לא נזכיר שמות - וקרה לי במפגש האחרון שהסברתי לו איזה משהו ואז הוא אמר לי “וואלה! לעובדים שלי אני עושה את זה! . . . “
        • אז אמרתי לו “נכון” והוא אמר “את יודעת מה? אני חושב על זה שהעובדים שלי לא מדברים אלי כמו שהילדים שלי מדברים אלי” . . .
        • אז אמרתי לו “נכון - אבל גם אתה לא מדבר אל העובדים שלך כמו שאתה מדבר לילדים שלך” . . . .
        • ומכאן מתחיל כל הסיפור . . .
    • אז קודם כל החדשות הטובות - מה שאתם עושים טוב בעבודה שלכם, קחו הביתה.
      • ודבר שני - בואו ננסה להבין באמת את נקודות ההשקה . . . 
    • אז לגבי המוטיבציה . . .
    (אורי) מה - בונוסים? Equity? . . . [מישהו ברשות המסים חש הפרעה בכוח . . . .]
    • (מור) יכול להיות . . . בונוסים אולי אני יכולה להגיד שזה באנלוגיה לעידוד, לא באנלוגיה לפרסים
      • כי פרסים זה משהו שמייצר מוטיבציה חיצונית, ואני, בבית שלי, רוצה מוטיבציה פנימית
        • זה לא הכל אותו הדבר, ברור
    • אבל נגיד שאם אני מסתכלת באמת על כל מיני נקודות השקה, אז נקודה ראשונה היא כמו מה שאמר רן - בניהול מטריציוני, אחת המשימות הכי לא פשוטות שהייתה לי - כשהייתי הרבה שנים מנהלת מטריציונית - זה בעצם לרתום אנשים לעבוד בזמנים שלא תמיד בא להם ולעשות משימות שלא תמיד בראש שלהם.
      • וזה בדיוק אותו הדבר בבית . . .
      • וברור שבחופש הגדול זה כאילו על סטרואידים . . . .
    • אז איך עושים את הדבר הזה? אני יכולה להגיד שאחד הדברים שאולי מלמדים בכל מיני קורסים מתקדמים 
      • ואגב, חדשות מרעישות! אני מלמדת את זה בקורס חניכת פקודים בעיר הבה”דים בצה”ל . . . .
        • “ילדים בני 19”, שמעולם לא היו להם ילדים - צה”ל ,אפילו הוא, השכיל להבין שמיומנויות רכות מאוד נדרשות כדי שמפקד יהיה טוב
        • לא מספיק לרתק חיילים . . . 
      • אז מה מלמדים שם? מלמדים שם שאפילו שאתה עכשיו מנהל צוות ואתה צריך כללים ונהלים ואתה צריך לבדוק ביצועים - עדיין יש את המשהו הזה שנקרא “היכרות”:
        • להכיר מי זה הבנאדם שיושב אצלך בצוות, כמו שאתה רוצה להכיר מי זה הילד הזה - מה הרגישויות שלו, מה הדברים שהוא צריך
          • לא כל ילד צריך את אותו הדבר.
      • זה האמון - להבין שיש פה בנאדם שאתה יכול לעבוד איתו לסמוך עליו - 
        • אולי לבוא לעובד שלך ולהגיד לו “שמע, אני רוצה לשתף אותך במשהו” או “שמע, אני רוצה להתייעץ איתך במשהו”
      • וזה אותו הדבר עם הילדים שלכם - אפילו אם הם בני 3 אפשר לעשות את זה
        • בואו נתייעץ מה קונים לסבתא ליומולדת?
      • וגם בקשת עזרה - “אני צריך את עזרתך”: 
        • כל הורה שאמר “אני צריך עזרה” - הרבה פעמים הורים אומרים “וואו! כשאני אומר את זה אז הילדים רצים”
        • וכשהילדים קטנים הם לגמרי רצים - אם תגידו לילד קטן לשטוף כלים הוא יגיד “באמת! את מרשה לי לשטוף כלים?!” . . .
        • (רן) היום בת ה-10 שלי, כשאמרתי לה “יעל, אני צריך רגע עזרה . . . “ אז “למה דווקא אני?! למה תמיד אני?!” . . .
        • (מור) אבל זה כי היא שמעה את זה קודם כל מאחותה הגדולה יותר, וגם קלטה את זה בכל מיני סרטים  וכאלה . . . 
        • בתוך-תוכה, מתחת לכל השכבות של ההתנגדות, יש מוטיבציה גדולה לשתף פעולה ולגדול ולשמוח - אחרת כל הגישה הזאת לא הייתה עובדת.
      • אז בעצם מה אני אומרת?  . . . 
    (אורי) “בבקשה תני לי לבקש ממך עזרה” זה משהו מאוד מעצים . . . 
    • (מור) לגמרי . . . . ואגב, מה שסיפרת קודם [Offline] - אפשר לספר את זה? לגבי מה שעשיתם עם הז’יטונים? על התרומה שעשיתם, בחברה שלך? 
      • אז יש פה בעצם אדם - אורי להב - שהוא מנהל חברה והוא עושה את זה עם הרבה מאוד פאתוס גם, כי הוא החליט שהוא תורם לכל מיני עמותות שצריכות - אבל הוא עשה את זה בצורה . . .
      • בעצם, מה שאתה עשית כשאתה איפשרת לעובדים שלך לחלק את הז’יטונים שהם קיבלו  בשביל להחליט איזו חלוקה תיהיה לאיזו עמותה, אתה אמרת להם “תראו, אני בא להתייעץ איתכם - אני צריך את העזרה שלכם בהחלטה הזאת”
        • זה מה שאפשרת להם - אפשרת להם בעצם להרגיש שהם חלק מזה, שיש להם מקום וערך, שרואים אותם.
        • תחשבו על זה - אנשים מכלים חיים שלמים בלצפות ולקוות שיום אחד יראו אותם, שהם יהיו מורגשים ומשמעותיים, ואם הם לא מרגישים ככה הם מוצאים את עצמם בטיפולים מטיפולים שונים . . . .
      • אז בזה שאתה עשית את זה, אתה בעצם אפשרת את זה - וזה הדבר הראשון שמייצר מוטיבציה
        • כי אם אתה מנהל מטריציוני, ואתה בא לעובדים שלך - ואשכרה קרה לי כבר שמערכות שלי נפלו בפרויקטים שלי, ובאמת בתור מנהל פרויקטים, אפילו שבאתי מהפיתוח, מה הבנתי באמת במה שהם עשו שם, איזה פיצ’ר הם בנו ואיך? 
          • והיה שם לקוח עצבני מהעבר השני של הקו והיה חמש בבוקר אם זה היה ארה”ב
        • וברגע שאתה בא לאנשים ואומר להם “תראו, אני חייב לשתף אתכם במה שקורה בפרויקט”, “אני רוצה להתייעץ איתכם איך אנחנו מתקדמים, אני צריך את העזרה שלכם” - האנשים האלה קמים בחמש בבוקר ובאים
          • הם לא יוותרו על הדבר הזה
        • אז זה א-ב של מוטיבציה - גם בבית.
    (רן) כי זה . . . (אורי) זה שם גם אותך, וזה הרבה פעמים עוזר ברתימה - כשאת אומרת למישהו “אני צריך את העזרה”, זה שם אותך במקום פגיע . . . 
    • (מור) נכון . . . 
    (אורי) לא קל להמון אנשים לשים את עצמם במקום פגיע . . . .
    • (מור) נכון . . . אז הרבה פעמים אני אומרת להורים שאם אתה באמת רוצה שהילד עכשיו יעשה, אל תגיד “אתה יכול עכשיו לעזור?” - עם סימן שאלה - או “מי יכול לעזור?”
      • תגיד “אני צריך ככה וככה”
      • כי כשאתה שואל את השכן שלך “אתה יכול להשקות לי את העציצים? אני נוסע לשבועיים . . . .”
        • איזו דוגמא מהארכיון, הא? למי יש עציצים היום? . . .
      • אז יכול להיות שהוא יגיד לך “אני לא יכול, אני עסוק, אני לא טוב בעציצים” . . .
    • אז זה בדיוק העניין - אתה צודק שאתה נמצא במקום פגיע, ואתה יכול גם לקבל “לא” - 
      • אם יש משהו שממש חשוב לך שיקרה - תגיד את זה, בלי סימן שאלה.
    • אבל בגדול - אני אגיד שמיומנויות רכות תמיד זה מהמקום שישים אותך . . . אני אפילו אקרה לזה לא “פגיע” אלא “שווה ערך”
    • מה בעצם אנחנו רוצים? מה מנהל טוב צריך?
      • מנהל טוב צריך להבין שבמקומות מסויימים הוא יהיה שווה-ערך לצוות שלו - אבל לא שיוויון קולות
        • הוא מחליט בסוף היום איזו משימה מקבלת סדר עדיפות עליון
        • הוא מחליט בסוף היום על אילו נושאים הוא מתייעץ עם הצוות ועל אילו נושאים הוא לא
    • וזה בדיוק אותו הדבר בבית - גם ההורים לא מבינים שזו לא בחירה אינסופית, זה לא שכל היום נתייעץ וכל היום נבקש עזרות, לא . . . .
      • יש מקומות . . .
    (אורי) אה, אנחנו מקליטים פה בפרדס-חנה - כרכור, זה עובד אחרת פה . . . 
    • (מור) נכון, שכחתי, יא אללה . . . . נכון, הגעתי פה למעוז של השאנטי וה . . . . אנחנו נזרום וזה.
      • טוב, אז אני אזהר בדברי ואני מקווה שאני אצליח להגיע לאוטו ולא יסקלו אותי באבנים . . . .
    • אבל השורה התחתונה היא שאין שיוויון קולות - כי אני, כמו בצוות בעבודה - אני הראש-צוות, אני המנהיג של הבית
      • אני, מתוקף זה שיש לי גיל יותר מופלג - לא אני, אבל אתם - מתוקף זה שיש לי ניסיון חיים
      • אני בוחר איפה אני מאפשר את הבחירה ואיפה אני מאפשר את ההתייעצות.
    • אבל בסוף  - אני צריך לזכור שלוש מילים: שיתוף, התייצעות ובקשת עזרה
      • אני אומרת להורים שזה “שילוש קדוש” מבחינתי . . . 
      • והמצאתי לזה גם ראשי-תיבות, כדי שאני אזכור - כי אנחנו רוצים לצאת מפה עם משהו, נכון?  . . .
      • אז ראשי-התיבות  זה אה”ב - אם אני אני אוהבת את הילדים, אוהבת את הצוות . . . .
    • אז מה זה אה”ב? - שיתוף זה בעצם “אני” - להגיד “אני-אני-אני” . . . .
      • “אני מרגיש”, “אני חוויתי” “אני - היה לי ככה” . . . 
      • ו”התייעצות” ו”בקשת עזרה” הסתדר לי ממש טוב עם הראשי-תיבות אז לא הייתי צריכה לשנות . . . 

    (רן) את הזכרת הרבה פעמים את המושג של “מנהל טוב” - “אם אתה מנהל טוב” וכו’. עכשיו, יש הרבה מאוד מנהלים, מסוגים שונים לחלוטין, שכולם יכולים להראות טובים בעיני. זאת אומרת - אני שואל את עצמי על סמך איזה קנה-מידה את מחליטה מיהו “מנהל טוב”? יכול להיות, לצורך העניין מנהל שהוא “מניאק-בן-מניאק”, שבחיים לא מתחשב באף אחד מהעובדים שלו אבל עדיין משיג תוצאות פנומנליות - ניקח את הדוגמא הקנונית של סטיב ג’ובס . . . .
    • (מור) כן? ככה הוא היה? אני לא מכירה פשוט את הסיפורים . . . . 
    (רן) ככה אומרים . . . לא יצא לי לעבוד איתו, אבל לפחות זו התדמית שהוא בנה לעצמו ואני בטוח שיש כאלה במציאות, גם אם לא הוא ספציפית.(אורי) זה לפי “קופה ראשית” . . . (רן) כן . . . . ומשיגים תוצאות פנומנליות - אז מה, הוא לא “מנהל טוב”? לפי הרבה קנה-מידה הוא בהחלט “מנהל טוב” . . . .
    • (מור) קודם כל, סטיב ג’ובס - כבודו במקומו מונח, כנראה שהיה לו כזה מוח מטורף ויצירתי שהיו דברים אחרים שחיפו על דברים אחרים . . . .
      • בסוף, אנחנו מכלול של דברים - אז אנחנו לא נמדדים רק במשהו אחד.
    • אבל אני אגיד שאני חושבת שאם אפילו צה”ל הבין שמפקדים צריכים להבין את הדבר הזה, הרצון שלנו זה שיהיה פה כאילו “סמכות מיטיבה”
      • מה זה “סמכות מיטיבה”? תחשבו על זה
      • אם הייתי שואלת אתכם - זה תרגיל שאני עושה להורים ואנחנו יכולים לעשות את זה כאן
      • תגידו לי, תחשבו רגע על איזושהי דמות אצלכם בעולם, בחיים - זה יכול להיות הורה, מפקד בצבא, מנהל בעבודה, לא יודעת מה - שהיה מבחינתכם “סמכות-מיטיבה”
        • מה זאת אומרת? כזאת שאחריה הייתם מוכנים לרוץ, באש ובמים, גם כשלא נוח לכם 
        • איך שהוא אומר לכם “בואו, אני צריך” - בום! נופלת לכם העט מהיד
        • יש לכם בראש איזשהו מישהו כזה, אבסטרקטי?
      • (רן) כן . . . 
      • (מור) כי הרבה פעמים אני יושבת עם הורים והם אומרים לי “אין לנו אף אחד כזה” . . .  שזה ממש עצוב, אבל זה קורה
      • (רן) לפעמים זה לוקח זמן להיזכר . . . עכשיו, כששאלת, זה לקח לי כמה שניות - אבל כן, אני יכול להיזכר.
      • (מור) זה היה מהיר . . . אני חייבת להגיד שזה יכולות מופלאות.
        • אז הבנאדם הזה - אילו תכונות היו בו? מה עשה אותו, עבורך, עכשיו, זה שעלה לך בראש? למה הוא סמכות מיטיבה? כי - מה?
      • (רן) הוא היה בנאדם מאוד אנושי . . . .
      • (מור) אוקיי . . . מה זה אומר?
      • (רן) הוא היה מפקד שלי בצבא . . . לפעמים מפקדים הם מאוד מרוחקים, בלתי-נגישים - הוא לא, הוא היה מאוד נגיש, הוא היה מאוד אנושי, היה מראה גם את החולשות שלו
        • וידעתי שאפשר לסמוך עליו שהוא יחפה עלי שצריך, שאם הוא שולח אותי אז הוא צריך לשלוח אותי וידעתי שהוא רואה את טובתי.
      • (מור) אז מה שאתה אומר זה שהוא היה “אנושי”, ואני מניחה שמה שאתה מתכוון זה שהוא הכיר אותך בשם, שהוא ידע להסתכל עליך, לשמוע אותך, להקשיב לך, לעודד אותך . . . משהו  . . . הוא היה . . .
      • (רן) ואחרים כמובן, זה לא היה לבד - אבל ראיתי . . . היה ניתן לראות את הצד האנושי שבו הרבה יותר מהצד המקצועי.
      • (מור) אוקיי, מעולה. היו לו גם קווים אדומים, שידעת שאיתם אתה עובד ואתה לא עובר אותם?
      • (רן) כן, בצבא זה אפילו קל . . . יש הרבה כאלה.
        • (מור) כן, עכשיו אפילו היה לי קל כי לקחת מפקד צבאי . . .  והיו לכם כמובן נהלים, שהיה ברור לכם איך עובדים וכו’
      • היו גם מקומות שהוא היה מדריך אותך? מלמד אותך דברים?
      • (רן) כן . . . באופן טבעי. הייתי טירון, בשא”ש . . . בגדול הוא לימד אותי הכל
      • (מור) כן, למרות שאתה יודע - שום דבר פה הוא לא טבעי . . . יכול להיות גם מפקד שפשוט זורק אותך למים [נקודה רגישה בחובלים…]
        • אני ראיתי כאלה גם, מלא מנהלים
        • אני זוכרת איזושהי נקודה בזמן, כשהייתי בהייטק, והייתי כבר אחרי הניהול פרויקטים מלא שנים וישבתי במשרד, והגיעה איזו מנהלת פרויקטים חדשה
          • שהיום אגב היא חברה מאוד טובה שלי וגם בכירה מאוד באחת החברות הגדולות
        • ואשכרה “זרקו אותה למים” - אף אחד לא הסביר לה כלום, לא עשה כלום . . . פשוט כלום.
        • ראיתי ולקחתי אותה . . . וזה בכלל לא היה במקום הזה, אבל זה קורה, בקיצור . . . .
          • בחברות גדולות ומסודרות וכל זה.
    • אוקיי, יופי - ואצלך [אורי], עולה לך בראש איזושהי דמות-סמכות כזאת, מיטיבה?
      • (אורי) אפילו אחת שאת מכירה . . . .
      • (מור) מה אתה אומר . . . . וואו, איזו מחמאה.
      • (אורי) חשבתי על זה, שיהיה לנו על מה לדבר . . . .
        • (מור) שנרים לו, כשהוא יקשיב לפודקאסט מההתחלה ועד הסוף . . . 
      • אז אותן שאלות, בעצם - אליך: היו שם מקומות, אני מבינה, שהוא היה מקשיב או יכול לדבר איתך בגובה העיניים?
      • (אורי) קשר חברי מאוד . . . 
      • (מור) ברמת קציצות . . . קציצות אצל אמא שלו, כן . . . . וואחד קציצות, אני במקרה מכירה גם.
      • (אורי) זה קשר מיטיב מאוד . . . .
      • (מור) ישר למקום הנכון . . . וגם ידעת שיש דברים שלא עושים אותם, או שלא עוברים אותם וכל זה? . . .
      • (אורי) ברור - לפעמים הוא גם לימד אותי איך עוברים את הקווים . . . .
      • (מור) טוב, זה היה כי הגעתם כבר לקשר ממש מתקדם . . . ואני מניחה שגם שם היית יכול ללמוד ממנו, לקבל ממנו עצות מקצועיות וזה . . .
    • אז תראו, רגע - כשאנחנו מסתכלים על זה, בעצם יש פה משהו שהוא מכלול של מלא דברים שהם כאילו אחד הפוך של השני - 
      • מצד אחד, אני בגובה העיניים
      • מצד שני - אני אומר לך “עד כאן!”
      • מצד שלישי - “אני נותן לך מסגרת נהלים”
      • מצד רביעי - “אני בא, אני מסביר לך . . . “
    • מה שאני מתכוונת כאן זה שאני בעצם הולכת ומאוד אוהבת לעבוד עם מודל של פסיכולוג קליני בשם אריה טבעון שנקרא “מודל הסמכות השלימה”
      • מה שהמודל הזה אומר הוא בעצם שתחשבו על זה שתיהיו גם “לב” - שזה מה שאמרת, “האנושי הזה”, שזה מה שאמרת ה”מקשיב” או “הקציצות” . . . 
        • טוב, זה לא ברמה הזאת . . . 
      • גם תיהיו “הינשוף” - זה שמסביר, הבר-סמכא - שזה חלק מסמכות
      • גם תיהיו זה ששם קווים אדומים וזה שנותן את המסגרת ואת הגבולות
    • אז מנהל, קודם כל מפקד - יש לו את כל הדברים . . . 
    (רן) אני רשמתי לעצמי “לב, ינשוף ושוטר” . . . . פחות או יותר . . . .
    • (מור) נכון . . . הקווים האדומים זה - הם הולכים שם על חיות - זה שור
      • והכללים והנהלים - זה פיל, שהולך, מפלס דרך ועם ארבע רגליים על הקרקע.
    • השורה התחתונה היא שמנהלים שמתקדמים ומנהלים שהולכים אחריהם ונוהים אחריהם זה בדרך כל מנהלים שיהיה להם את הדבר הזה
      • יהיה להם את המכלול . . .
      • יש דברים שבהם אתה יותר חזק ויותר חלש - אבל זה יהיה אצלם
    • אגב - בול אותו הדבר גם כשאנחנו רוצים להיות הורים סמכותיים . . . 
      • אנחנו צריכים להבין שאנחנו צריכים שיהיה לנו את המכלול של הדבר הזה
      • וכל העניין הזה עם ויכוחים בעקבות ילדים בזוגיות קורה כי לא התחתנו עם עצמנו . . . .
        • חדשות מעולות! אם היינו מתחתנים עם עצמנו היה סדום ועמורה . . . 
      • אבל אם לא התחתנתי עם עצמי, ואני רוצה עכשיו - ואני יותר לב, כזה
        • אז אומרת לי בת זוגתי “טוב, עכשיו יאללה - צריך לעלות למעלה, צריך לישון”
        • ואני אומר לה “וואלה, אבל תראי - הוא משחק כל כך יפה, עזבי, תני לו . . . .”
        • אני בעצם לא הלכתי איתה לאותה מטרה
      • אבל אם אני - היא אומרת לי את אותו הדבר ואני אומר “בואו איתי, אני אתן לכם חיבוק ואספר לכם סיפור”
        • אז אני בסגנון הלבבי שלי והיא “בסגנון הפיל” שלה
          • אני מקווה שהיא לא פיל
        • ובסוף אנחנו הולכים לאותה המטרה - אז לא יהיו שם חיכוכים.
      • אז זה פשוט הרבה מאוד דברים, שאם יש לך יכולות כאלו כמנהל - קח אותן הביתה, זה יהיה נהדר.
    (אורי) קוראים לה “איוש משלים” . . . . נכון?
    • (מור) מה?
    (אורי) “איוש משלים”
    • (מור) אני לא יודעת . . . . לא מכירה מינוח כזה . . . .
    (אורי) גם כשעובדים בצוות . . . 
    • (מור) אה, הבנתי . . . 
    (אורי) . . . יש מישהו שיש לו חוזקות כאלה ויש מישהו שיש לו חוזקות כאלה  - אבל זה עוזר פי-אלף אם אתה מכיר את החוזקות, אם אתה מודע לחוזקות של איש הצוות שלך או של הבן-זוג שלך - כי אתם צוות בסוף.
    • (מור) אוקיי, זה נשמע לגמרי הגיוני.
    • אגב - אני יכולה גם להגיד לכם שבזמנו, כשעשיתי הרצאה על עבודת צוות ועבודה מרחוק, נתקלתי באיזה סרטון שעשו בגוגל, לגוגל
      • עשו שם אשכרה מחקר של מה עושה צוות טוב - האם זה זה שיש לו אנשים שהם חברים ואוהבים אחד את השני או מה?
      • ובעצם המסקנה שלהם הייתה שלא חייבים להיות חברים - יכול להיות שבאותו צוות שעובד מעולה, שיש שם שני אנשים שלא סובלים אחד את השני, 
        • אבל בסוף מה שעושה צוות טוב זה שמאפשרים לאנשים בצוות באמת את המקום הזה של . . . 
        • לא זוכרת איך הם קראו למינוח, אבל אנחנו יכולים לקרוא למינוח בשמו “האדלריאני”, שזאת הגישה שאיתה אני עובדת, לפחות בהדרכת הורים - שזו תחושת השייכות
        • אתם דיברתם על זה גם באחד הפרקים [434 Parenting and Managing with Tony Felik Arad] - המקום הזה שבני אדם יכולים להשמיע את עצמם, מקשיבים להם, יש ישיבות סטטוס, משתפים את כולם, עושים סיעור-מוחות וכו’.

    (רן) מעולה . . . אנחנו כבר עמוק בתוך הפרק, ויש נושא שבוער בי: אמרנו שזו חופשת הקיץ, ובקיץ עושים מלא תוכניות: טסים, ולפעמים טיסה לא יוצאת, לפעמים גם תוכניות משתבשות - אבל עושים תוכניות, כמו גם בעבודה: עושים תוכניות רבעוניות, עושים תוכניות לספרינט, עושים תוכניות - ופתאום המתחרה משבש לנו אותן או שאיזושהי פלטפורמה משבשת לנו אותן . . . דברים כאלה קורים.ואני שואל את השאלה . . . בעצם, אני רוצה לשאול שתי שאלות: (1) זה איך נכון לתכנן תוכניות? נתמקד במסגרת של העבודה, אבל אני מניח שזה נכון גם במסגרת המשפחתית; ו-(2) מה עושים כשהתוכניות משתבשות? איך מתמודדים עם זה? . . . .
    • (מור) שאלות מעולות וחשובות מאוד - ובואו, בעיקר גם בעידן הזה, עם הקורונה וזה . . . 
      • ארגונים שלמים שתכננו תוכניות וכל המגדל קלפים הזה עף לשמיים . . . .
    (רן) העולם צוחק . . .
    • (מור) בדיוק, לגמרי . . . 
    (אורי) משפחות שלמות שתכננו תוכניות . . . (רן) החיים זה מה שאתה עושה כשאתה מתכנן  . . . .
    • (מור) יש איזה משפט כזה . . . 
    (אורי)החיים זה מה שהיה לנו לפני הקורונה . . . .(רן) ניתן את הקרדיט לג’ון לנון על המשפט הזה
    • (מור) יש גם את המשפט שהאדם מתכנן ואלוהים צוחק . . . .
    (רן) כן, זה של אחד הפילוסופים , אחד מאבות הפילוסופיה, שכחתי את שמו, כן . . . 
    • (מור) אוקיי, אז קודם כל אני אגיד שהיה בחור אחד נחמד, מאוד מפורסם, שקראו לו אייזנהאואר - הוא היה הנשיא ה-34 של ארה”ב, ובמלחמת העולם השנייה הוא היה מפקד בעלות הברית, אז כנראה שהיו לו כמה טייטלים והוא הבין דבר או שנייים לגבי תכנון תוכניות
    • והוא אמר משפט מאוד פשוט - אולי התרגום קצת קלוקל, אבל הוא אמר שתוכניות זה קשקוש - אבל חייבים לתכנן
      • [או - Plans are worthless, but planning is everything]
      • אז מה הוא רצה להגיד בעצם? שתהליך התכנון הוא זה מה שמייצר פה משהו עם הרבה Added-Value.
    • אז כמו שאף חברה ואף ארגון שתכנן תוכניות בתחילת הקורונה וחטף בומבה על התוכניות האלה לא החליט לעצמו ש”טוב, תוכניות זה קשקוש ואני לא מתכנן יותר בחיים”
      • כל ארגון ממשיך לתכנן ומקצה לזה משאבים ולפעמים יוצאים מחוץ לחברה וכו’ וכו’
    • אז אותו הדבר כאן - אנחנו רוצים לתכנן, כי בתוך תהליך התכנון קורים מלא דברים טובים: יש סיעור-מוחות ויש שיתוף ויש תיאום-ציפיות . . . 
      • כשבנאדם יושב לא בריק אלא מישהו מסביר לו מה הולך להיות, אז באיזשהו מקום הוא מרגיש שהעולם הוא מקום בטוח.
      • אם אנחנו רוצים עובדים שירגישו שייכות לארגון ושירגישו שהם “באים בראבאק” ושהארגון הוא “שלהם”, בעיקר בעידן שבו ההייטק רותח ואנשים עוברים בקלות ממקום למקום . . . 
    (אורי) מתי היה העידן הזה? . . . .
    • (מור) כן, זהו - לאט-לאט נעלם לנו . . . . אבל אנחנו מתעלמים, אנחנו מכניסים את הראש כמו בת-יענה וזה יעבור מעלינו . . . 
    • אז בעידן הזה, אנחנו כן רוצים שהאנשים האלה ירגישו שהם חלק - כדי שזה ייצר להם את המקום הזה של המוטיבציה והשייכות.
    • אז גם בבית שלנו, אני ממש ממש מזמינה כל אחד ואחת ששומעים את זה עכשיו - 
      • קודם כל, לקחת איזה מקום שבו רגוע להם בבית - אני מקווה שיש כזה, אם לא אז דברו איתי . . . 
      • ובמקום הזה, לפרוש מן דף כזה, ריק, ולהגיד “טוב חבר’ה - מתכננים עכשיו את הקיץ!”
        • ברמה הזאת, של לשים כמה עוגנים שאנחנו יודעים - “הקייטנה של ההוא”, “החופשה המשפחתית של הזה” . . .
        • ואחר כך, לבוא ולשאול את כולם “מה עוד הייתם רוצים שיהיה?”
      • וממש - שזה יהיה ממקום כזה שכל ילד - אפילו שהוא בן שלוש, אפילו שהוא בן 18, 
        • וגם הילדים הגדולים, ההורים - מותר להם, מגיע גם להם לשים שם את הרעיונות שלהם . . . .
      • ונרשום את הרעיונות של כל אחד, ואז יכול להיות שאחד בא עם “רשימת מכולת” ואחד בא עם שניים
        • נבחר נגיד אחד מכל אחד - וממש נשבץ.
    • מה קורה בתהליך כזה? למה הוא טוב?
      • (1) עשינו פה “סיעור מוחות” - יש פה הרגשה של “כולנו ביחד”
      • (2) כל ההתנגדויות האלה, של הילד שלא רוצה כי לא בא לו ללכת ללונה פארק אבל השני ביקש - בעצם עבדנו איתן, מנענו אותן
        • כי כל אחד קיבל את המקום שלו - ואז הוא צריך לתת גם מעצמו.
      • זו למשל תוכנית שאנחנו יכולים לעשות בקיץ, שיכולה לעבוד לנו יותר טוב - ואז גם לנו, ההורים, יהיה הרבה יותר רגוע כי אנחנו נדע לפחות את הכמה עוגנים וזה מרגיע באיזשהו מקום
        • חוסר-ודאות זה לא טוב לבנאדם, לא נוח לו עם העניין הזה
      • ובין-לבין אפשר יהיה גם להגיד “טוב, לא נורא - אז היום הם לא עשו כלום וכל היום היו במסך, No big deal, כי מחר אנחנו כבר נוסעים למשהו משפחתי והכל יהיה טוב”.
      • בקטע הזה, אפשר גם לשתף אותם בהקשר של החופשה - 
        • למה לא לתת להם משימה? - “תחשבו ותמצאו לנו פה איזה מלון נראה לכם” . . . 
        • אני, האמת - אנחנו נוסעים לחופשה משפחתית באוגוסט, אז שלחתי להם שני מלונות שנראו לי ולא ידעתי להחליט ביניהם
        • אז אמרתי “תראו מה יותר נראה לכם” - והם בחרו אחד
        • שכל הדברים האלה יעשו בצוות
    • גם אצלנו בעבודה אנחנו, כצוות, אוהבים לתת רעיונות - ואמרנו כבר שזה עושה את כל ההבדל.

    (רן) אני אשתף בחווייה אישית - אנחנו גם טסים בקיץ, וביקשתי מהבת שלי לבוא וללמוד קצת את השטח ולתכנן תוכניות, אז המסלול הראשון שהיא שולחת לי זה נסיעה של 3 שעות ל-Primark, שנמצא על איזושהי עיר במחוז אחר . . . אבל בסדר, נמשיך משם . . . 
    • (מור) מהמם . . . קודם כל, זה נשמע שהיא יודעת מה שהיא עושה ומה שהיא רוצה
    • דבר שני - תגיד תודה שזה Primark ולא, לא יודעת, משהו שלא עולה לי עכשיו בראש, אבל Primark זה עוד יחסית טוב . . .
    (רן) לגמרי . . .  הוא יותר חסכוני לפחות. אבל רגע - נחזור לסיטואציה של החברה: Eisenhower, מה הוא אמר?אז מה שהוא אמר זה “חבר’ה, זה בסדר שעשיתם תוכניות ובסוף הקלפים נטרפו והכל נזרק לפח - לא בזבזתם פה זמן, יש לזה ערך משמעותי”.ויש פה כמה ערכים - (1) האנשים שותפים, זאת אומרת - האנשים שותפים ויש להם תחושת שייכות, דיברנו על זה גם מקודם; (2) עשינו סוג של “תרגיל על-יבש” - חשבנו על סיטואציות, “מקרים ותגובות” . . . . אז יכול להיות שבאמת לא כל הסיטואציות האלה קרו, אולי חלק מהן עדיין תקרנה בעתיד - זה לא לחינם.אוקיי, אז נכון שדברים אולי היו יכולים בסופו של דבר לצאת יותר טוב - אם רק לא הייתה קורונה אז יכול להיות שכל הכלכלה שלנו הייתה אחרת, אבל זה לא בשליטתנו - עדיין, הערך של התכנון הזה שעשינו הוא גדול הרבה יותר מאפס, אוקיי. לא שרפנו פה זמן, וזאת גם הסיבה שאנחנו נתכנן הלאה, אפילו שאנחנו יודעים שהרבה מהתוכניות בסופו של דבר לא תצאנה לפעול בגלל סטוכסטיות שקיימת במערכת באופן אינהרנטי - סליחה על הקללות . . . .
    • (מור) וואו, זו מילה שלא שמעתי כבר מלא זמן . . . . בטכניון שמעתי אותה, ואני לא אגלה לפני כמה זמן זה היה . . .
    (אורי) גם בטכניון שומעים אותך [מיטניק עוד שם?! וואו . . . .] . . . 
    • (מור) כנראה . . . (1) אני חייבת להגיד שאתה תלמיד מצטיין ו-(2) אני חייבת להגיד שאתה עשית לי ממש הנחה, כי אתה לא הזכרת לי שהשאלה השנייה שלך הייתה - אמרתי שאולי תפספס - מה אני עושה כש . . . בדיוק . . . 
    (רן) אבל עכשיו הגענו ל-D-Day, אוקיי? [אנחנו ודווייט] הפלישה לנורמנדי . . . .
    • (מור) מה אני עושה? טוב, אני בדיוק צריכה ללכת . . . .
    • אז תראה, בסופו של יום - אם אנחנו הולכים רגע רק לקטע של ההורות, יש לנו תפקיד אחד בעולם הזה והוא לאמן את הילדים לחיים
      • ובחיים משתבשים דברים, יש תסכולים בחיים, לא מקבלים תמיד את מה שרוצים . . . .
      • לא קרה כלום אם התוכניות לא קורות . . .
    (אורי) אפשר להגיד להם שיש סטוכסטיות מובנית במערכת . . . . [אם כי יש מצב שזו עילה לפנייה למועצה לשלום הילד]
    • (מור) אני חושבת שזה רעיון מצויין
    (רן) אינהרנטית! אני אמרתי אינהרנטית! . . . 
    • (מור) אני חושבת שבמקום שאתם תגיוד להם את זה, הם יפרשו בשיא ולא תישאר להם אנרגיה לבכות ולצעוק ולטעון טענות [נקודה מעניינת - על סטודנטים זה די עובד ככה …]
    • אבל קודם כל, בואו - הילדים בכל מקרה יבואו בטענות, אחרת מה . . .
    (רן) אם יש דבר אחד ודאי זה שהילדים יתלוננו . . .
    • (מור) בדיוק - אז זה בסדר, זה אומר שאנחנו בסדר ושבאמת יש ילדים ויש הורים וכו’ - וזה חלק מהחיים.
    • מה אנחנו יכולים לעשות כשדברים לא קורים ולא מסתדרים? אנחנו יכולים לעשות את הדבר האחד הזה, שלפי מחקרים הוא כבר כמעט נעלם מהעולם, כמה חבל, ואנחנו צריכים לעבוד עליו - 
      • קוראים לדבר הזה “להשתתף בקושי” . . . קוראים לדבר הזה אמפטיה.
    • אם אנחנו, לרגע, רוצים עוד ראשי-תיבות, אבל ממש משמעותיים
      • אם הייתם אומרים לי “דברי רק על דבר אחד”, איזה נושא את בוחרת? אז הנה הנושא שהייתי בוחרת לדבר עליו.
    • אז עכשיו עשיתי Build-up, אתם ממש שניכם . . .
    (רן) מקשיבים בערגה . . . 
    • (מור) בדיוק . . . אז עכשיו אני אגיד מילה שכאילו לא תפיל אתכם מהכיסא . . . 
    • מה שאני רוצה להגיד זה שאחד הדברים הכי משמעותיים שאנחנו יכולים לעשות, גם עבור הילדים וגם עבור העובדים שלנו, ואני לא אחדש לכם עכשיו שום דבר, רק העניין הוא שזה בדיוק משהו שאנחנו לא ממש מיומנים בו
    • זה “עידוד” . . . 
      • והמקום שצריך בו הכי הרבה עידוד זה איפה שקשה ואיפה ששחור
    • אנחנו, כשאנחנו חושבים שאנחנו מעודדים - מה אנחנו אומרים? “כל הכבוד!” . . . 
      • אני עוזרת לו למחוא כפיים, שלא ירעיש . . . 
      • אז קודם כל, “כל הכבוד” זה כשיש הצלחה - אבל מה יקרה אם הילד שלי עכשיו ניסה שעה [!] והתאמץ בלקלוע לסל, ובדיור כשהגעתי, כמו ב”והילד הזה הוא אני” - לא מצליח לו?
      • במקרה הזה אז במקרה הטוב -שהוא גם לא טוב - אני לא אומר כלום
        • כי מה אני אגיד לו? אני רואה שהוא כבר מתבאס וזה . . . אז אני לא אומר כלום.
        • וזה לא טוב - כי הילד ממש עבד קשה ולא הצליח לו.
      • במקרה העוד-פחות-טוב, אני אומר לו “לא נורא, לא קרה כלום” . . . 
        • זו לא אמפטיה - זה הפוך מאמפטיה . . . .
        • זה כאילו הלכת עכשיו יחף בחדר, נתקעת בפינה הכואבת הזאת של הקיר עם האצבע הקטנה - ויבוא אליך אורי ויגיד לך “לא נורא, דפדף . . . ."
        • הוא ידפדף לו אחת לפנים, נראה לי . . . אז זה מאוד בעייתי.
      • ובמקרה העוד יותר גרוע אני אגיד לא “טוב, . . .
    (אורי) מעולמנו - דרכת על קובייה של לגו . . . 
    • (מור) בדיוק, עדיף, ממש . . . ועדיף שזה יהיה השפיץ הזה, המשולש . . . 
    • או שאתה תגיד לו “מאמי, אם היית מתאמן אתמול בבוקר, כמו שהצעתי לך - אז זה היה קורה” . . . .
      • זאת אומרת - ה”מאמי” פה לא עזר . . .
      • נתתי פה בום לפנים - וכל הדברים האלו לא טובים.
    • “עידוד” אומר שאני אגיד לו “תשמע, אני מה-זה מבין אותך . . . אתה יודע מה? אני זוכר אפילו שכשהייתי ילד ואבא שלי בא . . .” - גם שיתוף כזה.
    • אז בעצם, נתתי פה להשתתף בקושי.
    • אז התוכניות פה לא הסתדרו?  . . . . רציתי להגיד פה מילה אחרת אבל אין עריכות אז עדיף שאני אגיד מילים יפות ונעימות כאלה, אז תוכניות “התפקששו” . . . .
      • אני יכול להגיד להם “שמע, אני מבין אותך - רצינו ללכת ללונה-פארק אבל מה לעשות שבדיוק עכשיו, אני לא יודעת, הלונה פארק נסגר” וזה . . . 
      • “אנחנו נצטרך לחשוב על משהו אחר - בוא נחשוב, בוא נתייעץ”
    • אני משתמשת בשיתוף ובהתייעצות ובבקשת העזרה כדי להגיד לו “יש איתך פה מישהו”
    • אני בעצם “המפקד האנושי הזה”, אני המנהל האנושי הזה
      • אני מעדיפה פחות “מפקד” בקטע של ההורות
    • ויש את “אני מבין אותך” . . .
      • אני מבין שזה קשה
    • ואם בראשי-תיבות עסקינן - אז בכלל, כל העניין הזה של איך לעזור כשקשה וכשאני  . . . נדפקו לי התוכניות, זה להגיד לו שלושה דברים:
      • לחשוב שלמילים שלנו יש כוח
      • מה זה ערך המילה? מיל”ה זה בעצם 
        • מאמץ - ה”מ”
        • “י”י זה יכולת
        • וה”לה” זו היכולת הזו להשתתף בקושי, שכרגע דיברתי עליה.
    • אז להגיד לו, בהקשר של הכדורסל - “שמע, אני ראיתי שממש התאמצת, אני ראיתי איך אתה אדום ומזיע” . . .
      • או להגיד לו “תראה איזו יכולת יש לך לעמוד פה ולא לוותר - אתה פה שעה מתאמן”
      • או להגיד לו “תראה, אנ מה-זה מבין אותך” . . .
    • ובהקשר של התוכניות לקיץ - בדיוק אותו הדבר . . . וכשהשתנו התוכניות בעבודה אז בדיוק אותו הדבר . . .
    (אורי) “זה ממש חבל שה-Primark סגור . . . בואי, נלך ללואי ויטון . . .”(רן) הוא פתוח רק בשבתות של הראשון בחודש, במקרה הזה . . .
    • (מור) כן . . . אני חושבת שאם הבת שלך כבר שלחה לך, בעקבות זה ששלחת לה את התוכנית - אז להגיד לה “וואו, איזו יכולת יש  לך לחשוב . . .”
      • כי זה מאוד משמעותי - היא עשתה פה משהו שלא תמיד . . . היא התאמצה.
        • היא ישבה וחיפשה - אפילו שזה היה בקטע שלה.
    • (רן) כן, לחלוטין.

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

    (אורי) אגב, אני תמיד נותן קרדיט לצה”ל על פשוט עבודת משאבי-אנוש טובה לאורך . . . . פשוט, הרבה מאוד אנשים עוברים דרך . . . הרבה מאוד אנשים עוברים חוויות חזקות דרך השירות הצבאי. הרבה מאוד אנשים מתחלפים, כך שבאופן טבעי קשה לשמור ידע ותרבות ארגונית ולבנות אותה לאורך הדרך, ואני חושב שהצבא עושה את זה . . .צה”ל, אני לא מכיר צבאות אחרים - אבל צה”ל עושה את זה  . . . אולי אפשר היה לעשות את זה יותר טוב וזה, אבל בסוף בתוצאה, עבודה שקשורה לתרבות וגידול של אנשים ועבודה עם אנשים, לדעתי בצורה טובה מאוד.
    • (מור) האמת שלא חשבתי עד כמה זה קשוח - שצריך לטפח שם תרבות ארגונית, כשכל הזמן יש תחלופות . . . 
    (רן) כל שלוש שנים . . . 
    • (מור) זה מטורף . . .
    (אורי) גם אנשים בתפקידים בכירים יותר - עושים קדנציה ועוברים ודברים כאלה . . .(רן) אבל אולי זה חלק מה-Anti-Fragility - זה שיש תחלופה כל כך גדולה זה נותן לתאים להתפתח וזה מייצר . . .(אורי) וזה מצריך את האתגר הזה, של “בואו נשמר . . .” (רן)  . . . אם אותם חיילים, לצורך העניין, בצבא תיאורטי אחר, אותם חיילים היו יושבים על אותה משבצת במשך עשרים שנה - יכול להיות שדווקא אז זה לא היה עובד, כי הייתה ברירה אחרת . . . פה לא הייתה לך ברירה, אתה חייב לשמר את הידע.(אורי) למשל, במיון - אני מאוד מעריך ואני מסתכל על הפרק הצבאי בקו”ח עם תשומת לב. זה לא יקבע שיבוץ או משהו כזה אבל אני שם שם תשומת לב, כי לצבא יש . . קודם כל, הוא רואה את כולם וזה כמויות אדירות של מידע - אלגוריתם טוב מתפתח ככל שיש לו יותר דאטה לעבוד עליו. ודבר שני - הוא רואה אנשים כשהם ללא ניסיון . . . הם די . . . 
    • (מור) בוסר . . . 
    (אורי) ועל סמך זה להיות מסוגל למיין אנשים לתפקידים כאלה ואחרים - צריכה להיות שם יכולת טובה . . .
    • (מור) מומחיות . . . 
    • אני חייבת להגיד שמהצד של המנחה - יש השקעה מאוד גדולה בלתת קורסים ולפתח את הצד הזה של היכולות והמיומנויות.
      • תחשבו שאני עושה קורסי-הורים בצה”ל - זה הזייה, אשכרה . . . 
      • ופסיכולוגיה חיובית ומה לא?
      • ותקשורת בינאישית . . . באמת, הם משקיעים מאוד מאוד במקום הזה של המיומנויות הרכות ושל התרבות הארגונית הנכונה, כדי שאנשים - תיהיה להם את היכולת.
    (אורי) אז שמעתי בפודקאסט אחר - לא משנה, קשור לסיפורי לחימה וכאלה - פודקאסט מאוד טוב אצל רן לוי שנקרא “שעת מלחמה”  . . . אבל היה שם מישהו שהיה דווקא מפקד טייסת וכו’ והוא אומר: אחד הדברים שאנחנו אומרים לטייסים שיוצאים - אנחנו אימנו אתכם ל-Scenario-יים, היכנו תוכניות - ואתם תגיעו למקום והמציאות משתנה . . המציאות תיהיה שונה ואתם תצטרכו לאלתר. והמקום שבו אתם מאלתרים זה לפי ערכים, ולפי היכולות שלכם להסתגל למצב.וזהו . . . פה באות . . . ערכים זה יכולות רכות . . . 
    • (מור) לגמרי . . . 
    (אורי) . . . שבסוף מנחים אותנו לקבל החלטה כזו או אחרת.(רן) אולי אנחנו נצטרך פעם לעשות פודקאסט על איך מייצרים ערכים בחברה? איך בוחרים אותם, איך מגדלים אותם? איך מגדלים דור של עובדים, על סמך אלה . . . אני חושב שגם לך [אורי] יש הרבה מאוד ניסיון בזה, ואני בטוח שזה יהיה נושא מעניין . . . נמצא פה על הלוח . . . .
    אבל - לצערי זמנו תם . . . אז תודה רבה, מור שמיר, שבאת: היה מרתק.
    • (מור) תודה לכם שאירחתם אותי - אני חושבת שזה באמת ההבנה הזו שטכנולוגיה זה באמת העולם וזה החיים - אבל יש עוד כמה דברים שיכולים לעזור לכל הפיתוח הטכנולוגי הזה לקרות יותר טוב . . . 
    (רן) בהחלט - וגם, על הדרך, להיות הורים יותר טובים, אם אפשר . . .(מור) לגמרי . . . ובני זוג, ובני אדם . . . (רן) תודה רבה, להתראות!

     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    45 min
  • 441 Datascience workflow with Yuval from AppsFlyer
    [קישור לקובץ mp3]אנחנו מארחים בכרכור את יובל פוקס מחברת AppsFlyer כדי לדבר על Workflow של Data Science.בתור התחלה - Disclaimer: רן עובד ב-AppsFlyer והוא גם המנהל של יובל (ושל אנשים נוספים בקבוצה).

    (רן) אני מניח שהנושא יכול להיות מעניין בעיקר למי שהוא לא Data Scientist - זאת אומרת, אני מניח שמי שעוסקים בזה ביום-יום יתעניינו במה שקורה בדשא של השכן, אבל שאינם Data Scientist, אני מניח שירצו לשמוע מהי המתודולוגיה, איך עובדים . . . .אז לפני שנקפוץ לשם - יובל, כמה מילים על עצמך . . . .
    • (יובל) אני יובל ואני עובד היום ב-AppsFlyer
    • לתחום הזה האמת שנכנסתי די במקרה, לפני קצת יותר מ-10 שנים - 
      • התקבלתי כסטודנט לאינטל לקבוצת שנקראית Advanced Analytics, שקיימת עד היום
        • אני חושב שגם היום יש בה את כמות ה-DS-ים הגדולה ביותר בחברה
        • ושם הכרתי את העולם הזה - אז היה לזה שם קצת פחות סקסי, קראו לזה Data Mining - וככה התחלתי להתאהב.
        • לקחתי  קורסים ב-Coursera, העמקתי בעוד קורסים במהלך התואר הראשון - ולאחר מכן התחלתי לכוון את עצמי באמת לכיוון הזה.
      • כשסיימתי שם אז התחלתי לעבוד ב-Wix
      • עבדתי ב-Wix, ולאחר מכן עברתי לסטארטאפ בשם Drippler למערכות המלצה.
      • לאחר מכן עברתי לעולמות ה-Social eCommerce ב-Sears ישראל
      • ו-WeWork . . . 
      • ועוד כמה חברות נוספות
      • והיום אני ב-AppsFlyer, ככה שיצא לי לראות תהליכים גם בחברות שהן יותר מוכוונות-Software וגם בחברות שהן יותר מוכוונות-Data
      • זהו . . . 
    (רן) ואף יורד ים! עוד אחד לסרייה . . . [עכשיו מחפשים יורד-ים שהוא גם קיבוצניק?](אורי) אנחנו כל הזמן ב-2:1 פה בשולחן . . .(רן) . . . אז הנה, התהפכו היוצרות, המאזניים האלה השתווה . . .  בסדר.(אורי) ימשיך החי”רניק . . . .
    (רן) אז לפני שניכנס לנושא, אני חושב שקצת חשוב גם להבין על מה אתה עובד ביום-יום - ואני התנדבתי לספר על זה, כי גם אני מכיר את זה . . . אז בגדול, ממש ככה בקצרה על מה שעושה חברת AppsFlyer ובמיוחד מה שעושה צוות ה-Data Science בחברת AppsFlyer - ואחר כך גם נבין למה זה רלוונטי: אז AppsFlyer זו חברה שמספקת Marketing Analytics, ובעולם הזה של Marketing Analytics תמיד יש Concern אחד שהוא קבוע - וזה איך משמרים Privacy של משתמשים.למעשה, המשימה שלנו - בתור קבוצת Data Science בתוך AppsFlyer זה לתת יכולות של Marketing Analytics מבלי לפגוע ב-Privacy של המשתמשים.ונשאלת השאלה כמובן - איך עושים את זה? . . . זאת אומרת, איך אפשר לעשות “1+1” כשאתה לא יודע מי האחד או מי השני? . . .  והתשובה לזה היא “הרבה סטטיסטיקה” . . . הרבה Modeling, הרבה מאוד דברים מאוד מגניבים.אפשר לספר על דוגמא של פרויקט אחד שבו אנחנו למעשה “פוקחים עין אחת ועוצמים את העין השנייה” - ובאמצעות אקסטרפולציות (Extrapolations) יודעים להשלים את החסר על ידי מנגנונים בייסיאניים (Bayesian) ועל ידי מנגנונים הסתברותיים אחרים. מן הסתם אפשר לצלול פנימה אל תוך המוצר ממש עמוק, אבל בוא נאמר - אלגוריתמים של Machine Learning, קלאסיים ולא קלאסיים, הרבה מאוד סטטיסטיקה שהיא לא Machine Learning, לא מעט מזה - ועוד טובין אחרים . . .אז זה היום-יום - והזכרתי, ככה, פרויקט אחד - אבל יש לא מעט פרויקטים אחרים בתחום הזה.
    אז בואו נצלול לעסק . . . נניח שאני Data Scientist, עכשיו קיבלתי את התואר באוניברסיטה, אוקיי? אני בא להתחיל לעבוד ואומרים לי “יש פה בעיה . . . “(אורי) יש בזה תואר? יש תואר ב-Data Science? או . . . (רן) זה עניין די חדש . . . אתה צודק, באמת לא היה. אבל לא מזמן הפקולטה בטכניון של תעשייה וניהול [+1!] למעשה שינתה את השם שלה באופן רשמי לחלוטין ל”פקולטה למדעי הנתונים” ומעכשיו . . . זאת אומרת, עדיין אין בוגרים שיצאו משם כי זה ממש קרה השנה, אבל החל מבעוד 3 שנים (נגיד 4 . . . ) יהיו “בוגרי מדעי הנתונים” בתואר ראשון - וכמובן שגם בתארים מתקדמים.(אורי) והכוונה היא באמת ל-Data Science ל-Modeling, ל-Predictions . . . (רן) לגמרי - אני מכיר אנשים שמלמדים שם ולגמרי - זאת ההכוונה. הם עשו את השינוי . . . תראה, השינוי-כיוון הזה לא קרה ביום - זה לא שביום אחד קמו והתעוררו ואמרו “אוקיי, זה מה שאנחנו רוצים לעשות מעכשיו” - זה שינוי שקרה לאורך זמן, אבל את “המיתוג מחדש” עשו ממש לאחרונה.(אורי) ומסורתית, התעסקו ב-Data Science אנשים בעיקר מתארים מתקדמים, של מדעי המחשב . . .  (רן) כן, אז זה מגיע ממדעי המחשב, מהנדסת תעשייה וניהול, ממתימטיקה . . . 
    • (יובל) אני חושב, אני עושה פה Hijack - אני חושב שאולי זה קצת השתנה היום, כי יש Other - אבל פעם היו שלושה מסלולים מרכזיים להגיע לתחום הזה
      • אחד מהם הוא באמת כמו שאמרתם, זה תארים מתקדמים - תואר שני לפחות, בדרך כלל דוקטורט
      • אנשי Software ו-Software Engineering שהחליטו שהם רוצים לעשות את ההסבה הזאת
      • והסוג השלישי - ואני חושב שזה גם משהו שמאוד, מכיוון שאני הגעתי משם, מאוד משפיע אולי על צורת המחשבה שלי ועל איך שאני ניגש לפרויקטים - זה אנשים שהגיעו מה-Data, מה-Business, והחליטו להפוך את הדברים ליותר אוטומטיים ואולי יותר מורכבים, והיום . . . 
    (אורי) למדו לבד . . . 
    • (יובל) למדו לבד? כן . . . אחרי זה אפשר באמת לתמוך בזה בתארים שניים “וצפונה” - אבל כן, “ללמוד בידיים”
    • יש קורסים - היום בוודאי, פעם היו קצת פחות - אבל קורסים שיכולים לתת לך את הכלים 
    • וכמו כל דבר - אתה צריך “ללכלך את הידיים” וללמוד - והניסיון שאתה צובר מטעויות שאתה עושה ומודלים שראית ובעיות ותחומים, זה משהו שהוא Priceless.

    (אורי) אז רגע, אולי  שנייה . . . . הקהל שלנו לפרק הזה זה אולי באמת אנשים שרוצים “להסתכל על הדשא של השכן”, אז אני חושב שיש פה Exemplar מעניין . . . . התואר הראשון שלך?
    • (יובל) התואר הראשון שלי היה בהנדסת תעשייה, וגם התואר השני שלי הוא בהנדסת תעשייה
      • כשהשני באמת היה הרבה יותר מוכוון ל-Data Science ומדעי-הנתונים.
    (אורי) התואר הראשון הוא התואר מקורס חובלים, או . . . .?
    • (יובל) לא, התואר הראשון היה באוניברסיטת תל אביב, לא מקורס חובלים - תואר הנדסה רגיל.
    (רן) אני חשבתי שאתה שואל אותו מה היה הכינוי שלו, אבל . . . (אורי) לא . . . אתם הייתם המחזור הראשון  . . . 
    • (יובל) אנחנו היינו המחזור האחרון שלא עשה את התואר .  . .
    (רן) אה - עושים תואר ראשון בקורס חובלים? עכשיו הבנתי . . .(אורי) היום עושים תואר ראשון בקורס חובלים . . .
    • (יובל) אני חושב שגם עושים תואר שני . . .
    (אורי) “תואר-למדעי-הכלום” כזה, אבל זה תואר ראשון בסוף . . .(רן) אוקיי, נחמד
    • (יובל) אז אנחנו היינו המחזור האחרון שלא עשה את התואר - לא יודע להגיד האם זה טוב או לא.
      • דלתות מסתובבות כזה . . . 
      • אני יכול להגיד שיש לי במחזור אנשים מאוד מוכשרים שלא היו צריכים את זה - אבל אי אפשר לדעת
    • אז אם אני חוזר למה שדיברנו עליו לפני רגע - אולי ה-Others האלה הם אנשים שבאמת החליטו לעשות את ההסבה הזאת
      • מתחומי סוציולוגיה ואולי מדעי החיים וגיאוגרפיה ואנשים שנגעו בסטטיסטיקה בתואר שני באיזשהו מחקר ומחליטים לעשות את ההסבה הזאת.
    (אורי) יש הסבות כאלה שנעשות, למשל ע”י itc > - Israeli Tech Challenge > - עושים את ההסבות האלה גם לעולים חדשים, אבל גם לישראלים שרוצים לעבור, שיש להם תארים אחרים והם רוצים לעבור ל-Data Science, והם לא פחות מוכשרים ומצויינים . . .(רן) אני חושב שכנראה מה שחשוב להגיד ואולי נשמע קצת טריויאלי זה שזה פחות משנה איזה תואר יש לך - יותר משנה איך את עושה, זאת אומרת - פחות מי נתן לך אלא מה שעשית עם זה: כמה השקעת בעצמך ולמדת מעבר. בין אם זה itc או כל אוניברסיטה או גוף אחר - בסופו של דבר מה עשית בעצמך עם זה? זה מה שיביא אותך לרמה גבוהה והלאה.אבל כן -  אני חייב להגיד שנכון להיום, אם אני מסתכל על אנשים שעובדים אצלנו בקבוצה, אז יש “ערב רב”: יש מדעי המחשב, פיסיקאים, מתימטיקאים, אנשי תעשייה וניהול . . . זאת אומרת - זה מגיע מהרבה מאוד מקומות, וזה נחמד, זה מוסיף הרבה מאוד גיוון ועניין.(אורי) אצלכם גם הקבוצת Data Science או האלגוריתמיקה היא מעורבת בין מהנדסי תוכנה ואנשי Data Science? או ש . . . (רן) זו שאלה גדולה - לפרק אחר . . . התשובה הקצרה היא “גם וגם” - יש גם קבוצה מופרדת וגם קבוצות מוטמעות, אבל לא נכנס לזה . . . 
    • (יובל) אבל  . . .
    (אורי) יש גם מסלול בהתפתחות של מהנדסי תוכנה, שעובדים בצמוד ל-Data Scientists ופתאום נהיים אחלה Data Scientists . . . (רן) . . . וגם זה קורה, כן. אבל בוא - זה נושא מעניין, אבל נראה לי שאי אפשר לכסות את זה היום.
    אז בוא, אני אתן לך איזושהי “בעיטת פתיחה”: אז אני Data Scientist, יובל, ואני רוצה להתחיל לעבוד על איזשהו פרויקט. נגיד שיש לי . . . אני חושב שאני מבין מה הבעיה - אז מה הדבר הראשון שאני עושה? מתחיל “לזרוק מודלים”? - מנסה רשת נוירונים? מנסה עץ סיווג? מה . . . איך מתחילים? מה עושים?
    • (יובל) אז אני חושב שאפשר לקחת צעד אחורה . . .
    • באמת, התחום הזה מאוד התפוצץ בעשר-חמש-עשרה שנים האחרונות - אבל לפני זה הוא נקרא “סטטיסטיקה” או Data Mining . . . 
      • יש את התחרות המאוד מפורסמת של Netflix, שעשתה בתחום של מערכות המלצה, שאורי מכיר מצויין, ופירסמה את התחום הזה מאוד.
      • השיטות הראשונות של Data Mining היו בשנות ה-90 - המפורסמות שבהן הגיעו מהאקדמיה
        • כמו KDD ו-SEMMA- והשיטה שאני חושב שהיא הפופלארית ביותר - CRISP-DM
        • והן הלכו והתפתחו עם השנים . . . 
      • כמובן שכל אחד או כל חברה עשתה את האימפלמנטציה (Implementation) שהיא צריכה למה שהיא רוצה
    (רן) בוא שנייה “ניתן צבע” ל-Buzzwords האלה שהרגע שלפת - KDD ו-CRISP-DM . . .  אז אפשר לחשוב על זה כמו על Scrum, לצורך העניין, בעולם פיתוח התוכנה, או ספרינטים . . . אבל עם שלבים מאוד מוגדרים, נכון?
    • (יובל) בדיוק . . . אז אנחנו נכנס באמת לאחת השיטות ונדבר עליה וניקח איזשהו פרויקט לדוגמא ונפרק אותו . . . 
      • אבל באמת - השורש של הדברים האלה, כמו כל דבר, הגיע מהאקדמיה
      • והתעשייה עשתה את האימפלמנטציה ובאמת הכינה את השלבים הנוספים - גם מקדימה וגם מאחורה:
        • של ה-Deployment, של ה-Monitoring . . . אנחנו נגיע לזה.
    (רן) “מהאקדמיה” במובן של “אקדמאי שרוצה לחקור איזושהי בעיה”, רוצה לחקור איזושהי תזה - אז הוא משתמש בשיטה הזאת . . . זה לא שהם הלכו ואמרו “אה! אוקיי, בואו נעשה עכשיו, נכתוב דוקטורט על איך עובדים ב-Data Science” - זה לא העניין . . .זה פשוט מהנסיון  של האקדמאים, שבאו ואמרו “אוקיי, נראה לי שבכל האוניברסיטאות האלה שראיתי כולם עובדים ככה, אז בואו נסכם את זה, נקרא לזה איזשהו Design Pattern, איזושהי שיטת עבודה” - ועכשיו נותנים לזה שם, ואחד מהם זה CRISP-DM . . . אז לא ניכנס לכולם, נבחר אחד.
    • (יובל) אז באמת CRISP-DM זו השיטה המוכרת ביותר
      • אפילו Microsoft עשתה לה איזושהי אדפטציה (Adaptation) לפני 6 שנים 
        • הוסיפה כלים שיותר מתאימים לעולם החדש של הפיתוח והתאמות לספרינטים באמת - יותר רלוונטית
    • כמו שאמרתי בהתחלה, אחד הדברים המשמעותיים ביותר שהכווינו אותי זה באמת איך מתחילים פרויקט כזה? . . . 
    • והדבר אולי החשוב ביותר, לפחות בעיני, הוא מהי השאלה העסקית?
      • כלומר - ה-Business Understanding, שזה השלב השלב הראשון של CRISP-DM ושיטות אחרות
      •  זה אולי השלב המשמעותי ביותר - אם אתה לא מבין מה אתה רוצה למדוד ואתה לא מבין  מה הלקוח צריך - מה הוא באמת צריך - אז אתה יכול לצאת ל”מרדף שווא” . . .
    (רן) זה אולי נכון לכל דבר במקצוע שלנו . . . אורי - אני יודע שאתה בדרך כלל מטיף לזה . . . זאת אומרת - זה נכון בהרבה דברים, גם למפתח תוכנה זה נכון.אבל אני חושב שפה אני רוצה לעשות איזושהי Observation ולהגיד שאם אנחנו מסתכלים על מקצועות, לפחות מהפרספקטיבה שלי, מסתכלים נגיד על מפתח תוכנה - אז נגיד שיש מפתחי Frontend ויש מפתחי Backend הרבה פעמים, ובדרך רואים שאיש ה-Frontend הוא בדרך כלל יותר מבין את הלקוח, יותר קרוב ללקוח וצריך קצת יותר אמפטיה ללקוח.אז אותו הדבר גם בעולם ה-Data Science: בהרבה פעמים אנחנו רואים שאנשי ה-Data Science צריכים להיות גם אנשי-מוצר די טובים - הם צריכים את היכולת הזאת של להבין את הצרכים האמיתיים של הלקוח, והאתגר הוא שבהרבה פעמים גם הלקוח עצמו לא מבין את הצרכים שלו . . . זה לא שאפשר פשוט “ללכת ולחלוב אותו” והוא יבוא ויספר לך, אלא יש פה איזשהו תהליך של גילוי, יש פה איזשהו Skill של “גילוי-מוצרי”, של להבין מהו הצורך העסקי האמיתי שאותו אנחנו מנסים לפתור - ומשם אפשר להמשיך.(אורי) אני חושב, אבל, שיש פה עוד נדבך לדבר הזה - כדי להפוך את העולם המוצרי לעולם של Data Science, אתה צריך “לזקק את המדד” - מהו מדד-ההצלחה שלך? וזה לפעמים עניין לא טריוויאלי . . . רק על הדבר הזה אפשר להשקיע לא מעט זמן, ולפעמים לא להצליח . . . (רן) כפי שנאמר, אורי - שאלה טובה! יש לנו שקף . . . (אורי) סליחה?(רן) אני מסכים לגמרי . . .  עניין המדד הוא סופר-סופר-קריטי - והוא גם מאוד מורכב וגם קשור לזה
    • (יובל) וזה, אולי, ה . . . אם השלב הראשון זה להבין מהי השאלה העסקית, אז השלב השני - וכמו שרן אמר, זה נכון לכל דבר שמפתחים בתעשייה ובהיי טק - זה איך אנחנו מודדים . . . איך אנחנו מודדים הצלחה.
      • ואיך אנחנו מודדים “הצלחה פנימית”, שזה ה-Offline  -
        • זה יכול להיות הדיוק של המודל 
      • וזה יכול להיות איך אנחנו מודדים הצלחה “בחוץ” - 
        • אם ניקח, לדוגמא, מערכת המלצה של סופר, שתמליץ לי על המוצרים הטובים ביותר, אז זה מצויין - מישהו יגיע ויעשה סיבוב של חמש דקות במקום שעה
        • אבל האם זה מיקסם (Maximized) את הפרמטרים של הסופר עצמו, שרוצה שאנשים יסתובבו בקופה ויסתובבו בין מדפים נוספים ויוסיפו עוד שוקולדים או עוד דברים נוספים, שהם לא התכוונו לקנות מלכתחילה? . . . כנראה שלא.
    (אורי) האמת שצריך לדעת האם הלקוח הוא גבר או אישה . . .  זה . . . .
    • (יובל) אבל כמו שאמרנו - בעולם ה-Privacy, אלו נתונים שאין לנו . . . .
    • אז אנחנו באמת מתחילים ושואלים ומנסים להבין מה באמת צריך - וזה גם משהו שמשתנה בין חברות שונות - 
      • איפה ה-Data Scientist נמצא? מה הקו המחבר שלו?
    • אני יכול להגיד שאצלנו ב-AppsFlyer אנחנו נפגשים עם לקוחות ומדברים איתם ומקבלים מהם פידבקים - וזה דבר מדהים
      • אתה יודע להגיד האם אתה נמצא בכיוון 
      • והרבה פעמים, כשאתה מפתח דברים “במעבדה הרחוקה”, הקריאת-מציאות הזאת יכולה להגיד לך איפה אתה נמצא והאם אתה קרוב או רחוק.
    (רן) כן, השלב הראשון זו הבנה עסקית וקביעת מדד . . .
    • (יובל) בדיוק - אז ברגע שיש לנו את זה, שזה שלב מאוד חשוב, אז אנחנו עוברים לשלב הבא - 
      • שזה שילוב בין איזשהו “Data Understanding”, 
        • שכולל בתוכו איזושהי אקספלורציה של הדאטה (Data Exploration) והבנה של איך הוא מתנהג
      • בתוספת של כל מיני שאלות והיפותזות שאנחנו מנסים להסיק.
    • אני יכול לחקור את הדאטה במשך חודשים, אבל אני רוצה לנסות להבין - ביחד עם הלקוח, ביחד עם מנהל המוצר, ביחד עם אנשי הצוות - אילו שאלות ואילו היפותזות אני יכול להוכיח או להפריך.
      • כדי להתחיל להתקדם למודל
    • בסופו של דבר, מהתהליך הזה אני רוצה לצאת עם כמה שאלות, שיכווינו אותו בסופו של דבר לכיוונים, למודלים
      • שזה יכול להיות ממודל Deep Learning למודל סטטיסטי פשוט - שיתנו לי את הפתרון הטוב ביותר.
    • חשוב להגיד שבכל שלב מאוד חשובה השקיפות - לדעת איפה אנחנו נמצאים
      • וגם “הפינג-פונג” -  עם הלקוחות, עם מנהלי המוצר
      • כדי לא ללכת לאיבוד . . .

    (רן) אני אוהב להציג את זה כ . . . מצד אחד יש לך את הצורך של הלקוח, שאתה צריך להבין אותו. מצד שני, יש לך את היכולות שלנו, זאת אומרת - מה שאנחנו יכולים לתת. הלקוח אולי רוצה את “הפרדיקטור-עם-האפס-שגיאות” (Predictor) - אוקיי . . . מצד שני, אנחנו יכולים אולי לתת פרידיקטור עם 80%, שצודק ב-80%  מהמקרים - ועכשיו בוא ונראה מה עובד - האם 80% זה מספיק טוב? אם לא, צריך להסתכל מכיוון אחר.יש פה סוג של משא ומתן - שלא קורה כמובן באופן רשמי מעל שולחן המשא ומתן, אבל יש פה איזושהי הבנה של צורך, למצוא איזשהו מכנה משותף בין הצרכים של הלקוח לבין היכולות שלנו - יכולות הדאטה וכו’ - ומנסים לראות איפה שני הדברים האלה יכולים להיפגש.(אורי) רציתי שנייה לדבר על הפינג-פונג: לשאול האם לפעמים אתה נפגש עם הלקוח ואתה מדבר עם מנהל המוצר והוא מתאר איזושהי בעיה עסקית  - ואז אתה ניגש לדאטה, והאם לפעמים בדאטה אתה רואה פתאום . . . או שהבעיה היא לא בעיה, זאת אומרת שהבעיה שהוצגה לך היא לא בעיה או שהיא בעיה שרלוונטית ליחסית מעט מקרים ולא הרבה; או שפתאום אתה מגלה בעיה אחרת, יותר מעניינת, שמגיעה מהדאטה - האם חוזרים בפינג-פונג להגיד “רגע, אנחנו רואים פה משהו אחר”? . . . 
    • (יובל) חד-משמעית . . .
    • באמת, כ-Data Scientist אתה נמצא באיזשהו ציר שבין מוצר-דאטה-ו-Engineering -
      • ואתה צריך לג’נגל בין כל העולמות האלה וכל פעם לשים כובע אחר
    • ובאמת בנקודה של האקספלורציה (Exploration), אתה תראה הרבה פעמים דברים אחרים - 
      • אתה תחקור את “א’” ו-”ב” - ופתאום תגלה את “ג” ו-”ד”
      • [פרויקט של השב''כ?] 
      • ויכול מאוד להיות שהפרויקט ישתנה או שהמהות שלו תשתנה.
      • וזה חלק מהתפקיד שלנו . . . 
    • יש לנו איזושהי בעיה כללית, מוגדרת יותר או פחות
      • וחלק מהתהליך הוא ללטש אותה ולהגיע לדבר האמיתי.

    (רן) בסדר, אז בוא נחזור רגע ל-CRISP-DM - אז דיברנו על שני השלבים הראשונים: השלב הראשון  זו הבנה עסקית, מה הלקוח רוצה ואיך אני יכול למדוד את ההצלחה שלי, והשלב השני זה מה שיש לי, או מה שיש בדאטה - להבין קצת את הדאטה שלי. מה אחר כך?
    • (יובל) אז ברגע שהבנתי ובניתי את השאלות שאני רוצה ואני יודע איך הדאטה מתפלג ואם יש לי בעיות כאלה או אחרות
      • ערכים חסרים, או שפתאום יש בעיה אחרת שאני צריך לפתור
    • אז אני מתחיל לסגל לאיזשהו כיוון מסויים  . . . בשלב הזה אני מתחיל לעבוד על הדאטה.
      • זה שלב לא פשוט - אני יוצר את הפיצ’רים (Features)
        • שיכולים להיות פיצ’רים סטטיסטיים ויכולים להיות פיצ’רים שמבוססים על איזשהו Domain-Knowledge
    (רן) רגע-רגע-רגע . . . עד עכשיו לא אמרת בכלל “רשת נוירונים” . . . מתי אני מתחיל “לזרוק” את הדאטה הזה על רשת נוירונים, שתלמד? . . . . 
    • (יובל) זה . . . שלב המידול, בדרך כלל, הוא 5-10% מהזמן - אם יש לך מזל . . . 
    (רן) תודה . . .(אורי) אתה יודע, אני עוד Software Engineer, אני מהנדס Frontend - וכשאתה אומר לי “פיצ’ר” אז אני אומר “כן, זה מה שה-Product Manager רוצה עכשיו, עוד כפתור אדום” . . . .(רן) ההוא-המעצבן בג’ירה . . . (אורי) כן . . . זה  . . . על זה אנחנו מדברים כשאתה אומר “פיצ’ר”? . . .
    • (יובל) אז הפיצ’רים שאני מדבר עליהם אלו “העמודות הנוספות”, כלומר - 
      • אם נתנו דוגמא למגדר
      • זה יכול להיות גיל - כמובן שבעולמות ה-Privacy זה משהו שהוא פחות רלוונטי . . .
      • שימוש של User באפליקציה - כמה פעמים הוא נכנס ביום? . . . 
      • איזה-שהם מדדים נוספים  . . .
    (אורי) מדדים או מאפיינים, שנמצאים בדאטה . . .
    • (יובל) בדיוק . . . 
    • וגם דברים שלא נמצאים בדאטה - דברים שאני יכול להביא “מבחוץ” - 
      • לחבר תאריכים וחגים ומזג-אוויר ולא משנה מה . . . 
    (אורי) זה “פיצ’רים מחושבים” - זאת אומרת שאני לוקח את הדאטה הגולמי ומחשב מהם פיצ’ר או מסיק מהם פיצ’ר נוסף . . . .(רן) כן, בדיוק . . . לזה, דרך אגב, אגב קוראים Feature Engineeringאז כן - זו הבחנה יפה - שהמילה Feature בעולם ה-Data Science אומרת משהו אחר מאשר המילה Feature במקומות אחרים, בעולם המוצר - ולפעמים זה מייצר בלבול בפגישות, כשאתה מדבר עם אנשי-מוצר . . . אתה אומר להם “פיצ’ר” והם לא כל כך מבינים על מה מדובר.אבל רציתי לרגע לחזור - אמרת, יובל, שאם יש לך מזל, אז אולי חמישה או עשרה אחוזים מהעבודה שלך זה באמת עבודת Modeling, ואני חושב שזו באמת נקודה חשובה למי שלא נמצא בתחום שכדאי שיבין - שבעצם באמת רוב עבודת ה-Data Science היא לא לבנות את רשת הנוירונים או לייצר את עץ הסיווג או דברים אחרים. נכון שזה חלק מהעבודה, אבל זה לא רוב העבודה . . . רוב העבודה היא בשלב ההכנה ובשלב ההבנה - הבנה של ה-Business, הבנה של הדאטה שלך, Feature Engineering, ניקוי של הדאטה . . . זה יכול אפילו להיות שלב מאוד מאוד ארוך ומעייף. ודרך אגב - זה לא רק שלב הנדסי, זה יכול להיות גם שלב מדעי. זה לא רק ללכת ולנקות את הדאטה אלא גם לעשות את זה בצורה סטטיסטית נכונה.בסופו של דבר, כשאתה מגיע סחוט, עם הלשון בחוץ - אז אתה יכול לבנות  את המודל . . . (אורי) אבל אני חושב שגם, אתה יודע - פעם אנשים היו בונים את המכונה שמריצה ממש את המודל - והיום לא צריך את זה, יש ספריות לרוב ושכפול של עולם ה-JavaScript, זאת אומרת . . . יש ספריות לרוב . . .(רן) כן . . . 
    • (יובל) את רוב המודלים אתה לא צריך לכתוב ואתה יכול לעשות להם אימפלמנטציה (Implementation) פשוטה ולעשות Adjustment לפי מה שאתה מכיר - אבל כן חשוב להכיר אותם לעומק:
      • מה היתרונות ומה החסרונות, במה לבחור
      • כמובן שניסוי וטעייה ואופטימיזציה זה מרכיב מאוד חשוב בשלב בניית המודל.
    • אבל אני יכול לתת, לדוגמא - במודלים האחרונים שאנחנו בנינו בקבוצה, אלו היו מודלים From Scratch
      • מודלים סטטיסטיים, שהתבססו על איזה שהם עקרונות ממודלים קיימים - אבל שעברו כל מיני אדפטציות אחרות
      • כמעט ולא היה שימוש בספריות קיימות ומודלים קיימים.
    • אבל כן - בהרבה פעמים אתה יכול להשתמש בדברים שכבר נעשו - ואין סיבה להמציא את הגלגל אם כבר הוא שם.

    (רן) בסדר - אז בואו נעשה סיכום ונמשיך: אנחנו מדברים על CRISP-DM, וזו אחת השיטות - השלב הראשון זו הבנה עסקית, השלב השני זה הבנה של הדאטה - והשלב השלישי זה הכנה של הדאטה.אוקיי - עכשיו אנחנו מגיעים לשלב המרגש, הרביעי: מה קורה שם?
    • (יובל) אז אחרי שהכנו את הדאטה ודאגנו שהיסודות שלנו יהיו מבוססים וטובים - אז אנחנו מגיעים לשלב המידול.
    • בשלב המידול אנחנו יכולים . . .
    (רן)  . . יש! הכיף . . .
    • (יובל) השלב הכייפי . . . אז אנחנו יכולים לבחון את ההיפותזות שלנו.
      • את חלקן אולי בדקנו כשבחנו את הדאטה - הסתכלנו על ההתפלגויות והקשרים ביניהן
      • אבל בשלב הזה אנחנו יכולים לבוא ולממש ולהתאים את עצמנו לדאטה עצמו, למה שהכנו.
    • כמובן ששלב ה-Research - קריאה של מאמרים, בלוגים . . . 
      • כנראה שהבעיה שאנחנו מנסים לפתור נפתרה בעבר - ואנחנו יכולים לעשות התאמות למה שקיים
      • וזה הזמן לממש . . . 
    • חשוב לשים בראש כל הזמן - וזה משהו שלא דיברנו עליו - שאנחנו לא מפתחים בשביל האקדמיה . . . 
      • אנחנו מפתחים בשביל להביא איזשהו מוצר ל-Production
      • ואצלנו בקבוצה אנחנו כותבים את הדברים End-to-End, אז המעבר בין השלבים השונים - נגיד שיש משהו שהוא “מבושל מספיק” - אז אנחנו מעבירים את הקוד בצורה פונקציונאלית, מקוד-מחקר לקוד שהוא מותאם-Production.
        • וזו גם נקודה שהיא חשובה: מתי שאפשר - לעבור לפונקציות, לעבור לכתיבה שהיא הרבה יותר מוכוונת-פיתוח מאשר מחקר.
    (רן) כן, אני חושב שזו גם נקודה שלא יהיה לנו זמן להיכנס אליה . . . איפה שמים את התפר בין Data Science לבין Engineering: מה התפקיד של כל אחד? מה ה-Definition of Done של Data Scientist? אבל לא נכנס לזה פה . . . אלו שאלות שאני חושב שכמעט כל חברה שמתעסקת בזה חושבת עליהן - וכנראה שגם לכל אחת יש תשובות נכונות אחרות . . . אבל אנחנו אוטוטו מסיימים את CRISP-DM, אז או נסיים שם ואז נעשה דיון-מטא - אז הגענו לשלב ה-Modeling, ונניח שוואלה, מצאנו מודל טוב - XGBoost או רשת נוירונים או כל דבר אחר - שנותן לנו תוצאות טובות.מה עכשיו?
    • (יובל) בנקודה הזאת אנחנו צריכים להבין האם באמת עברנו את ה-Threshold ו"קיבלנו את האור הירוק להמשיך הלאה”.
      • אם אנחנו מצליחים לתרגם את דיוק המודל ל-KPI ה-Business-י - מצויין.
      • ושוב - חוזרים לפינג-פונג: אנחנו בשלב שהוא עדיין לא מוטמע בצורה סופית 
    • והאווליואציה (Evaluation) של המודל עצמו זה השלב הבא - אנחנו רוצים לבדוק אותו
      • אנחנו יכולים לעשות את זה Offline, ע”י הדיוק של המודל והצגה ללקוחות
      • או Online, ע”י A/B Testing או שיטות כאלה ואחרות.
    (רן) . . . ואז, אם התוצאות טובות - אז Roll Forward; ואם התוצאות לא טובות - אז . . . 
    • (יובל) אז אנחנו חוזרים אחורה . . .
    (רן) אוקיי . . . אז חוזרים אחורה, אולי אפילו לשלב הראשון, של “בואו נבין שוב את הבעיה העסקית” - אולי תוך כדי עבודה הבנו משהו יותר טוב, אולי שוב ניפגש עם הלקוח ונבין מה הוא רוצה . . . דרך אגב - אני אומר “הלקוח”, והלקוח זה יכול להיות כמובן גם לקוח פנימי, זה יכול להיות איש-המוצר שלנו, זה לא בהכרח  . . . זה לא שכל יום אנחנו מתקשרים ומטרידים את כל הלקוחות, אבל מישהו שמייצג את הלקוח, כמובן.אז הסיפור הזה יכול להיות Cycle-י, הרבה פעמים . . . 
    • (יובל) כן, ועד שלא הגענו לרמה שהיא מספיקה.
    • וכן חשוב להדגיש שהנטייה שלנו, כ-DS-ים, היא לחפש עוד מה אפשר לשפר ולהגיע ל-90% ול-95% . . .
      • והרבה פעמים, שיטות Engineer-יות של להגיע ל-80% בחצי מהזמן הרבה יותר משמעותיות . . .
        • העיקרון הפשוט - “לבנות את ה-Pipeline ולהעביר מים בצינור”
      • שזה משהו שאנחנו צריכים לקחת יותר ויותר מעולמות ה-Engineering.
    • וברגע שעשינו את זה, הרבה יותר קל לעדכן.
    (רן) כמו שנאמר - “Perfect is the enemy of Done” . . . 
    בסדר - ועכשיו השלב האחרון הוא Deployment . . . זאת אומרת שצריך להביא את המודל ל-Production.מה זה אומר? ככה, בשתי מילים - איך מביאים מודל ל-Production?
    • (יובל) אז מודל ל-Production מאוד תלוי בתשתיות שיש לחברה.
    • זה יכול להיות ע”י שימוש ב-Pipeline-ים כמו Airflow ו-SageMaker, עם תמיכה של כלי Monitoring כאלה ואחרים
    • וזה מאוד תלוי גם בחברה - זה יכול להיות משהו שהוא פנימי ויכול להיות משהו שמתחבר  למוצר Scalable-י שאתה צריך לעשות לו התאמות כאלה ואחרות.
    • זה יכול להיות מודל שהוא Real-time או מודל שהוא Batch-י, שרץ אחת ליום או אחת לשבוע . . . 
    (רן) כן, אז פה אנחנו למעשה נכנסים לעולם ש . . .(אורי) . . . אחת לחמש דקות . . . (רן)  . . . גם יכול להיות, כן . . . 
    • (יובל)  . . . Near-Real-time . . . 

    (רן) אז פה אנחנו למעשה נכנסים לעולם די גדול, שאפשר לקרוא לו פחות או יותר MLOps, שקצת יצא לנו לדבר עליו בעבר בפודקאסט - וגם יהיו לנו עוד פרקים על זה, אורי, אני כבר עושה לך ספוילר . . . . - אבל לא ניכנס אליו פה.אבל כן - השלב של ה-Deployment הוא שלב לגמרי לא-טריויאלי, ולפעמים יש אנשי מקצוע, כלומר Machine Learning Engineers שזו ממש ההתמחות שלהם, ואולי זה אחד מההבדלים המשמעותיים בין המודל האקדמי הזה לבין מה שקורה בתעשייה - באקדמיה, אני מנחש שברוב המקרים שלב ה-Deployment הוא יחסית פשוט, בעוד שבתעשייה זה חיים שלמים . . .  למעשה כל חיי-המדף של המוצר.(אורי) זה לא  . . . אני לא יכול [להפריז ב] להדגיש עד כמה זה חשוב, במיוחד כשהמודל שלך פועל בסביבה שמשתנה כל הזמן, אז החשיבות הזאת, של Pipeline מהיר, אוטומטי, רץ, מנוטר, שכל הזמן מזרים מודלים חדשים - זה בסוף מכיל שיפורים מאוד גדולים למדדים העסקיים.
    • (יובל) כן, כשאתה מפתח את המודל אתה צריך חשוב על כל כך הרבה כיוונים - 
      • אתה צריך להסתכל על הדאטה, לראות שאתה עונה על הצורך העסקי
      • ולראות שאתה תומך באלמנטים ה-Engineer-יים - יכול להיות שתבנה מודל מדהים, עם דיוק שהוא מתקרב ל-100%,  אבל זה משהו שלא ניתן לתחזוק וכל ריצה שלו לוקחת שעות . . . 
        • אז כנראה שתבחר במודל אחר, שהוא פשוט יותר וקל לתחזוק
        • נכנסים אילוצים נוספים . . . 

    (רן) אז דיברנו בעיקר על CRISP-DM, והזכרנו שיש עוד גישות - אבל בוא לרגע עכשיו ניקח צעד אחורה: ראית צוותים שעובדים עם CRISP-DM בתעשייה - מה במציאות, מה אתה רואה? האם הם פשוט לוקחים את זה As-is ומממשים, או שכל אחד עכשיו עושה את האינטרפטציה (Interpretation) משלו? מה יצא לך לראות, בחיים שלך?
    • (יובל) אז אני חושב שיצא לי לראות גם וגם . . . יש צוותים . . .
      • כולם ,אני חושב, גם אם לא קוראים לזה בשם הזה, נמצאים פחות או יותר באיזור
      • בסופו של דבר, אנחנו ניגשים לבעיה, מנתחים אותה - וניגשים למודל.
    (אורי) בסך הכל, זו נשמעת על פניו שיטה לוגית טובה . . . אני לא מוצא . . . זאת אומרת - אני חושב שיש הרבה שעובדים ככה ולא יודעים שקוראים לזה ככה . . .
    • (יובל) בדיוק . . . בהכנה לפרק, אז בסקרים שראיתי באמת זאת השיטה הנפוצה ביותר - סדר גודל של כ-50%
      • ועוד 25% זה אנשים או חברות שפיתחו משהו בעצמן - שאני נוטה להעריך שהן מאוד דומות . . . 
    • גם השיטות החדשות הן מאוד מאוד דומות ל-CRISP-DM, פשוט מבוססות על העולם החדש של ה-Deployments ובאמת משהו יותר ריאלי.
    (רן) אז למשל משהו אחד שאני רואה, שחסר פה ב-CRISP-DM, זה כל מה שקורה אחרי הגרסא הראשונה - וזו בדרך כלל רוב העבודה . . . זאת אומרת, הגרסא הראשונה - אם אמרנו קודם שההכנה של הדאטה עד למודל זה בערך 90% מהעבודה, אז הגרסא הראשונה זה בדרך כלל 10%, אוקיי? . . .  הרבה מהעבודה המעניינת מתרחשת אחר כך, וזה משהו שלא מבוטא . . . תמיד אפשר להפעיל Common-sense מן הסתם, אבל זה משהו שלא מבוטא ב-CRISP-DM. אני חושב שזה נחמד להשתמש בזה כאיזשהו Reference, אבל בטח שלא צריך להיצמד אליו כממש “חוברת הפעלה” - בסופו של דבר כן להפעיל Common-Sense.
    אתה רואה את זה קורה ברמה של ה-Data Scientist הבודד, או ברמה של צוות - זאת אומרת, מה ה-Scope של Workflow כזה? האם כל אחד נמצא בקצב שלו בצוות או שכולם צריכים להיות מסונכרנים באיזשהו אופן?
    • (יובל) זה תלוי באיך שהצוות עובד . . . Data Scientist בודד יכול לנהל את כל התהליך הזה בעצמו
      • אם זה פרויקט שהוא גדול יותר אז אפשר לשלב, אפשר למקבל
      • אבל תמיד צריך להיות קרובים אחד לשני ולהבין - כדי “להעביר את המקל” בצורה טובה.

    (רן) בסדר - אז אנחנו עשינו לעצמנו רשימה די ארוכה של נושאים אחרים שנרצה לדבר עליהם, אבל נגמר לנו הזמן . . . אז אנחנו נעצור פה - לא לפני שנספר שכמו כולם גם אתה מגייס Data Scientists, אז  . . .(אורי) לא - אתה . . . (רן) כולנו מגייסים  . . . אמרתי “כמו כולם” . . .כן, וספציפית גם לצוות של יובל - אז נגיד: אם מעניין אתכם לעבוד עם יובל עם הקול המהמם וגם איתי . . .(אורי) . . עם הקול המהמם . . .(רן) . . . או, חיכיתי . . . אתה צריך להרים כדי שירימו לך - אז כן, על נושאים שאנחנו עובדים עליהם, על היכולת לספק אנליטיקות בעולם שהוא Privacy-aware - אז בואו.
    האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    36 min
  • 440 Bumpers 79
    [קישור לקובץ mp3] 
    אחרי כמעט חמישה חודשים: רן, אלון ודותן בסדרה של קצרצרים על חדשות טכנולוגיות מעניינות.

    רן - 
    • בזמן האחרון אני נמצא הרבה בעולמות של Data Science ורציתי לספר על כמה דברים מעניינים שקורים שם, ואחד מהם זו ספרייה שנקראית JAX
      • ו-JAX זה למעשה מימוש-מחדש לספרייה יחסית-ותיקה שנקראית NumPy, שאני מניח שהרבה מאוד מכירים.
        • זה לא רק מימוש של NumPy - זה משהו שהוא קצת יותר גדול, ומכיל גם לא מעט דברים שמעבר.
      • למעשה זה מימוש-מחדש להרבה מ-Interface של NumPy - לדעתי זה נכתב ב-Google [אכן - google/jax] - ועושה שימוש בטכנולוגיות הרבה יותר מודרניות 
        • למי שלא מכיר, אז ב-NumPy - הרבה חלקים ממנו כתובים ב-C, אבל הרבה חלקים ממנו גם כתובים ב-Fortran וכו’
        • והוא לא עושה שימוש לא ב-GPU ולא ב-TPU או באקסלרטורים (Accelerators) שונים מסוגים שונים -
        • ו-JAX כן עושה את זה, נכון להיום - וגם הרבה מעבר.
      • הוא אמור להיות Drop-in replacement ל-NumPy וגם לכלים אחרים.
      • ניסיתי אותו - בינתיים הוא עובד סבבה . . . עוד לא עשיתי לו ניסוי כלים משמעותי
        • אבל נראה סופר-מעניין, למי שבתחום.
      • אז זהו - פשוט לחפש JAX ותמצאו את זה
        • לא להתבלבל עם Jax שהיה פעם בעולם ה-Java - זה משהו אחר לגמרי, הם רק לקחו את השם . . . 
      • (אלון) למה, בעצם . . . . למה? מי רוצה את זה? למה לי?
        • (רן) אז אם אתה עובד בעולם של Python ו-NumPy ואתה רוצה לכתוב תוכניות שרצות יותר מהר ממה ש-NumPy נותן לך היום - אז אתה רוצה את זה.
        • כי NumPy בעצמו הוא סופר-סופר מהיר, אבל יש לא מעט שיפורים שאפשר לעשות - בעיקר שימוש בחומרות יותר מודרניות.
        • אז זהו - זו הסיבה שתרצה לעשות את זה . . .
        • אם תרצה - אמרתי . . . אם תרצה.
      • (אלון) אם תרצה - אין זו אגדה . . .
    • (רן) ובעניין אחר, אבל לא רחוק - יוצא לי לעבוד לא מעט עם Jupyter Notebook ובסביבה של VSCode ויש לא מעט אינטגרציות בין שניהם
      • אז אם אתם עובדים באמת עם Notebooks ועם VSCode, אז יש לכם כמה דרכים שבהן אתם יכולים לעשות את זה.
      • אחת זה פשוט לפתוח ולערוך Notebook בתוך VSCode - זה בסדר ל-Notebook-ים קטנים
        • הניסיון שלי הוא שאם ה-Notebook גדול מדי - פשוט ב-VSCode דולף הזיכרון ובסופו של דבר . . . לא VSCode ספציפית, כנראה שזה ה-Extension - 
        • אבל בסופו של דבר זה מתחיל, ככה, לג’עג’ע כשיש Notebook-ים גדולים, בעיקר כשיש הרבה תמונות
      • אז זה לא סופר-סופר נעים - אבל מה שכן, יש עוד אופציה! - אתם יכולים פשוט, בתוך קובץ Python, לייצר Cell-ים קטנים - Cell-ים של Jupyter - ולהריץ אותם
        • אתם עושים את זה על ידי  זה שאתם עושים #% - “הערה” - ו-%% - ואוטומטית VSCode הופך את זה ל-Cell ומריץ אותו
        • ואז זה נחמד יותר . . . . אתם יכולים להריץ קטעי-קוד קטנים, לראות בצד ימין את ה-Output - וזה חמוד.
        • אפשר גם לייצר ממש גרפים והכל . . . . זה נחמד.
      • היתרון של לעבוד בתוך VSCode הוא שיש לך את כל ה-IntelliSense ו-Copilot, אם אתם משתמשים
        • אז זה יכול לעזור וזה נחמד.
    • (אלון) התכוונת ל-Copilot - ו-Copilot משתמש בך . . . . אני הגעתי כבר למצב שהוא משתמש בי מדי פעם: הוא עושה לי “תזיז את העכבר, אתה מסתיר לי” . . . . וזהו.
      • (רן) אני מניח שהוא עושה בי שימוש לרעה בהרבה מקרים, אבל לא הרגשתי את זה . . .
        • אבל כן - תכל’ס הניסיון שלי עם Copilot הוא סבבה
        • זאת אומרת - לפעמים זה מפריע, אבל הרבה מקרים הוא ממש עושה “בול”, ממש מה שהתכוונתי. נחמד.
        • בעיקר כשאני כותב טקסטים - קבצי ReadMe ודברים כאלה - ההשלמות שם הן ממש יפות.
        • גם בקוד זה סבבה - אבל בטקסטים זה ממש  . . . חוסך “טונה של הקלדה”.
      • (אלון) כן, טוב - קפצנו אליו . . . אבל כן, הוא מדהים - זה  . . . מזמן לא נתקלתי בכלי חדש כזה שמפתחים אשכרה - אם עכשיו יקחו להם אותו, הם יהיו מוכנים לשלם עליו. אין הרבה כאלה . . .
      • (רן) כן . . . לא תמיד החווייה מדהימה, אבל יותר “כן מ”לא” - ובסה”כ זה ממש נחמד.
    • (רן) האייטם הבא שלי, בתחום של Machine Learning - זה איזשהו דף שמסביר איך עובד Random Forest - 
      • אז Random Forest זה אחד האלגוריתמים הנקרא-לזה-יחסית-קלאסיים  . . . זאת אומרת - זו לא רשת נוירונים אלה זה בעצם אוסף של עצי-החלטה.
      • והדף הזה למעשה בה ומסביר בצורה ויזואלית מאוד יפה - עם Scrolling ככה, “כמיטב המסורת”, Scroll-ים חמודים - איך נבנה Random Forest, ככה, בהדרגתיות.
      • וזה מגניב למי שבא ורוצה להבין את האלגוריתם הזה בצורה ויזואלית - אז יש פה הרבה דברים אינטראקטיביים
        • לא רק ה-Scroll-ים - יש פה גם דברים שאפשר ללחוץ עליהם והוא מסווג אותם
      • בקיצור - חמוד . . . סימולציה נחמדה של Random Forest, כתוב יפה, נראה יפה ויזואלית - מגניב לאללה.
      • (אלון) איך אני מת על כאלה דברים, שמסבירים לך אלגוריתם ב-View . . . איפה הדברים האלה היו כשלמדנו לתואר? . . . .
      • (רן) כן . . . חמוד לאללה. אני זוכר שאפילו הצגנו פה, בטח באחד הפרקים של הסדרה, כל מיני סימולציות של אלגוריתמי-מיון וחיפוש . . . 
        • [ב-2014?! . . . 219 Bumpers 14, אבל הלינק המקורי כבר מת, נשאר רק זה - AlgoRythmics]
        • אני זוכר שראיתי לא מעט דפים כאלה, אז זה ספציפית מדבר על Random Forest - ובנוי מאוד מושקע ויפה.
    • והאייטם הבא שרציתי לדבר עליו זו ספרייה, או למעשה כלי, שנקרא Gradio - זה בעצם UI ל-Demo של Machine Learning
      • זאת אומרת שאם בניתם איזשהו מודל - נגיד, מסווג של תמונות חתולים - ואתם עכשיו רוצים לתת לאנשים ככה בתוך החברה או ככה לתת לחברים להתנסות
        • להעלות תמונות ולתת למסווג להגיד האם זה חתול או לא חתול, או כל סיווג אחר, לצורך העניין
      • אז למעשה, Gradio נותן לכם איזושהי פלטפורמה די פשוטה, שבא אתם יכולים לייצר את ה-UI הזה.
      • זה לא משהו שמתאים ללקוחות-קצה, בדרך כלל - זה לא סופר-סופר-יפה . . . .
        • זה נראה בסדר, אבל אין לזה בדרך כלל איזשהו “touch “מוצרי” מאוד ספציפי
      • אבל בתור איזשהו כלי-פנימי זה מאוד נחמד - אתם בעצם יכולים לייצר מודלים, לחשוף אותם החוצה . . . 
        • הכל כתוב ב-Python - זאת אומרת, הוא מייצר איזשהו Backend ובסופו של דבר הוא מריץ JavaScript בדפדפן, אבל אתם לא צריכים לדאוג לזה.
        • אתם בסך הכל משתמשים בכמה בלוקים - נגיד בלוק של Input, בלוק של Demo, בלוק של Output - והוא בסופו של דבר יודע לחבר את הבלוקים האלה ולייצר Demo חמוד.
      • אז זהו - נחמד למי שרוצה לעשות איזשהו Demo של מודל שהוא בנה.
      • בנוסף . . . . לא אמרתי שבעצם Gradio זו חברה שנקנתה ע”י Hugging Face - אחת החברות הגדולות בתחום של Machine Leaning, בעיקר בתחום של NLP
        • למעשה, נכון להיום - אולי בזמן שהפרק הזה יתפרסם - יש מה שנרא מסיבת בלוקים!
        • מה זו “מסיבת בלוקים”? זה בעצם איזשהו אירוע שבו מייצרים בלוקים (Blocks) ל-Gradio
      • אז Gradio מיוצר מבלוקים שונים - אמרתי שיש בלוקים של Input, בלוקים Output, בלוקים של מודלים
      • בעצם, אתם בתור מפתחים יכולים לחבר את הבלוקים האלה, ואז אפשר לחשוב על זה כמו על בלוקים של לגו  - סליחה על האלגוריה הטריוייאלית . . . [חכה שתדרוך על אחד]
      • וזהו - יש “מסיבת בלוקים” שבה אתם יכולים לפתח ולהצטרף -
        • זה משהו שקורה Online - בצורה א-סינכרונית, לא צריך ממש להתחבר לשם . . . 
      • אז אם אתם רוצים להצטרף למסיבה - שמתי גם את הלינק הזה.
      • ובכל מקרה, בלי שום קשר - אתם יכולים להשתמש ב-Gradio כדי להחצין את המודלים שלכם.
      • (אלון) אני חייב לציין משהו על ה-Gradio הזה . . . אני שנייה אשלח לכם, כי אני רוצה את דעתכם, שהקהל פה ידע, אז שנייה [חכו רגע עם הקריאה של השורה הבאה לייצר את האפקט . . . ]
        • בקיצור  - עשיתי פה ציור, כדי לבדוק מה הוא מזהה, והוא החליט שזה ספר . . . 
        • עכשיו, אני רוצה לשמוע את דעתכם - עד כמה הוא קרוב למילה “ספר” . . . .
        • (דותן) ציירת כלב עם שפם, או . . . לא יודע, מה זה? . . .
        • (אלון) התחלתי מפרצוף, והוא עשה פרצוף ואז Smiling face אז עשיתי אותו עצוב . . .  ואז רציתי לראות האם הוא מזהה שפם אז אמרתי “נהפוך אותו לכלב” - והוא החליט שזה ספר . . .
      • (רן) כן . . . חשוב אולי להגיד את ה-Disclaimer ש-Gradio זה לא המנוע Machine Learning עצמו - הוא בסך הכל משתמש באיזשהו מודל ונותן לך אפשרות להחצין את המודל הזה, לשחק איתו . . . 
        • אם המודל גרוע אז הוא גרוע - זה לא אשמתו של Gradio, לצורך העניין . . . . זו אשמת מי שבנה את המודל.
      • אבל אני כן אגיד שראיתי לא מעט ממשקים כאלה לדוגמא - בחלק מהממשקים זה עבד מגניב ובחלק מהמקרים ממש לא
        • אבל שוב - זה עניין של הכוח של המודל עצמו - Gradio זו בסך הכל איזושהי ספריית UI שעוזרת לך להחצין את המודל ולתת לאנשים לצייר או לכתוב משפטים או להשלים משפטים או דברים בסגנון הזה.
      • (אלון) כן, האמת שזה מגניב . . . יש פה עוד דוגמאות חוץ מהציור הכשרוני שלי שהמודל דפוק, האמת שזה די מגניב . . .
      • (רן) זה נחמד כשאתה  . . .
      • (דותן) זה מעניין ב-Context של ילדים גם - זה די מפשט דברים, לאקספרימנטציה . . .
      • (רן) ה-Use case שהם בנו זה שיש Researcher שמייצר איזשהו מודל, ועכשיו הוא רוצה לתת את זה, נגיד, למשתמשים פנימיים כדי לבדוק אותו - והם יכולים לתת לו פידבק.
        • אז לפני כן זה היה קצת מסובך - זאת אומרת: “שילחו לי תמונות” או “תנו לי טקסטים ואני אריץ במודל ואגיד לכם מה ה-Output” . . . .
        • וככה עכשיו כל אחד יכול לשחק עם זה אינטראקטיבית, דרך האפליקציית Web, וזה נחמד.
      • וכן - נראה לי שגם לילדים זה חמוד . . . .יש ספרייה די גדולה, אם תסתכלו על ה-Quickstart או על ה-Guides, אז יש שם לא מעט דוגמאות של דברים שכבר עובדים ואתם יכולים לשחק איתם.
      • (דותן) אני מנסה את ה-DALL·E mini - זה יעבוד? [כן! . . .]
      • (אלון) וואי! זה מקביל ל-DALL·E הזה? . . . . 
      • (דותן) בוא נראה כמה זה טוב - זה לוקח מלא זמן בינתיים . . . אה, אוקיי . . . 
      • (אלון) טוב, אתה עושה ספויילר . . . יש לך את DALL·E, אני מקווה, באייטמים . . . .אם לא אז אתה עושה פה . . .
      • (דותן) אין לי . . . 
      • (אלון) טוב - אז מישהו צריך לשים [כי לא ראינו מספיק Raccoon Astronauts . . .]
      • (דותן) אני מנסה ואז אני אגיד לכם . . . . 
      • (רן) נגיד יש איזשהו Demo שמראה תמונות אולטראסאונד ויכול למצוא איזורים חשודים בתוך תמונות אולטראסאונד . . .
        • יש כל מיני כאלה של “לענות על שאלות”, “שאלות ותשובות” ודברים כאלה . . .
        • יש פה כמה דמואים נחמדים - וכמו בהרבה דמואים, זה עובד על הדוגמאות שהם נותנים ולא תמיד עובד על על דוגמאות אחרות שאתם מביאים מהבית . . . 
      • בכל מקרה, כמו שאמרתי - זו בסך הכל ספריית UI, זה לא המודל עצמו - על המודל אתם אחראיים . . . 
        • זה בסך הכל עוזר לכם לתת את המודל שלכם לבדיקה.
    • זהו, עד כאן להיום - אני סיימתי את החלק שלי . . . כמו שאמרתי - קיצצנו הרבה. אז אליך, דותן.
    • (דותן) טוב, מעניין - בינתיים ה-DALL·E mini הוא נחמד . . . עשיתי “Computer in the sea” ויצאו דברים נחמדים, אבל לא באיכות כמו של DALL·E האמיתי . . . טוב, אז נתחיל.

    דותן - 
    • האייטם הראשון זה נקרא jaq - זה בעצם jq clone
        • למי שלא מכיר את jq - זה כזה Query על JASON
      • והפוקוס שלו [של jaq], מעל ה-jq שכולם מכירים, זה “Correctness, Speed, and Simplicity”
        • ונראה לי שאת אף אחד מהם לא צריך . . .
      • אבל[!] - זה כתוב ב-Rust, שאת זה כן צריך . . .
        • רגע -  אלון . . . .
      • (רן) ה-jq הוא ב-JavaScript, אם אני זוכר נכון . . . .
        • (דותן) לא - הוא ב-C . . . הפתעה!
      • עכשיו, האמת ששום דבר מזה לא באמת צריך . . . . אולי, לא יודע, “Correctness”? . . . 
      • אבל הקטע המעניין הוא  . . . הוא גם נתן איזשהו בלוק ב-ReadMe, שהוא יצר את jaq כי הוא לא היה מרוצה מה-Startup time של jq - שזה 50ms . . . . זה לא היה מספיק טוב לו.
        • זו עוד סיבה לא לעשות . . . .
      • אבל הדבר המשוגע פה, שכן מצאתי כמעניין, או Intriguing, זה שזה 30 פעמים מהר יותר מ-jq . . . פי 30
        • והלכתי ל-Benchmark-ים והכל  - וזה משוגע.
      • קשה לי לחשוב . . . אלא אם כן הדבר הזה לא עושה כלום, קשה לי לחשוב על כלי שנכתב ב-C ואז כלי אחר שנכתב ב-Rust וה-Rust עושה לו out-perform של פי 30, זה דווקא ה-Highlight . . . משוגע.
      • (אלון) אני מניח שהבנאדם המשוגע הזה, אם מפריע לו ה-50ms של כלי שאתה משתמש בו לא-יודע-פעם-בכמה-זמן-למי-אכפת - כמה זמן הוא שרף מהחיים שלו? שנייה? על שימוש בכלי . . . 
      • (רן) תרשה לי לנחש שהוא כנראה לא משתמש בצורה אינטראקטיבית . . . הוא מריץ על איזשהו Batch וה-50ms האלה מצטברים . . . 
      • (אלון) כן, אני יודע. . . בסדר, אני צוחק - אבל אני מניח שההבדל הוא באלגוריתם . . .
      • (דותן) איזה Porting של איזה כלי משיג פי-30 Performance? זה לא . . . 
      • (אלון) אני מאמין שאפילו Python יביא לך את ה-Performance של פי- . . . אולי לא פי-30 - פי-1, אבל . . . 
      • (דותן) מול C . . . 
      • (אלון) כן - אבל אני מניח שזה יותר האלגוריתם מאשר השפה.
      • (רן) כן - האם לעשות לזה  . . . האם לטפל בכל מיני מקרי-קצה ודברים כאלה
        • זאת אומרת - JSON זה משהו שיש לו כבר לא מעט Legacy ויכול להיות שה-Parser ה-Rust-י לוקח כנראה  . . .
      • (דותן) זה בהחלט יכול להיות . . תעלומה.
        • האמת - זה פשוט נחת אצלי בתיבה של הדברים המעניינים ויש לי איזושהי תוכנית להבין למה, מתישהו . . . 
        • אז זה הנחמד ומה שנקרא “אתגר למאזינים” . . . 
      • (אלון) הימור שלי - אני מוכן להמר על חמישה שקלים, או עשרה שקלים - מה ההימור הקבוע שלנו? שכחתי . . . . - 
        • (רן) תהמר על חמישים . . . .
        • (דותן) כוסות שתייה . . . .
        • (אלון) כוסות שתייה, אין בעיה . . . . פרקים בפודקאסט! אני מוכר ב-NFT . . .  אני מחלק את הפרק הזה ב-NFT לראשון שמוצא את הפתרון [ההשתתפות אסורה על זהר ובני משפחותיהם]
          • אני אומר שאם מישהו משועמם מספיק יקח את הקוד ב-Rust, יבין מה הוא עשה ויכתוב אותו בחזרה ב-C - יהיה in-par ב-Performance . . . . זו דעתי פה.
        • (רן) עיזרו נא ילדים לדותן למצוא . . . 
        • (דותן) תפתח לו Issue ב-Repo ותבקש להמיר בחזרה ל-C ולראות אם זה אותו הדבר . . . 
    • טוב - האייטם הבא, והאמת שהוא טיפה יותר לימודי ומוחשי מזה: יש בחור שאני מכיר אותו יותר לפי ה-Twitter-name שלו מאשר כל דבר אחר, והשם שלו הוא Christoph Nakazawa - נדמה לי שזה cpojer@ או משהו כזה ב-Twitter
      • אני כבר לא כל כך זוכר מאיפה אני מכיר אותו . . . אולי מהצוות של React Native . . . . - והוא כתב שני מאמרים מאוד מאוד מעניינים לדעתי
      • אחד מהם זה על איך לבנות JavaScript Testing Framework, בכלל . . . 
        • איך בונים, מאיפה מתחילים . . . 
        • מן הסתם זה Walk-through כזה, שמביא אותך עד לקונספט של איך לבנות Testing Framework באופן כללי.
      • והשני זה איך לבנות JavaScript Bundler - שזה גם מעניין . . . 
        • יש הרבה מאוד Bundler-ים ב-JavaScript היום - webpack ו-Vite ואחרים - ואפשר לתהות מה שונה האחד מהאחר . . . 
        • ואז כדי לענות על זה - צריך להבין איך בונים את זה
        • וזה מה שהוא עושה במאמר השני - מאוד מעניין, וקצת נותן מבט לעולם הזה של ה-JavaScript Bundlers השונים.
    • האייטם הבא זה אייטם שקצת פוצץ לי את הראש . . . יש אפליקציה שנקראית - אפליקציה או לא יודע כבר איך לקרוא לזה, אבל נגיד אפלקיציה - שחיה על ה-Browser, כמו Figma וכמו הרבה אחרים “שנולדו לתוך Browser” או באו מתוך Browser - זה נקרא spline וזה פשוט 3D-Dsign ב-Browser
      • וזה מטורף - זה שזה עכשיו קורא ב-Browser ולא ב-3D Studio או בכל תוכנה אחרת - זה כבר ניהיה “של פעם” . . . 
      • זה שעיצבו את ה-3D זה אומר שאפשר לעשות כל מיני קולבורציות (Collaborations) . . .
        • אפשר לעשות כמו Embed ל-3D Stuff שלך
        • דברים משוגעים . . . 
      • הדבר הזה די תפס את הקהילה של ה-3D בסערה - הרבה כמו מה ש-Figma עשתה ל-Design ול-Photoshop, אפילו ל-Sketch - גם אז זה היה נחשב לפריצת דרך.
      • כשנכנסים לאתר שלהם אז כבר באתר עצמו, בגלל שהכל פה ב-Browser, אז זה מדהים . . . 
      • (אלון) איך זה עובד ככה? מה זה - WebAssembly? כאילו, עם WebGL? איך הם הגיעו לרמה הזאת? . . . 
      • (דותן) זה  . . . האמת שנורא חפרתי ולא הצלחתי לגלות כלום . . . 
        • חיפשתי איזשהו Blog-Engineering, חיפשתי איזשהו GitHub, אולי איזושהי מודעת דרושים, להבין במה הם משתמשים . . . ולא הצלחתי
        • השקעתי בזה איזו רבע-שעה-עשרים-דקות בחיפוש
      • אבל זה מדהים - מהדרך שבה זה רץ עד ה-Widget-ים בתוך ה-Browser, שאתה יכול לערוך ולשלוט ו . . . וואו . . . כאילו, זה מטורף.
      • (אלון) גם הדוגמאות שלהם  . . . כן, זה ממש מדהים איך שזה עובד כל כך מהר, זה . . . ממש מדהים
        • המחשב שלי עם ה-200 GPUs שלו סוחב את זה בקלות, אבל זה עדיין מדהים . . . 
      • (דותן) תראה - Figma זה מקרה מאוד משוגע  . . . אם תחשוב על זה אז Sketch עשה Disrupt ל- Photoshop - וכולם חשבו ש-Sketch זה ה-Endgame
        • ואז בא ה-Figma ובעצם לקח את כל העולם של העיצוב ומימש את הכל ב-Browser, ב-Component שחי על Wasm וכתוב ב-Rust
        • אני מניח שאולי ה-spline Design הזה גם בנוי באותה צורה
      • והקולבורציה, לפחות ב-Figma, היא באמת משוגעת - למשל, המנוע-קולבורציה (Collaboration Engine) נשאב ממנועים של Multi-Player, במשחקים . . . 
        • ואז, כשאתה מעצב עם עוד מישהו בתוך האפליקציה, אז אתה בעצם רואה אותם זזים כמו שחקנים - הכל ב-real-time והכל . . . מדהים.
      • (אלון) זה כבר הסטנדארט - לראות את העכבר של כולם, לראות מי קם שנייה . . .
      • (דותן) בקיצור - מדהים. לא שאני מעצב ב-3D . . .  לפני 20 שנה עשיתי 3D Studio וכאלה, אבל וואו . . . מטורף.
    • עוד כלי קטן שמצאתי, שככה “מגרד לי כאב מאוד ספציפי” - זה כלי שנקרא pup - 
      • והוא בעצם  . . . אם מישהו מכיר, אני כותב בלוג-פוסטים ב-Markdown בדרך כלל ואחרי זה מה-Markdown מעלה את זה ל-Medium או לכל מיני מקומות אחרים.
        • והקטע המעצבן הוא שכשאתה רוצה לשים Images של תרשימים וכאלה, אז הלינקים נשברים - כי הם מפנים לתוך ה-Repositories שיש לך
        • אז בדרך כלל אני מחליף אותם באיזשהו Image-sharing Service כלשהו וזה קצת תהליך ידני
        • ועשיתי את זה, בעצם בלי לחשוב אפילו על להחליף את התהליך הזה, פשוט עשיתי את זה שוב ושוב ידנית  בלי כל כך לשים לב לזה שאני מבזבז המון זמן.
      • אז זה כלי מאוד נחמד שעושה Parsing ל-Markdown, מחלץ החוצה את כל ה-Images, מעלה אותם ל-Service Images, בתשלום או חינמי - “ותופר” את זה בחזרה לתוך ה-Markdown.
      • מאוד מאוד נחמד, התחלתי להשתמש בו באופן תדיר ורגיל
      • (אלון) מגניב, כתוב ב-Rust . . . 
      • (דותן) כן, כתוב ב-Rust . . . האמת שאתה תראה שזה טרנד . . . . 
        • בכלל, באופן כללי - יש מלא כלים משוגעים שכתובים ב-Rust 
        • ואני חווה, לפחות בחודשים האחרונים, איזשהו “פרץ של כלים” שפשוט נכתבים ב-Rust . . . 
      • (רן) אתה יודע, קוראים לזה “הטיית האישוש” . . . . אבל זה בסדר.
      • (דותן) יכול להיות . . . .
        • (רן) . . . והבת שלי הולכת ממש לעוף על ה-Studio הזה . . . ממש חמוד ה-3D Studio, מגניב . . . .
      • (דותן) . . . יכול להיות, אבל אני חייב להגיד לך שאני די “במדידת דופק” על הרבה איזורים וגם אם אני נגיד משווה את זה ל-Node ו-Ruby וככה - איך שהתפתחה הקהילה - ואני די מרגיש שעכשיו זה ה . . . יש כיוון כזה, כשאתה פורץ איזשהו קו ואז טכנולוגיה שהייתה Buzz הופכת להיות ממש “גועשת”
        • ונראה לי שזו די הנקודה עכשיו, אני מרגיש שדברים תמיד בסביבה, שקורים.
    • אז עוד כלי נחמד שנקרא kondo - מלשון Marie Kondo, אותה אחת שפיתחה אני מניח “דרך חיים של סדר וניקיון” . . .
      • לא שאני שותף לזה . . . הייתי רוצה . . . 
        • (רן) שותף פאסיבי . . .
      • (דותן) כן . . . אז מישהו כתב כלי שבעצם עושה “סדר וניקיון” בקבצים
        • צריך לשים פה איזה 800 Disclaimer-ים, כי הכלי הזה בעצם מוחק דברים . . . .
        • הוא מוצא כל מיני קבצים מיותרים - Artifact-ים כאלה שזרוקים, כל מיני Shit כזה ש-Build system זרקו איפשהו - ומנקה את הדברים האלה.
      • זה גם כלי שכיום לא ממש צריך . . .  כי למה לבזבז? יש לך המון מקום, למה לבזבז זמן ולהסתכן בלמחוק קבצים שאולי אתה צריך? . . .
        • אבל אני חייב להגיד שלפעמים יש מערכות בהן באמת מייצרים “הרים של דאטה” כחלק מה-Build שלהם
        • או לחליפין - הדברים האלה יכולים להכיל מידע סודי / פרטי / אישי שלא רוצים שבטעות יידחפו לתוך איזה Repo או משהו כזה, אז שווה כן לנקות.
      • זהו - כלי נחמד, שתומך ספציפית בטכנולוגיה
        • נגיד Haskell הוא מכיר, Node הוא מכיר וכל כלי פיתוח שיש - לומדים אותו, הבחור הזה לומד את הכלי ומייצר לו כמה יוריסטיקות של מחיקה של Cache Data.
    • אני ארוץ נראה לי טיפה יותר מהר . . . אז הספרייה הבאה היא Zag, שזה State-Machine Framework
      • בזמן האחרון יש איזשהו “רנסנס של State Machines” ויוצאים המון State Machines Contents
      • וזה אחד שפותח ע”י הצוות שפיתח את Chakra UI, שהיום אפשר כבר להגיד שזה אחד ה-Framework-ים ל-UI המובילים שיש ב-React.
        • אז הם הוציאו גם את זה.
      • סטנדרט האיכות שלהם הוא מאוד גבוה וזה מאוד Complete - כמו הרבה מאוד דברים שהם עושים
        • אז אני מאוד ממליץ, למי ששוקל לאמץ State Machine ל-Client Side.
      • (רן) ב-”State Machine” אתה מתכוון לדברים בסגנון של Redux, מלפני כמה שנים?
        • (דותן) לא, לא State Management - פשוט State Machine, כמו שאנחנו מכירים, “בחיים” . . .
      • (רן) אוקיי . . . ומתי תשתמש בו? למה זה כל כך . . .
        • (דותן) ל-UI יש State, ולפעמים אתה פותר את ה-State הזה בקוד, 
        • כאילו - “If המשתנה שלי בבטן הוא 8 אז . . . .” וכו’ וכו’ . . .
        • (רן) הבנתי . . .
        • (דותן) ועוד פעם - זה קצת מצחיק, כי זה מדעי המחשב ל . . . 
      • (רן) וזה עוזר לך למדל את זה בצורה יותר פורמאלית . . . 
        • (דותן) כן . . . זה מדעי המחשב, לא יודע אם סמסטר א’ או ב’ . . . 
      • (אלון) זה אוטומטים לכל דבר . . . . [ד”ש לגדי]
        • יצא לי, האמת, בכמה פעמים שהייתי צריך אוטומט, בדרך כלל יש איזושהי ספרייה . . .
        • ב-Ruby היו ספריות חמודות ל-State Machine , ב-Frontend אני לא מכיר . . . אבל נשמע אחלה.
      • (דותן) אז עולם ה-Frontend גילה שזה אחלה Pattern להשתמש בו - ואפשר.
        • ועכשיו, כאילו . . . 
      • (רן) נגיד - Flow של Onboarding של משתמש חדש, אז כנראה יהיה לך שם ספריית מצבים . . .
        • (אלון) . . . ואז אם מישהו חוזר - אז לאן הוא חוזר ומה הוא יכול לעשות וכל זה . . . כאילו, כן . . . אוטומט.
      • (דותן) אז ה-Highlight הוא, שוב פעם - שזה התגלה
        • ואנחנו מקבלים בזמן באחרון ספריות State-Machine-Dedicated, כאילו - Literally State Machine, אתה בא, מעצב את הצעדים שלך וזה בא איתך - קדימה, אחורה ובכל מיני מקומות.
    • עוד אייטם מאוד נחמד - למי שמכיר ngrok, אז זה כמו Binary שאפשר להוריד בחינם, ויש את זה גם בכסף, ברישיון - 
      • הוא בעצם פותח לך Tunnel לעולם ואתה יכול לתת למישהו Unique URL כזה, שלך
        • והוא יכול לגשת ל-Service שרץ ממש על המחשב שלך
        • כמובן שה-Tunnel הזה חוצה כל, נקרא לזה “מכשולים של Network”, אפשריים . . . 
        • וזה העניין - אתה פשוט רוצה לתת למישהו URL לגשת ל-Service המקומי שלך.
      • אז bore זה בעצם אותו הדבר - לגמרי Open Source
      • כלומר - מי שרוצה ומעוניין יכול לקחת את זה במקום את ngrok ופשוט להנות מכלי שהוא חינמי לגמרי.
        • וכמובן אתה יכול גם לקרוא את הקוד שלו ולהבין שהוא לא גונב לך דברים . . .
        • לא שאני אומר ש-ngrok עושה את זה, אבל כל אחד והפחדים שלו . . . .
      • סופר-סופר נחמד לדעתי.
    • הכלי הבא, או הספרייה הבאה - זה נקרא Jest Preview
      • חזרה ל-Frontend . . . .
      • בעצם, זה נותן לך להריץ טסטים ב-Jest, למי שעובד עם Jest
      • הוא פותח אוטומטית Server מקומי שמגיש את כל מה שהטסט עושה פשוט ל-HTML, ל-App
        • אתה יכול לפתוח Browser ולראות מה הטסט עושה, ב-Real time
        • זה בהנחה שהטסט בודק UI
      • אני משתמש בזה וזה חוסך המון זמן, כי  תמיד אתה מנסה לנחש איך נראה ה-UI שהטסט כרגע מייצר ובודק . . .
        • אתה מנחש את זה או בטלפתיה או בכל מיני דרכים לא יעילות ומוזרות . . . 
      • (אלון) יש את ה-USB של הטלפתיה, במחשב . . . אם יש לך אז אתה מחבר וזה עובד . . .
      • (דותן) אה, זה גם . . . 
      • (רן) זה לא Port סריאלי (Serial)? זה Port סריאלי . . . 
      • (דותן) כן - אבל צריך דרייברים . . . .
      • (רן) עפנו על עצמנו . . . .
    • (דותן) עוד כלי - זה נקרא WTF, לא נגיד את הראשי-תיבות כי אנחנו בעצם תחת Age Restriction בפודקאסט . . . . [גם את הפינה הזו סגרנו בפרק עם זהר, לא?]
      • אז זה פשוט Dashobard למפתחים - יש כאלה, נגיד Glances שאני זוכר מ-Python
      • זה Dashobaord נחמד שמרכז לך המון דברים ,כתוב ב-Go, כלי . . . 
      • (אלון) אמרת “Go” בטעות - התכוונת ל-Rust . . .
      • (דותן) לא, האמת שזה כתוב ב-Go במקרה . . . “בטעות”, הייתי אומר, אבל בסדר . . . 
    • ובמעבר חד ל-Database-ים - יש פה מאמר שקראתי, ולדעתי הוא מרתק - כי הוא נותן לך המון פשטות בזה - על איך בונים . . .
      • לא יודע אם זה “איך בונים”, אבל זה על מה הקווים לבנייה של Postgres Database שהוא Distributed
        • כמו הרבה Database-ים, נקרא לזה “דור חדש++” - CockroachDB וכל מיני כאלה
        • הם משתמשים בפרוטוקול של PostgreS, אבל בסוף כמובן שזה לא PostgreS
      • אז יש פשוט “יד ביד”, בשפה שאני יכול להעיד שהיא די פשוטה לכל אחד שמכיר קצת Database-ים
      • והוא מלמד איך הדבר הזה נבנה - מרתק, ומייצר נקרא-לזה-Inspirition 
        • אז אפשר, למי שרוצה לעשות איזשהו פרויקט אקדמי או פרויקט-תחביב - לדעתי לגמרי אפשר להתחיל מזה ולבנות איזשהו “צעצוע של Database” כזה . . . 
      • (אלון) עד כמה זה קרוב למציאות וכמה זה הנחות מאוד נאיביות - יש לך מושג? . . . 
      • (דותן) תשמע, זה קרוב-עד-כדי ה . . . אני חושב, בגלל שאני זוכר את התקופה הזאת, שזה קרוב עד כדי ההתחלה עם Raft . . .
        • למי שזוכר את Raft - אז כשהוא יצא, יצאו כל מיני “התאמות” לכל מיני מערכות
          • אני לא זוכר אם ZooKeeper היה גם בסיבוב הזה . . . 
        • אבל יצאו כל מיני מערכות שעלו כ-Cluster - וזה היה גרוע, בכל מיני צורות
        • ואז אני חושב שגם בפודקאסט דיברנו על Jepsen והבדיקות האלה של מלא מערכות שהן Distributed שנכשלו . . . 
          • [2013 נראית פתאום כל כך רחוק . . . מעניין גם כפרספקטיבה - 187 Final Class 31 - ThoughtWorks Radar 2013]
          • תקופה כזאת . . . מה שנקרא “חבלי לידה” של הטרנד הזה
          • ואני חושב שהמאמר הזה הוא די מקביל לאז . . . 
      • כלומר - אם היום אתה תחפש איך בונים דברים עם Raft, שזה פרוטוקול, נקרא לזה קונסולידציה (Consolidation) של Distributed Systems, אז כנראה שאתה תקבל מאמרים דומים
        • רק שזה טייק על “בוא נדבר רגע על PostgreS, בוא נראה . . . .”
      • מה שאהבתי פה זה שהוא גם נותן לך תחושה - וזה גם קצת מציאותי - שה-Wire Protocol של PostgreS הוא מאוד עוצמתי.
      • אז אם אתה רוצה לכתוב Database חדש, אז למה לא להשתמש בזה כאיזשהו Façade מעל ה-Database שלך?
        • אין שום סיבה שלא, וזה גם חלק ממה שהוא אומר - זה גם מעניין
      • (אלון) מעניין . . .
      • (דותן) נגיד, אם Mongo מממשים איזשהו Interface של PostgreS DB - אז זה יכול להיות גם מעניין.
        • אני רק שם את זה פה . . . 
        • ואז אפשר להחליף את המנוע ב-PostgreS, אבל . . .  בסדר.
      • (אלון) בקיצור - לקחת PostgreS, וכשיש לכם בעיות אז כנראה שניצחתם . . . .לא, סתם.
    • (דותן) האייטם הבא - נכון, זה גם Rust, אבל האמת שדרכו גילית משהו שהופתעתי איך לא ראיתי - יכול להיות שאתם מכירים את זה כבר: יש ספר שיצא, מסתבר, יחסית לא מזמן אבל לפני כמה שנים, שנקרא Code the Classics - יצא לכם לראות את הדבר הזה?
      • (אלון, רן) לא . . . .
      • (דותן) זה ספר נייר - ויש אותו גם בגרסא דיגיטלית בחינם - אבל אני חושב שה-Highlight בו הוא שזה ספר שאתה קונה והוא פיזי . . . .
        • אז קודם כל הוא עוסק במשחקים קלאסיים
        • והדבר המדהים בו זה שהוא יפה - זה כמו מגזין כזה, חתיכת אומנות
        • אז בעצם צילמו משחקים קלאסיים שם וחתכו כל מיני חתיכות של אומנות מתוך המשחקים ופרשו את זה בצורה מאוד יפה
        • זה מדהים לכל אחד - ואני חושב שזה מדהים למי ששיחק במשחקים, מי שמספיק זקן כדי להיות כזה ששיחק בהם.
      • זה המוצר שאתה קונה - אבל בעצם התוכן הוא איך לתכנת את זה, את כל המשחקים האלה . . . 
        • וזה מלווה בסיפור מאוד מאוד ויזואלי.
      • הספר מלמד איך לתכנת את זה ב-Python, שזה נראה סביר כי זו שפה מאוד Accessible לכולם.
      • זה Volume 1 - הבנתי שאמור היה להיות Volume 2 כי חיפשתי ולא מצאתי, אבל יכול להיות שבסוף לא היה . . .
        • אני אנחש שזה פשוט מאמץ מטורף לכתוב דבר כזה או לבנות ספר כזה.
        • [תזמון מעניין . . .  The second volume #demoscene the AGA years is now in stock]
      • ואז בעצם בא מישהו ובנה את  . . . עשה Porting למשחקים האלה ב-[אלון מרגיש הפרעה בכח]-Rust  . . .
        • עם בערך שלושה או ארבעה Game Engines שונים ב-Rust - כאן: rust-game-ports
      • אז זה מעניין - כי אתה יכול פשוט לכתוב את זה בשפה אחרת וגם לראות איך מנועים שונים מתפקדים בצורה אחרת 
      • ובכלל - Rust כ-Gaming Language זה דבר מעולה, בכלל - לנסות להתפקס על זה ולכתוב משחקים ב-Rust
      • אז זה ממש נחמד . . . אני הורדתי את ה-PDF של הספר הדיגיטלי בחינם - אפשר לקרוא, מדהים.
      • זהו . . . פיספסתי פשוט את הדבר הזה. תופעה מדהימה.
    • האייטם הבא זה React Hook שאומר לך מה קורה עם הקומפוננטות (Components) שלך . . .
      • ככה, “Hook כזה קטנצ’יק” . . . ואתה יכול לדבג עם זה קומפוננטות (Debug components)
      • פעם היה why-did-you-render כדי להבין שיש “קומפוננטות מגעילות” כאלה שמרנדרות (Render) סתם כי  . . לא יודע, הן מקבלות דאטה שהוא חדש “סתם”, זאת אומרת שונה ברפרנס אבל לא שונה במהות של הדאטה.
      • וזה אחלה Hook שאורז בתוכו כמה וכמה כלים - פלוס כמה דברים שאני לא חושב שהיו בספריות אי פעם
      • ממש - אין שום סיבה שלא להשתמש בו, ממש מגניב
        • ממליץ מאוד לכל מי שעובד עם צוותי Frontend או בכלל עושה Frontend.
      • מעבר חד - . . . 
      • (אלון) יש לו Mode “לכבות אותו”? . . .  כי הכי הגיוני לפזר אותו בכל הקוד וכאילו “Tick” . . . מקסימום תדרוס אותו, זה Java, למי אכפת . . . .
    • (דותן) האייטם הבא זה אייטם קצת מטורף, כאילו . . . זה אתר שנקרא copy.sh, שמאחוריו יש GitHub Project שמאחורי הטכנולוגיה
      • וזה בעצם סוג של Porter אוטומטי מ-x86 Machine ל-Wasm
      • מה זה אומר? זה אומר שיש פה אתר שבו אתה יכול בעצם ללחוץ על אחת ממערכות ההפעלה, מ-Linux עד Windows 95/98 וכו’
        • ופשוט אתה מקבל את מערכת ההפעלה בתוך ה-Browser, בחתיכת </a> שמחורי הקלעים . . . .</li></ul><li>(רן) אני מנסה את . . . אני ב-<a href="https://copy.sh/v86/?profile=windows31">Windows 3.1</a>  . . . </li><li>(אלון) אני ב-<a href="https://copy.sh/v86/?profile=windows2000">Windows 2000</a> חברים - ואני מנסה לשחק שולה!</li><ul><li>[בום!]</li></ul></ul></ul><ul><ul><li>(אלון) רן - בוא נראה . . . CMD עובד? אני עושה Run-cmd . . . די! </li><ul><li>[צרחות]</li></ul><li>(דותן) זה משוגע . . . כנסו ל-<a href="https://github.com/copy/v86">GitHub Repo</a> ונסו ככה להרגיש את השטח - </li><li>(אלון) . . . “A Duplicate name exists on the network” . . . . מישהו נראה לי התחבר לי למכונה או משהו, יש לי Error  . . . </li><li>(דותן) בקיצור - זה משוגע, אני אפילו . . . “המוח מתפוצץ” מה שנקרא.</li><li>(רן) זה חמוד מאוד . . . רק יש פה איזשהו Bug - העכבר לא במקום שהוא אמור להיות, כאילו . . . .</li><li>(דותן) נכון, כן . . . יש כן . . . תשמע, זה רק אומר שזה ממש אמיתי . . . .</li><li>(רן) כן . . . </li><ul><li>(אלון) שמע, אם אני עושה Format למכונה - מה קורה?</li><li>(דותן) לא, אל תעשה אתז ה, די נו . . . אל תהרוס.</li><li>(אלון) אבל מה קורה?</li><li>(דותן) באים אנשים אחריך, תשאיר את זה נקי . . . .</li><li>(אלון) לא - זה משותף או שמראים לך את זה בכל פעם? ואם אני מפרמט? . . . .</li><li>(דותן) לא יודע . . . . כמו שאני מכיר אותך, נראה לי  שזהו - זה היה האייטם . . . </li><li>(אלון) היה האייטם - ואי אפשר כבר להיכנס אליו יותר . . . .</li><li>(דותן) טוב, זה היה נחמד . . . </li><li>(אלון) כן ,הנה - אני אשאיר פה Comment ואז אני אדע - אני אחזור ואבדוק אם הוא קיים</li><li>ואז אני אדע אם אני יכול לעשות  ניסויים יותר מורכבים . . . .</li></ul></ul></ul><ul><li>(דותן) טוב . . . אייטם הבא, נמשיך לרוץ - יש פרויקט שנקרא <a href="https://github.com/ruffle-rs/ruffle">ruffle</a> - וזה Flash Player emulator</li><ul><li>כאילו שלא היה לנו מספיק <a href="https://en.wikipedia.org/wiki/Adobe_Flash">Flash </a>בחיים  . . . </li><li>זה כתוב גם ב-<a href="https://www.rust-lang.org/">Rust</a>, עובד</li><ul><li>ראיתי שיש אנימציות עובדות, אינטראקטיביות עובדת</li><li>לא יודע אם בחיים צריך שוב פעם <a href="https://en.wikipedia.org/wiki/Adobe_Flash">Flash</a>  . . . אני מניח שיש כאלה  שצריכים Legacy staff . . . .</li></ul><li>זה גם סופר-נחמד, גם <a href="http://">Wasm</a> פה בסיפור</li><li>ואם לא אמרתי קודם, אז גם <a href="https://copy.sh/v86/">הדבר המשוגע הזה של ה-Virtual Machine</a> כתוב ב-<a href="https://www.rust-lang.org/">Rust</a></li></ul><li>האייטם הבא נקרא <a href="https://github.com/ansh/bionic-reading">bion</a><a href="https://github.com/ansh/bionic-reading">ic</a><a href="https://github.com/ansh/bionic-reading"> </a><a href="https://github.com/ansh/bionic-reading">read</a><a href="https://github.com/ansh/bionic-reading">ing</a></li><ul><li>למי שראה, יש בשבועות האחרונים איזשהו טרנד של <a href="https://github.com/ansh/bionic-reading">bion</a><a href="https://github.com/ansh/bionic-reading">ic</a><a href="https://github.com/ansh/bionic-reading"> </a><a href="https://github.com/ansh/bionic-reading">read</a><a href="https://github.com/ansh/bionic-reading">ing</a> . . .</li><li>(אלון) כן - <a href="https://twitter.com/danjas/status/1527570811296661506">זה התפוצץ ב-Twitter באיזו התלהבות</a> ש . . . .הוציאו את זה.</li><li>(דותן) אז יש לך טקסט - והמוח האנושי מסוגל להשלים מילים “אוטומטית”, אז למה לא לתת לו לעשות את העבודה שהוא יודע לעשות?</li><li>“אז בואו ניקח חלקי מילים, “נאיר” . . . . “ - קראתי את האלגוריתם של הפרויקט פה -  . . .  “נאיר בסביבות חצי מהמילה בצבע מודגש וחצי בצבע פחות מודגש”</li><ul><li>וככה, בעצם, המוח שלך יודע להתפקס על ההתחלה של המילים ולהזניח את יתר המילה</li><ul><li>כי יתר המילה פחות מודגשת . . . </li></ul><li>וכמובן שכל הסיפור הזה מתבסס על זה שאתה מתרגל לזה ואז קורא חצאי-מילים, המוח שלך קורא חצאי-מילים - וזה רץ הרבה יותר מהר.</li></ul><li>אז יש פה מישהו שכנראה נחשף לטרנד הזה, ראה תמונה של זה - ומימש בערך בעשר שורות של <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript </a>ל-<a href="https://chrome.google.com/webstore/detail/bionic-reading/kdfkejelgkdjgfoolngegkhkiecmlflj">Extension ל-Chrome</a> - שפשוט עושה לך <a href="https://bionic-reading.com/about/">Bionic Reading</a> להכל.</li><li>אני חסיד של כל השיטות האלה - טכניקות Speed-Reading וכאלה</li><ul><li>ניסיתי את זה קצת - ואני חושב שזה טוב, בסה”כ</li><li>אם אתה מצליח להתרגל לזה זה טוב . . . </li><li>אני לא יודע מה זה יעשה לך בעתיד- כאילו, אם אתה מתרגל לזה, אז מה יקרה כשאתה קורא טקסט פשוט, לא בצורה הזאת, נראה לי קצת מפחיד . . . .</li><li>אבל די נחמד בסה”כ . . . .</li></ul><li>(אלון) אני חושב שהמימוש שלו מאוד נאיבי . . . אם תסתכל על <a href="https://bionic-reading.com/about/">האתר של ה-Bionic Reading</a>, אז קודם כל יש שם כל מיני Flavour-ים והטקסט שהמקורי מג’נרט (Generates)מרגיש “יותר שלם” . . . </li><ul><li>משהו בחצי הזה לא בדיוק שם . . . . שם הוא לוקח, אם נגיד יש את ה-”Reading” אז הוא יקח את ה-”R” או את ה-”Read”, אבל הוא לא יעשה לך חצי מילה, כאילו באמצע - “Rea” וכאלה . . .</li></ul><li>(דותן) כן, אני מסכים שיש פה איזה  . . . . החלק הכייפי הוא שאתה יכול פשוט לקרוא את זה </li><ul><li>ובגלל שזה <a href="https://github.com/ansh/bionic-reading#how-it-works">Extension ל-Chrome</a> אז אתה יכול פשוט לשנות את זה בעצמך . . . </li></ul><li>(אלון) כן, אני רק חושב שבמקורי מחובר לזה מילון ופה לא . . . זה אני חושב ההבדל, ואז הוא יודע  . . .</li><li>(דותן) אתה יכול להוסיף מילון בקלות, זה החדשות הטובות . . . </li><ul><li>נגיד, אוקיי, אז <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a> - בוא נפתח את <a href="https://github.com/ansh/bionic-reading/pulls">ה-Pull-Requests</a> . . . .</li><li>יש <a href="https://github.com/ansh/bionic-reading/pull/42">Improves word midpoint selection algorithm  . . . כבר יש לו Pull-Request</a></li><li>כן, הוא מציע כל מיני שיפורים  . . . זה החלק הנחמד פה - שזה כל כך פשוט, מה שהוא עשה, שעכשיו  . . . </li><li>נגיד - ההצעה שהצעת - זה לא מסובך להוסיף מילון אנגלית, אני מניח שיש מלא כאלה ב-<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a></li></ul><li>(אלון) לא, אני בטוח, רק מה שמוזר לי - למה זה לא Extension נורמאלי? למה הוא לא עשה לזה Publish? קטע . . . </li><li>(דותן) לא יודע . . . </li><li>(אלון) טוב - יש פה הזדמנות עסקית . . . </li><li>(דותן) יכול להיות, לא יודע . . .  יש את מה שנקרא <a href="https://www.jiffyreader.com/">Jiffy Reader</a> שזה גם נראה לי שלו, אולי זה זה . . . </li><ul><li>כאילו, אולי הוא התחיל ממשהו ואז . . . </li></ul><li>בכל מקרה - זה אחלה ומי שאוהב להתעסק  . . . בגלל שהפרויקט מאוד קטן אז נראה לי שמאוד קל לשחק עם זה  ולעשות דברים מעניינים.</li></ul><li>האייטם הבא נקרא <a href="https://github.com/rustdesk/rustdesk">RustDesk</a> - זה פשוט Team Viewer שהוא Open Source</li><ul><li>כתוב ב-<a href="https://www.rust-lang.org/">Rust</a></li><li>ונראה שהדבר הזה עובד ומתקתק ועובד טוב . . . .</li><li>תמיד מדהימה אותי הטכנולוגיה ל-Screen Sharing - כי זה כל כך הרבה דברים במקום אחד</li><ul><li>זה שליטה על כל ה-Input Devices ולרנדר (Render) ודרך רשת ו . . . זה משוגע</li></ul><li>אז למי שרוצה ומעוניין לבדוק איך זה עובד -<a href="http://"> יכול להיכנס לפרויקט, זה Open Source</a></li><ul><li>יש פה גם UI, גם Server - </li><li>וגם את החלק הנקרא-לזה-Frontend-י - כל ה-Widget-ים וכו’ - אז זה <a href="https://flutter.dev/">Flutter</a></li></ul></ul><li>זהו, אייטם אחרון -  יותר בסימן השוק ומה שקורה בחוץ: יש המון פרשנויות בועה-לא-בועה וכו’ וכל מיני דברים כאלה . . .</li><ul><li>[<a href="https://twitter.com/shaulmert/status/1532074319756394496">הם כן</a>]</li><li>אני לא מתייחס לזה - אבל אני מתייחס לאיזשהו וידאו שראיתי, של איזושהי קרן שנקראית <a href="https://www.craftventures.com/">Craft Ventures</a></li><li>והם מסבירים בעצם איך עובדים בזמן נקרא-לזה-נפילה-כלכלית . . . .  - <a href="https://www.youtube.com/watch?v=vBkzm4a7iY4">Operating during a downturn</a></li><li>זו קצת הגזמה . . .  מה שכתבתי פה זה שזה פשוט הכל - לפחות רוב החלק הראשון של הוידאו - הוא פשוט נתונים והיסטוריה ולא דעות</li><ul><li>אז למי שרוצה קצת Take על הדברים האלה, רוצה לראות איך העולם הפיננסי התנהג, היסטורית - אז יכול לראות את הוידאו הזה</li></ul><li>לי זה היה ממש אחלה ומרתק</li><li>(אלון) טוב . . . היית צריך להגיד לנו לפני, לראות אותו ולהגיד לנו שהולכות להיות נפילות . . . </li><li>(דותן) בדרך כלל עדיף לראות את ה-Video-ים האלו לפני הנפילה . . .  כמה שיותר - וככה אתה יודע איך להמר . . .</li><li>(רן) אם אנחנו כבר שם - אז כדאי למכור את המניות לפני הנפילה ולקנות כשאנחנו הכי למטה . . . </li><li>(אלון) יאמר לזכות דותן - לא הקלטנו חצי-שנה - האייטם הזה ממתין חצי שנה, והוא מדבר על זה שזה הולך ליפול, אז . . . </li><ul><li>אז דותן - כל הכבוד! רק התזמון של ההקלטה לא טוב . . . .</li></ul><li>(דותן) כן . . . .</li><li>(רן) בואו נפרסם את הפרק רק אחרי ההתאוששות ואז הכל יהיה בסדר . . . </li><ul><li>[ומה עם ה-<a href="http://">CFP</a>?! . . . ]</li></ul><li>(אלון) אני אומר שבסיום כל אחד ייתן את הדעה שלו פעמיים - אחת שהשוק הולך להתאושש והשנייה שהכל הולך להיות קטסטרופה</li><ul><li>נחתוך את זה בעריכה - ואז נשלוף את זה בעוד כמה שנים ונראה מה אמרנו . . . </li><li>(רן) אה - כמו שאנחנו תמיד עושים . . . .</li><li>(אלון) כן . . . </li></ul><li>(דותן) אפשר לעשות כאילו Section של מניות, קבוע - </li><ul><li>שבעצם  . . . חודש לפני וחודש אחרי - ואז אתה יכול  . . .</li><li>(אלון) כן - “המניה הזאת - תשקיעו בה!”, ואז אם זה ממשיך לעלות אחרי ההקלטה אז “מה המומחים אמרו, חודש[!] לפני  . . . .”</li><li>טוב, אנחנו סוטים מהנושא . . . </li></ul><li>(רן) אז אלון . . . </li></ul></ul><br />אלון - <ul><li>(אלון) אז התכנסנו לבאמפרס ואלון על הבמה . . . טוב - אז אני אתחיל מאיזה Twitter-thread שמישהו - <a href="https://twitter.com/amilajack">Amila Welihinda</a> - החליט לרכז - זה <a href="https://twitter.com/amilajack/status/1479328649820000256?s=21">מלא מלא CLI Items חמודים</a>, אז שווה להסתכל</li><ul><li> יש פה איך <a href="https://twitter.com/amilajack/status/1479328652244373507">להחליף bat במקום cat</a>, ואז הוא מציג את הקבצים קצת יותר יפה</li><li>יש <a href="https://twitter.com/amilajack/status/1479328656195342337">Fancy-Diff</a> ו-<a href="https://twitter.com/amilajack/status/1479328668769914880">Fix ל-JSON Viewer</a> בתוך הטרמינל . . .  ממש חמוד, זה אחד החמודים . . .</li><li>(רן) שנייה, יש פה טעות - אחד הכלים נכתב ב-<a href="https://go.dev/">Go </a>. . . זה בסדר, דותן?</li><li>(אלון) דותן לא מאשר CLI Tools ב-<a href="https://go.dev/">Go</a> . . . </li><li>(דותן) אני לא יודע איך להגיב . . .</li><li>(אלון) תרשום ב-Comments אחרי זה - ואנשים יעברו וידעו מה לא . . . </li><li>(דותן) האמת שהרוב נכתב ב-<a href="https://www.rust-lang.org/">Rust </a>באמת . . . .</li><li>(אלון) אבל נגיד <a href="https://twitter.com/amilajack/status/1479328673253625860">ה-F-Searcher, ה-Fuzzy Search</a> . . . .</li><li>(דותן) תן לזה זמן וזה יגיע, ה-Port היותר יעיל ויותר . . . </li><li>(אלון) כן - מישהו יגיד ש”ה-5ms איטי לי מדי - אני רוצה את זה ב-1ms . . . .”</li><li>(דותן) האמת שממש אהבתי את ה -<a href="https://twitter.com/amilajack/status/1479442528994689025"> Hex Editor</a>, זה מדהים</li><ul><li>כאילו, לא חשבתי על הקונספט של לשים צבעים בבייטים . . .</li><li>(רן) ה-<a href="https://t.co/nD7Zmox9TP">hexyl</a>  . . . </li><li>(אלון) כן, האמת שזה די מגניב</li></ul><li>הקיצר - יש פה גם  - אם דיברת על טרמינל ב-Client אז <a href="https://twitter.com/amilajack/status/1479328678601363456">יש פה את Duf</a>, איך שלא קוראים לו [הכי קל בטקסט . . . ], שהוא shows a better du summary</li><li>יש את <a href="https://github.com/htop-dev/htop">htop</a> שזה “<a href="http://">a</a><a href="http://"> modern</a><a href="http://"> </a><a href="http://">`top`</a><a href="http://"> replacement</a>”, יש את ה-<a href="https://twitter.com/amilajack/status/1479442528994689025">Hex Viewer</a> . . . </li><li>בקיצור - יש פה המון, שווה להסתכל, קחו מה שבא לכם, <a href="https://twitter.com/amilajack/status/1479450486742781952">fig </a>וכו’ . . . .</li><ul><li>רשימה ממש חמודה - רוצו ויהיה לכן <a href="https://twitter.com/shemag8/status/1531587957655748608">טרמינל קצת יותר חמוד ונחמד</a></li></ul></ul><li>ולדבר הבא - יש איזה IDE חדש שנתקלתי בו בשם <a href="https://replit.com/">replit</a>, זה - <a href="https://replit.com/">repl</a><a href="https://replit.com/">-</a><a href="https://replit.com/">it</a></li><ul><li>הרעיון הוא שהוא “IDE משותף” - כמו ש-Google Docs וכו’, כשכותבים כמה במקביל</li><li>אז הרעיון גם פה הוא שכותבים כמה במקביל, ואז אפשר לראות מי כתב ו-Comment-ים תוך כדי . . . .</li><li>אני לא יודע עד כמה הוא עם Extension-ים וחזק עדיין, אבל הקונספט שכתבו IDE שמראש מיועד ל-Collaborative Sharing - אני חושב שזה ממש חמוד.</li><ul><li>זה גם נראה כמו <a href="https://code.visualstudio.com/">VSCode </a>קצת - אז אני לא יודע אם הוא מבוסס עליו<a href="http://"> </a>או . . . </li></ul><li>(רן) אנחנו משתמשים בו, השתמשנו בו לפעמים לראיונות עבודה . . . . בתוך IDE Online, לראיונות מרחוק </li><ul><li>זה נחמד, זה כלי טוב</li></ul><li>(אלון) כן . . . גם ב-<a href="https://code.visualstudio.com/">VSCode</a> יש כלים ל-Collaborative והם משתפרים - אבל הם לא . . . לפחות זה לא נראה ברמה הזאת</li><ul><li>זה נראה הרבה יותר Slick וחי ו”בדיוק מה שאני עושה”</li></ul><li>אז כמו שאמרת - לראיונות או סתם אם יש לכם חברים בעבודה, אם יש כאלה אנשים - אז אתם יכולים לעבוד תמיד יחד . . . </li></ul><li>האתר הבא זה <a href="https://learngitbranching.js.org/">L</a><a href="https://learngitbranching.js.org/">earn</a><a href="https://learngitbranching.js.org/"> G</a><a href="https://learngitbranching.js.org/">it</a><a href="https://learngitbranching.js.org/"> B</a><a href="https://learngitbranching.js.org/">ranching</a></li><ul><li>זה פשוט אתר UI-י, אינטראקטיבי, שמלמד איך נראה <a href="https://git-scm.com/">Git</a> . . .  - </li><ul><li>מה קורה? איך אני עושה Commit? איך נראה עץ? איך אני עושה Merge? איך אני עושה Split? . . . . מה שאתם רוצים.</li></ul><li>אז אני אוהב לשחק פה עם הפקודות וזה ממש מראה מה קורה ומסביר ואיך חוזרים אחורה והכל . . . </li><li>אז למי שרוצה קצת פעם אחת ולתמיד להבין איך באמת Git עובד ולא <a href="https://git-scm.com/docs/git-pull">Git-Pull</a> ו-<a href="https://git-scm.com/docs/git-push">Push </a>ומתישהו <a href="https://stackoverflow.com/questions/5509543/how-do-i-properly-force-a-git-push">Force </a>כי כלום לא עובד והרסתם הכל . . . .</li><ul><li>אז זה אתר ממש ממש חמוד ואינטראקטיבי</li></ul><li>(דותן) העיצוב של ה-Mac מסגיר את השנה שבה זה נבנה . . . . הייתי מנחש 2014 . . .</li><li>(רן) זה מזכיר לי את  <a href="http://">האייטם הקודם עם המערכות הפעלה</a> שלך, דותן . . . . נראה שגנבו משם איזושהי מערכת הפעלה מאלפיים-ומשהו  ו . . . כן.</li><li>(אלון) כן . . . מה שנחמד זה שאפשר לשחק שם על העץ של ה-<a href="https://git-scm.com/">Git</a> ואז הוא מראה לך בצד איזו פקודה אתה מריץ - </li><ul><li>את לוחץ על הפקודה אז הוא מקפיץ לך את ה-UI בצד השני</li><li>זה הכל נורא אינטראקטיבי ואפשר לשחק עם זה - ממש חמוד.</li></ul></ul><li>האייטם הבא - <a href="https://cloud.google.com/blog/products/databases/introducing-alloydb-for-postgresql">Google הוציאו Database חדש! - AlloyDB</a></li><ul><li>להבנתי הוא גם פותח בארץ . . . החבר’ה בארץ פיתחו אותו, אז כל הכבוד.</li><li>נראה סופר-מרשים - זה המתחרה של ה-<a href="https://aws.amazon.com/rds/aurora/">Aurora</a>, אבל לפחות לפי ה . . . .</li><ul><li>אם הם מבטיחים חצי ממה שהם כותבים פה, אז זה הרבה יותר מרשים מה-<a href="https://aws.amazon.com/rds/aurora/">Aurora</a>, מהרבה בחינות</li></ul><li>לא נכנס לכל מה שהוא עושה, אבל קודם ב-Benchmark-ים שלהם - שבואו ניקח את זה עם כוכבית גדולה - אבל הם פי-2 מ-<a href="https://aws.amazon.com/rds/aurora/">Aurora</a> ב-Benchmark-ים, בביצועים</li><li>יש להם שם דברים די מדהימים - בגלל שהם עובדים על ה-Storage שלהם, של <a href="https://cloud.google.com/blog/products/storage-data-transfer/a-peek-behind-colossus-googles-file-system">Colossus</a>, ה-Shared Storage, אז להרים רפליקות (Replications) זה ב-Seconds . . . .</li><ul><li>אז פתאום  . . . בדרך כלל, אחת הבעיות ב-Database-ים רלציוניים זה שכשמגיע Scale אז אתה תמיד צריך להיות ב-Over-Scale, כי כדי להעתיק רפליקה הוא צריך להתחיל לקרוא את הדאטה או להרים Logging או להרים איזה Backup - וזה דאטה שב-Database-ים גדולים יכול להיות עשרות דקות . . . </li><li>אז פה מדובר ב-Seconds . . . . אז זה די משמעותי, הדברים האלה - כתיבה במקביל . . . </li><li>נראה מדהים, באמת - נראה מדהים</li></ul><li>הוא <a href="https://cloud.google.com/blog/products/databases/introducing-alloydb-for-postgresql">כרגע חינם ב-Preview, ב-Google Cloud</a>, אז . . . .</li><li>(רן) זה משהו שרץ ומסתמך על <a href="http://">Google Cloud</a> - זה לא משהו שאתה יכול להריץ אצלך על המחשב . . . </li><li>(אלון) לא . . .  זה ב-<a href="https://cloud.google.com/">Google Cloud</a>, זה <a href="https://cloud.google.com/sql/docs/postgres">Postgres</a> . . .</li><ul><li>(רן) ב-<a href="https://cloud.google.com/sql/docs/postgres">Postgres </a>category  . . .</li></ul><li>(אלון) אז זה <a href="https://cloud.google.com/sql/docs/postgres">Postgres </a>בלבד - גם דיברתי שם, אפשר אפילו לשים Extention-ים של <a href="https://cloud.google.com/sql/docs/postgres">Postgres </a>כמו <a href="https://postgis.net/">PostGIS </a>ועוד כל מיני חברים . . .</li><ul><li>זה <a href="https://cloud.google.com/sql/docs/postgres">Postgres</a> under the hood, אבל  . . . . לא בדיוק “Under the Hood” אבל השתמשו שם . . . הם יצאו מתוך <a href="https://cloud.google.com/sql/docs/postgres">Postgres</a> ובאיזושהי נקודה הם התפצלו, זה נראה די מהר</li><li>אבל באמת באמת - כל הכבוד לחבר’ה פה שעשו את זה - נראה  . . .</li></ul><li>(דותן) בהמשך לקטע הישראלי, אני רואה שמי שכתב את זה - את הפוסט הזה - זה <a href="https://twitter.com/andigutmans?lang=en">Andi Gutmans</a> - הלא הוא היוצר של <a href="https://www.php.net/">PHP </a>ו-<a href="https://www.zend.com/">Zend </a>. . . אז . . . </li><ul><li>מגניב - אז עכשיו הוא ב-Google  . . .</li></ul><li>(רן) אחד מהם לפחות . . . יש גם את <a href="https://en.wikipedia.org/wiki/Zeev_Suraski">זאב </a>- שכחתי את שם המשפחה שלו . . . </li><ul><li>(דותן) נכון . . . <a href="https://en.wikipedia.org/wiki/Zeev_Suraski">סורסקי</a></li><li>(רן) <a href="https://en.wikipedia.org/wiki/Zeev_Suraski">סורסקי</a>, תודה - שהוא גם ישראלי</li></ul><li>(אלון) אז בקיצור, חבר’ה - זה נראה ממש מרשים עם <a href="https://www.mongodb.com/docs/manual/sharding/">Sharding </a>. . . זה “שילוב של <a href="https://www.cockroachlabs.com/">Cockroach</a> עם <a href="https://aws.amazon.com/rds/aurora/">Aurora</a> על סטרואידים” כזה . . . </li><ul><li>נראה באמת  . . . .אם זה באמת עובד טוב, אז זה נראה כאילו “מה צריך יותר מזה?”</li><li>יש לנו “<a href="https://cloud.google.com/sql/docs/postgres">Postgres</a> על סטרואידים” - זה נראה לי שאפשר להגיד שלום להרבה מערכות, אבל בסדר . . . </li></ul><li>אני מאוד בעד - כי אני אוהב גם את <a href="https://cloud.google.com/sql/docs/postgres">Postgres</a> מאוד ומאמין בו, אז זה בכלל לקחת אותו הלאה</li><ul><li>אני מקווה שזה עובד כמו שזה נראה.</li></ul><li>(רן) ואחרון שלך, אלון . . . .</li></ul><li>(אלון) האחרון  שלי זה <a href="https://steampipe.io/">Steampipe</a></li><ul><li>אם התחלנו ב-SQL אז בואו נמשיך - זה בעצם מה שהם רושמים: Select * From Cloud . . . </li><li>זה נותן להריץ ב-CLI שאילתות SQL מעל ה-Cloud - נגיד Select * From Instances</li><ul><li>ולקבל את ה-Instances עם “While Memory גדול מככה וככה” או “Where CPU גדול מככה” ו”כשה-Cost הוא כזה”</li><li>ולעשות מלא שאילתות על ה-Cloud שלך בשפות SQL</li></ul><li>אז זה ממש חמוד וממש נוח - אפשר להוציא מזה סטטיסטיקות די בקלות</li><ul><li>מפתחים שתמיד מתעצלים לבדוק Cost וכאלה אז פתאום אולי יתחילו להתלהב מזה, כי אפשר להוציא את הסטטיסטיקות די ב-Script ובקלות</li><li>אולי אפילו להכניס את זה לאיזה CI פתאום . . . </li><li>ולקבל מידע בקלות בלי ללמוד כל מיני API מוזרים</li></ul><li>אז זה ממש ממש נחמד - אני אישית מאוד אהבתי את זה, אחלה כלי CLI.</li><li>(רן) נחמד - תודה</li></ul></ul><br />ואנחנו ממש לקראת הסוף והגענו לחלק של המצחיקים<ul><li>(רן) רציתי לספר לכם על <a href="https://www.linkedin.com/in/pinscherprogrammer/">פינצ’ר המתכנת</a> . . . יכול להיות שסיפרנו עליו בעבר, אני כבר לא זוכר, הוא כבר נמצא בסצינה לא מעט זמן</li><ul><li>אז <a href="https://www.linkedin.com/in/pinscherprogrammer/">פינצ’ר המתכנת</a> הוא מתכנת מתוסכל מאוד עם זקן גדול ומשקפי-שמש אימתניים - שבא ומספר על חיי היומיום שלו - על איך פתחו לו באג, על למה מזמנים אותו לפגישות . . . </li><li>בקיצור - אני חושב שכמעט כל המפתחים יכולים ככה להזדהות עם הסיטואציות היומיומיות האלה, שמוצגות בהומור וחן רב</li><li>אז לכו - צפו בסרטונים שלו - <a href="https://www.linkedin.com/in/pinscherprogrammer/">פינצ’ר המתכנת</a>, נמצא בלינקדאין</li><li>ממליץ, תצחקו . . .</li><li>(אלון) כן . . . . יש לו כמה באמת “לפנתיאון”, <a href="https://www.linkedin.com/in/pinscherprogrammer/">לפינצ’ר הזה</a></li><ul><li>מה שכן - עד שהקלטנו, הוא פרסם שהוא יצא לפגרה . . . אבל לא נורא, יש מלא Video-ים, אפשר לצפות בישנים</li><li>יש מספיק היסטוריה - הוא התחיל לפני הפגרה שלנו, עכשיו הוא יצא לאיזו פגרה כדי לאסוף עוד חומרים, אבל מומלץ מאוד.</li></ul></ul><li>(רן) ואולי האייטם האחרון להיום והכי מרגש - <a href="https://www.youtube.com/watch?v=KL4z6-A6o3U&t=1s">כנס רברסים 2022 יצא לדרך!</a></li><ul><ul><li>(אלון) תופים!</li><li>(רן) יפה, אלון, אני לא צריך לעשות עריכה קולית - אתה עושה לי הכל . . . .</li></ul></ul><ul><li>אז בעצם דותן מוביל את צוות התוכן</li><ul><li>(אלון) דותן!</li><li>[<a href="https://twitter.com/jondot/status/1531323357303656448">הצוות</a><a href="https://twitter.com/jondot/status/1531323357303656448"> </a><a href="https://twitter.com/jondot/status/1531323357303656448">(המדהים!)</a><a href="https://twitter.com/jondot/status/1531323357303656448"> של רברסים היה זמין לכל אחת ואחד בוורקשופ בנושא איך להגיש הצעה לכנס</a>]</li></ul><li>(רן) אני השנה קצת יותר מסתכל מהצד - אבל זהו: <a href="https://sessionize.com/reversim-summit-2022/">הקול-קורא להגשות פתוח</a>, הכנס עצמו הולך לקרות באוקטובר</li><li>וזהו - תבואו ותגישו: הולך להיות כיף והולך להיות מעניין, אז מוזנים להגיש וכמובן שאחר כך מוזמנים להשתתף.</li></ul></ul><br />זהו, בזה אנחנו מסיימים - תודה רבה! <br /> האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    59 min
  • 439 Bringing offline to online data with Erez from Easy
    [קישור לקובץ mp3] פרק מספר 439 של רברס עם פלטפורמה - תאריך ההקלטה הוא ה-17 במאי 2022, ואורי ורן מארחים בכרכור את ארז מחברת Easy כדי לדבר על מה שהחברה עושה- לאסוף מידע על העולם האמיתי להנגיש אותו Online - ועל האתגרים שקשורים בזה.

    (רן) לפני שנתחיל - ארז: ספר לנו בכמה מילים על עצמך ועל החברה
    • (ארז) אז אני ארז, נולדתי בקיבוץ רמת הכובש, גר היום בתל אביב עם מאיה ושתי הבנות שלנו.
    • למדתי באוניברסיטה, אחרי זה עבדתי קצת בהיי-טק - ומתישהו התחלנו לעשות את Easy, כמה חברים מהקיבוץ . . . 
      • חבר מהקיבוץ - איתמר - הוא הקים את זאפ לפני הרבה שנים, כשהיינו צעירים . . . מכר את zap, ומתישהו היה לו את הרעיון לעשות את Easy
      • וככה הצטרפו כל מיני חברים, מהקיבוץ ולא מהקיבוץ, וגם אני הצטרפתי - והתחלנו עם הדבר הזה . . . לא כל כך ידענו למה אנחנו נכנסים, קצת ידענו למה אנחנו נכנסים . . .
      • זהו - ו-Easy . . . 
    (רן) Easy  . . . אז תיכף נדבר על מה זה Easy ולמה זה קשור ל-zap, אבל רגע, אורי - יש לנו פה קיבוצניק! זה לא קורה כל יום . . . 
    • (ארז) אז לפני זה דיברנו על הקיבוץ אז אמרתי ישר ו . . . 
    (אורי) פתחנו פה שלישייה  . . . .
    • (ארז) אמרתי לכם שבמשרד, אנשים לא . . . הייתי צריך להסביר להם מה זה רברס עם עגלה וזה . . .
    (אורי) כן, אנשים לא רואים, אבל פה הכל זה גולדסטאר ונובלס . . . (רן) כן . . . בסדר - אז בסוף הפודקאסט נעביר אותך בוחן של רברס עם פלטפורמה . . .(אורי) עד עכשיו נכשלת . . . 
    • (ארז) בסוף הפודקאסט נעשה את “הבלדה לעוזב הקיבוץ” - הישארו עימנו! [בדיוק נפתח ה-CFP לרברסים 2022 - יש תחרות ליוני ויפתח?!]
    (רן) מעניין שגם הזכרת את זה, כי אתה אומר שהקמת את החברה יחד עם חבר מהקיבוץ . . . 
    • (ארז) כמה חברים . . . 
    (רן) כמה חברים - ואני מניח שזה די נדיר “בסצינה”, אין המון סטארטאפים שהתחילו בתוך הקיבוץ, על ידי חברים מהקיבוץ [?] . . . אני תוהה עד כמה זה השפיע על המשך החברה? אולי אחר כך נספיק להגיע לזה, כי לא לשם כך התכנסנו.
    אז בכמה מילים - מה עושה Easy?
    • (ארז) Easy, למי שלא מכיר, זה אתר ואפליקציה למציאת עסקים, מקומות, שירותים, נקודות עניין, הופעות, בעלי מקצוע . . . .כל מה שסביבך, הכל סביבך - זה ה-Tagline שלנו.
    (רן) לפני איזה שבועיים חיפשנו משהו, אני לא זוכר, אולי איזה בית קפה - ואז הבת שלי, בת 13, אמרה לי “אבא! תפתח את Easy!” . . . - “אה! אני מכיר את ארז . . . .” - “מי זה ארז?” . . .
    • (ארז) מהקיבוץ . . . 
    (רן) זהו, אז הבת שלי יודעת עליך . . . .(אורי) אתם משתמשים?(רן) כן  - יצא לי, מאז שהכרתי את ארז אז יצא לי קצת להשתמש, אבל  . . .(אורי) זאת אומרת - יצאת לטיול, ואמרת “רגע, איפה יש מסעדה פה?” - ויאללה, ב-Easy . . .
    • (ארז) כן, אז אחר כך, בהקשר של הדאטה, אולי נגיע לנקודה שהשימוש הוא אולי קצת Sparse-י וזה כן מכניס איזה-שהם אתגרים בדאטה וכאלה דברים.
    (רן) אז ניתן ככה קצת רקע על החברה ואז נכנס לאתרים - כמה זמן היא קיימת?
    • (ארז) החברה קיימת כבר 14-15 שנים - עוד מהבית של איתמר, מהגראז’ כמעט . . .  כמה שנים.
    (רן) וכמה עובדים כיום?
    • (ארז) היום כבר 60 עובדים.
    (רן) ותפקידך בכוח?
    • (ארז) אני ה-CTO של Easy, מימיה הראשונים של החברה.
    (רן) ואיפה?
    • (ארז) החברה בתל אביב, ליד שוק לווינסקי, נחמד . . . מקום חמוד.
    (רן) ועל “טהרת ישראל”, זאת אומרת - עובדים ישראלים, מוצר רק בישראל? . . . 
    • (ארז) כרגע המוצר רץ רק בישראל.
    • כן יש דיבורים-עניינים-מחשבות לכיוונים קדימה, אבל כרגע זה על טהרת ישראל - כל העובדים ו . . . 
    (אורי) זאת אומרת שלבעלי מקצוע יש פיצ’ר של “עם חשבונית או בלי חשבונית”? . . . . 
    • (ארז) מעניין . . . אני יכול לחשוב על זה.
    (רן) ואיזשהו מודל עסקי? זאת אומרת . . .
    • (ארז) כן . . . אז התחלתי לדבר קצת על ההקמה של החברה, בהתחלה קצת עם הכסף של איתמר ואח”כ קצת השקיעו בנו - דב מורן . . .
      • נעשה את זה מהר - מתישהו שידורי קשת השקיעו בנו, ככה גדולים, והביאו לנו גם כחלק מההשקעה פרסומות בטלויזיה
    • וזה גדל וגדל - והיום החברה כבר צומחת אורגנית מההכנסות שלה - מודל עסקי פשוט של Marketplace, כמו Google . . . .
      • יש חינם - מי שרוצה מצטרף
      • ומי שרוצה קצת אקסטרה - משלם על קידום ועל כל מיני שירותים .
    (אורי) זאת אומרת - בעלי המקצוע, המסעדות, העסקים - יכולים להצטרף חינם, ואם אתה רוצה קצת יותר אז זה בתשלום?
    • (ארז) כן, ועוד רגע מעניין זה שהם יכולים גם לא להצטרף והם עדיין יהיו שם - זה קשור אולי לשיחה ותיכף נגיד.
    • אפשר לרגע להגיד מספרים - 5-6 מיליון כניסות בכל חודש לאתר ולאפליקציה, בערך חצי-חצי בין האתר לאפליקציה
      • מעניין שכשהקמנו את החברה . . . 
    (רן) כמה Unique-ים? . . . 
    • (ארז) 3 מיליון Unique users . . .
    (רן) זאת אומרת - שלושה מיליון ישראלים . . . מתוך כמה אנחנו, 9 מיליון באוכלוסיה? [וחצי . . . ] וזה כולל גם ילדים [בערך 30% . . . ] - זאת אומרת שליש מהאוכלוסייה, שזה חלום של כל חברה, בגדול . . . (אורי) שליש מהאוכלוסייה משתמשת?
    • (ארז) שליש מהאוכלוסייה - 3 מיליון Unique users בחודש אחד נכנסים ל-Easy.
    • חצי מהם מגיעים לאתר, ושם הם גם  . . . לפעמים זה דרך חיפוש ב-Google או משהו, אבל חצי מהכניסות זה שהם נכנסים לאפליקציה, באופן Direct, ככה.
    (אורי) מה שנקרא “אורגני” . . . (רן) כן - ואיזה תחומים? אילו ורטיקלים קיימים?  דיברנו על מסעדות . . . מה עוד יש?
    • (ארז) אז זה זנב נורא ארוך כזה של חיפושים ואפשר לדבר על התחומים הכי גדולים - 
      • מסעדות זה הכי גדול, אבל אפילו מסעדות הוא לא רוב האפליקציה
      • בחיפושים זה Long Tale כזה של חיפושים ומלא תחומים - זה מסעדות ובעלי מקצוע וחנויות ובילויים כאלה ואטרקציות לטיול וכאלה דברים
      • וגם קצת הופעות ודברים כאלה . . . 

    (רן) אז אם אמרנו באותו משפט גם עולם פיזי - מסעדות והופעות וכו’ - וגם “זנב ארוך”, אני מריח צרות . . . זאת אומרת, איך משלבים בין שני הדברים האלה? איך אתה מצליח - וזה גם נושא השיחה שלנו - איך אתה מצליח לאסוף דאטה על עולם ה-Offline ולהביא אותו Online בצורה שהיא Cost Effective, בצורה שהיא אמינה וכן, זו ככה הכותרת, בגדול . . . אז מאיפה מתחילים?
    • (ארז) אז כן, אנחנו למדנו שזה ממש קשה . . . . זה מאוד קשה - וזה קשה לכולם
    • הטווח הזה, שבין הנקודות עניין ובין הדברים הממש פופלאריים לבין ה-Long Tale הזה, שמגיע אפילו עד לעולם של המיפוי, ה-Mapping הזה ממש - 
      • אנחנו מדברים על משהו כמו חצי מיליון נקודות עניין בישראל - עסקים, נקודות עניין, כאלה דברים - בין 250-אלף לחצי-מיליון, תלוי מה סופרים
    • זהו, זה אתגר - אתה מגיע ורוצה לעשות אפלקציה כזאת אז מה אתה עושה? איך? מה?
    (רן) אני יכול להמר, בוא תגיד לי מה נכון . . . . אתה יכול להתקשר לכולם . . . .
    • (ארז) כן, פותח “דפי זהב” [נקודה בונוס למי בקהל שיודע מה זה + הפנייה מעגלית, כי הם אלו שמחזיקים את המותג של Zap…] . . . . מתקשר . . . 
    (רן) מתקשר ושואל . . . “שלום, מה נשמע? מתי אתם פתוחים? מה הכתובת שלכם? . . . .” כן, ככה חצי -מיליון טלפונים . . . .(אורי) אני, כאילו, ב-144 . . . אתה לא צריך להתקשר, יש את הספר טלפונים או . . . זה ה-Database . . .  אתם לא בעצם מחליפים את 144?
    • (ארז) אולי גם . . . . קודם כל, לא לכל אחד יש טלפון, או לא יודע, לא מפרסם את הטלפון שלו . . .
    • אבל כן, במידה מסויימת אנחנו רוצים להיות ה-Database של ישראל וזה גם קצת מה שאנחנו עושים.
    • 144, גם אם לא  . . . .
    (אורי) “144 שהוא קצת יותר מונגש” . . . אתם סוג של 144 שהוא יותר מונגש?
    • (ארז) יכול להיות . . . 
    (רן) אבל הוא גם רק לעסקים, הוא לא לפרטיים, 144 . . .
    • (ארז) אנחנו מרגישים, כשהתחלנו את החברה, שזה עולם שמרגיש שהוא לא השתנה . . . אפילו אלפי שנים אני יכול להגיד, הוא לא השתנה . . .
      • יש “איזה מישהו שמחזיק איזו רשימה” של כל העסקים בכפר - ואתה בא אליו ושואל אותו.
      • זה לא השתנה, וגם אם התקדמו והגיעו לשנות ה-2000 ולאינטרנט - זה לא השתנה, והם עדיין נשארו עם הרשימה הזאת
    • וזה עולם לא מפוצח . . . אני חושב שגם אנחנו עדיין לא פיצחנו אותו. זה עולם שאפשר לעשות שם דברים יותר מעניינים.
    (רן) אוקיי, אז הניסיון הראשון שלי זה לעשות חצי מיליון שיחות טלפון ולברר - ולעשות את זה אחת לחודש, כי זה צריך להיות מעודכן. אז אחת לחודש חצי מיליון שיחות  . . .  יש פה בעיית Scale קלה . . .ניסיון אחר זה אולי לשדוד איזשהו Database . . . לשדוד את 144 או לעשות את איזשהו Scrapping, לא יודע, אולי אפילו משהו חוקי [!], אולי גם זה קיים איפשהו.(אורי)  . . . או להוציא פרסום בטלויזיה, לעסקים . . . (רן) כן, שירשמו אצלנו  . . .
    • (ארז) אתה צריך הרבה כסף בשביל זה . . . אתה יודע כמה עולה פרסומת בטלויזיה? . . . 
    • נכון, זה קשה להתחיל - וזו בעיה של כל Marketplace.
    (אורי) אלא אם כן שידורי קשת משקיעים בך . . . 
    • (ארז) נכון, אבל הם לא באו סתם ככה . . . 
    (רן) היה משהו לפני זה?
    • (ארז)  . . . כי יש לי עיניים יפות . . .  נכון, “בעיית המסיבה” הזאת, כשאתה רוצה להכין איזה Marketplace ואתה רוצה שיבואו משתמשים - אבל אתה רוצה גם את העסקים, ואז מי יבוא ראשון?
      • משתמשים לא יבואו אם אין עסקים ועסקים לא יבואו אם אין משתמשים
    • אז כן, אנחנו התחלנו, וגם היום, הרבה עם Crawler-ים, הרבה . . . 
    • אמרנו “בוא נדע הכל, בוא נדע את כל המידע”
      • מה זה הכל? כל ה-Chains, כל הרשתות שיש בישראל: סופרפארם ומקדונלדס ו . . . 
      • ואז אני אדע - לכל אחד יש אתר ויש כמה מאות כאלה, אפילו אלף, תלוי איך סופרים . . .
    (אורי) נכנס לרשימות הסניפים . . . 
    • (ארז) נכנס לרשימות הסניפים . . בהתחלה קצת ידנית אבל בסוף נכתוב קוד שהולך פעם בכמה ימים, נכנס, מוריד את רשימת הסניפים.
    • נלך לכל מיני אתרים - של העירייה . . . יש עיריות שמפרסמות את הרשימות, יש Database כמו Gov.IL שמפרסם את רשימות, לא יודע - “סניפי  הדואר” . . . ונתחיל ככה.
    • ויש אתר, לא יודע . . . הרבנות הראשית! אומרים מי כשר בישראל . . . .
    (רן) הבנתי - אז לכל אלה, שהם Point of Interest או יש להם נוכחות Online-ית כלשהי, אתה כותב Crawler - ולכל אחד זה Crawler אחר, כי כל אתר בנוי אחרת . . .
    • (ארז) כן . . . 
    (רן) אז גם פה יש איזושהי בעיית Scale קלה . . . 
    • (ארז) נכון . . . אז קודם כל, אתה מגלה מהר מאוד שכל האתרים האלה הם דומים.
      • זה לא כמה “מערב פרוע”, אבל כן . . . 
    • ושם מצאנו את הנישה שלנו, בין הידני לגמרי לאוטומטי לגמרי של ה-”Google-Bot” שהולך למערב הפרוע ומנסה למצוא שם מידע
      • אנחנו כן אומרים לו “בוא תלמד על זה וזה וזה” . . . אז יש כמה אלפי Domain-ים ויש עוד כמה  . . . 
        • ויש גם אתרי בית של עסקים וזה גם מעניין - הם יותר מערב פרוע . . . עוד כמה עשרות או מאה-אלף Domain-ים כאלה . . .
      • ואתה מתחיל לנסות ללמד אותם ושיתקדמו, ואתה עושה קצת את ה-Fine Tuning וכל זה - ואז הם לא משתנים הרבה
      • ואתה מתחיל, ולאט-לאט יש לך, התחלה יש לך - וזה הר של מידע כזה, טקסטואלי.

    (רן) אבל למעשה כל מה שעשית עד עכשיו זה ריכזת מידע שכבר קיים Online - ריכזת אותו במקום אחד, שאולי יהיה יותר נוח - ממויין, יותר זמין לחיפוש - גם זה לא בטוח, כי יש Google, אבל נניח ש . . . אתה מייצר איזושהי Directory.איך אתה מייצר ערך מוסף מעל זה? או מעשיר מידע יותר או לחילופין מביא מידע שלא היה קיים לפני זה Online?
    • (ארז) קודם כל, המידע הזה מאוד מבולגן - קשה להסביר עד כמה הוא קשוח ומבולגן.
      • אני מראה לפעמים באיזה אתר שכתוב את שעות הפעילות של איזה בית קפה וכתוב שם “יום ו’ אחרי כניסת שבת - שעתיים” ואיזה טקסט  . . . יורד שורה ואז פתאום “יום חמישי ככה וככה” . . . .
    (רן) . . וכל זה בטבלאות HTML . . . 
    • (ארז) כן, ממש בלגן . . . . ואנחנו גם ראינו בבלגן הזה הזדמנות, זה לא כל כך קל, ול-Google גם זה לא כל כך קל.
      • אנחנו יודעים את זה כל השנים וגם משיחות עם Google ועם הכי גדולים והכי רציניים  - עם Google ו-Apple ו-Waze וכולם - אנחנו יודעים כמה להם זה קשה, הדבר הזה.
        • זה בלגן, זה לא כל כך קל . . .
      • אז הערך המוסף הראשון הוא בלסדר את זה - יש המון דאטה טקסטואלי, אז לבוא ולעשות לו Restructuring.
    (רן) זאת אומרת - אפילו שזה Online, זה עדיין קשה לחיפוש כי זה מאוד מבולגן, ואולי אם תיכנס ידנית לאתר של החנות אז אתה תוכל לקרוא את זה, כבנאדם - אבל אם אתה עכשיו מחפש מסעדה שפתוחה בין 1200 ל-0200 בלילה, יהיה לך מאוד קשה למצוא את זה . . . 
    • (ארז) יהיה לך מאוד קשה, כן
    • ויש עוד הרבה Attributes שאפשר לסדר אותם - יש את השעות פעילות ויש למסעדות כשרות
      • וזה נראה קטן - אמרתי “כשרות”, אבל אתה יודע מה זה “כשרות” בישראל? . . . . זה, וואי . . . 
      • ויש “כשר למהדרין” ויש “לא כשר” שמעניין אנשים מסויימים ויש “כשר עם תעודה” . . . 
    • אז כל ה-Structuring הזה - לקחת את הטקסט הזה ולסדר . . . 
    (אורי) זה אחד הקיבוצניקים, עם ה”לא כשר” . . . 
    • (ארז) כן . . .  אני זוכר שמישהו אמר ש”צריך גם לא-כשר, צריך לעשות את הסינון הזה” . . . .
    (רן) אוקיי, אז רגע-רגע-רגע . . . .
    • (ארז)  . . . נדבר על זה אחר כך, אני עוד מקדים את המאוחר, אבל אנחנו גם שואלים את המשתמשים - User-Generated Context, לקבל . . . לוודא את המידע . . .
      • “כן/לא - האם המקום הזה . . . “
    • אז הדבר הכי שנוי במחלוקת בשאלות האלה זה “כשר?” . . . . זה הדבר שיש סביבו הכי הרבה סתירות, כשחלק אומרים “כן” וחלק אומרים “לא” וצריך . . . 
    (רן) דרך אגב - זה שיקוף של המציאות, מן הסתם . . .  יש כאלה שיחשיבו מסעדה ככשרה ויש כאלה שלא - את אותה המסעדה בדיוק, לפי הרב שמכשיר וכו’.
    • (ארז) נכון.

    (רן) אוקיי, אז רגע - בדיוק דיברת על UGC, וזו פעם הייתה מילה ממש חמה, הרבה זמן לא שמענו אותה . . . 
    • (ארז) כן? לא שמענו עליה? כל . . . Web2? באיזה מספר אנחנו היום?
    (רן) אבל זהו - ב-Web2 זה היה כאילו ה-דבר הכי הכי חם . . .
    • (ארז) . . . וב-Web3 זה כבר לא זה, חוזר לתאגידים ו . . . .
    (רן) זה כבר משהו אחר, לא נכנס לזה . . . אבל כן - אז למה שלא פשוט תבקש מהמשתמשים שיעשו לך את העבודה הזאת? כל מי שעובר ברחוב - שיפתח שנייה את האפליקציה ויכניס שעות פתיחה . . . .
    • אז חזרנו לאותה שאלה של “למה להם?” - למה שהם יעשו את זה? . . . 
    (רן) אז אולי בעלי העסקים יעשו את זה?
    • (ארז) גם - למה להם?
    • אז התשובה היא כן וכן וכן . . . התשובה היא שזה מה שעושים בעולם הזה: יורים לכל הכיוונים.
    • זה לא מספיק, ה-Crawler-ים האלה - זה מדהים להתחלה ולסדר את המידע המבולגן מהמידע הטקסטואלי זה חלק מאוד גדול של הדבר הזה
    • אחרי שאתה קצת מתחיל, אתה עושה לעצמך Bootstrap של דאטה כזה ואתה מתחיל לגדול
      • אז מתחילים קצת משתמשים, Early Adopters כאלה - ומהם אתה מבקש שיכתבו Reviews על עסקים ואולי אתה שואל אותם . . . .
      • אולי מי שהשתמש כבר 10 פעמים אז לא אכפת לו לענות לך - “המסעדה הזאת - יש בה מקומות ישיבה בחוץ? תענה לי . . . “
      • ואם שלושה-ארבעה-חמישה ברצף ענו “כן” - אז זה כנראה “כן” . . . 
    • ומתישהו עסקים מתחילים לקבל פניות ואנשים אומרים להם ש”הגעתי דרך Easy“ - אז גם הם מתחילים לבוא  . . . 
    • וזהו - אתה פשוט יורה לכל הכיוונים שם . . . .
    • באמת, האתגר הגדול הראשון בעולם הזה הוא ה-Acquisition הזה, להשיג את הידע
      • אנחנו עשינו את זה בכל השנים עם הרבה Crawler-ים יחסית מתוחכמים ומורכבים, שעושים הרבה דברים
      • זה גם API-ים של Facebook ו-Public APIs של עסקים שיש להם מידע Public
    • ולא נגעתי פה בכל הדברים . . . גם, קצת יותר מאוחר, זה קצת שיתופי פעולה עם חברות משלוחים שגם משתפות איתנו פעולה
      • הן גם נותנות לנו API של הדאטה
    • מתישהו אתה גם מתחיל לצרף את המשתמשים - שואל אותם שאלות, שואל אותם  . . . .
      • שם כפתור באפליקציה - “המקום הזה פתוח? המקום הזה סגור?”
      • והם עונים לך ואתה מתחיל לקבל דאטה ואתה צריך לדעת מה עושים עם הדאטה הזה.
    • ובעלי עסקים, מתישהו כשזה מתחיל לזוז, אז זה ברור מה המוטיבציה שלהם
    • וככה זה, בעצם . . . 

    (רן) אז טוב, יש לי הרבה שאלות, אבל בוא נחזור רגע לדוגמא שהזכרת על שעות פתיחה - נגיד “פתוח במוצ”ש החל משעתיים אחרי” ושורה מתחת עוד משהו - אז מה, כל מקרה לגופו? לכל דבר אתה כותב קובץ קונפיגורציה? יש לנו פה  . . . .
    • (ארז) אז לא, יש לנו Regular Expressions ואתה כן “מלמד את השפה” הזאת, “שפת שעות-הפעילות” הזאת
      • ש”שני” ו"ב” זה אותו הדבר ואופטימיזציה כזאת . . . 
    (רן) בסדר . . . וניסיתם לקחת את זה יותר רחוק, לעולמות ה-NLP זאת אומרת?
    • (ארז) יש אצלנו עניינים של NLP . . . ספציפית בשעות פעילות זה די  . . . זו לא בעיה קלה אבל היא Straight-forward Engineering כזה, נתמודד איתה . . .
    • ביחד עם ה-UGC והאלגוריתם הכללי שלנו של לתקן את הטעויות ולקבל דיווחים  ולהבין האם הדיווח הזה בכלל מהימן ואם המשתמש הזה - אפשר בכלל לסמוך עליו? 
      • וזה הכל כזה מסביב, בהכל . . .
    (רן) בדיוק, זה מוביל אותי לשאלה הבאה - מה קורה במקרה של Discrepancy, כשמקור אחד מראה שעה 0900 ומקור אחר מראה שעה 0800, כשאחד מהם יותר Recent ומצד שני יש לך יותר Evidence  . . . 
    • (ארז) כן, אז זה האלגוריתמים שלנו, שהם אחראים  - הרוב קובע, אבל זה רוב משוקלל ויש מקורות מידע שעם הזמן המערכת לומדת שהם יותר מתוחכמים ויותר אמינים
    • יש משתמשים שעם הזמן המערכת לומדת שהם יותר אמינים ואפשר “לסמוך” עליהם . . . 
    • על בעל עסק - בדברים מסויימים אפשר לסמוך עליו מאוד ובדברים מסויימים אחרים פחות כי יש לו אינטרס וכאלה דברים.
    • זהו . . . 
    • בעולמות של NLP, יש לנו לא מעט דברים של NLP . . . בעולמות של Reviews וכאלה דברים - Content Moderation וכאלה דברים, אז שם יש NLP.
    • בעולם הזה יש את כל עניין הקטיגוריות - לשים את העסקים  . . .
    (רן) “מספרה שהיא גם מסעדה” . . .
    • (ארז) כן, זהו . . .  לאפיין אותם וכל זה
      • אז שם יש דברים קצת מתוחכמים לפעמים של מה זה הקטיגוריות האלה? איך לסדר אותן?
      • אנחנו מחזיקים אותן באיזה “עץ כזה של העולם” עם כל הקטיגוריות שלהם . . .
    • וגם אפשר לעשות דברים יותר מתוחכמים שגם אנחנו עושים קצת - שזה Emending של כל הביטויים האלה של החיפושים שאנשים עושים, בשביל לאפיין דברים יותר על Vector-space שיוכל לשמש גם לכל מיני דברים יותר מתוחכמים.
    (אורי) לפעמים אתם מגלים קטיגוריות לפי חיפושים של אנשים? . . . .
    • (ארז) כן  . . . אפשר לגלות, אנחנו יודעים . . . 
    (אורי) . . . כאילו - מישהו מחפש “מתקן אופניים”, ונגיד אין לכם כזאת קטיגוריה . . . 
    • (ארז) כן, יש לנו צוות, שאנחנו קוראים לו “צוות Data” או “Data Quality” או “צוות Content” - יש לו כל מיני שמות, לצוות הזה . . .
      • והם עובדים עם כל מיני כלים שאנחנו כותבים להם והם יודעים - “הנה חיפוש שחיפשו ואולי זה טרנד חדש”
        • אולי סוג חדש של מסעדות או חיפוש שמשום מה לא קיים אצלנו - מחפשים אותו הרבה והוא לא קיים אצלנו, רק הולך ל-Free Search, יש לנו Free Search כזה.
        • תמיד יש Fall-back לחיפוש חופשי . . .
    (רן) אז אולי זה מסוג הבעיות שלא יודע אם יהיה לנו זמן לדבר עליהן - עד עכשיו דיברנו על Data Acquisition ויש גם את ה-Data Retrieval - שאילתא או “מנוע חיפוש” נקרא לזה, שגם שם יש עולם מעניין . . . 
    • (ארז) כן, שני העולמות מעניינים, של Content Recommendation קצת ולסדר את התוצאות וכל זה . . . .
    • פשוט יש מישהו פה מ-Outbrain אז זרקתי Buzzword . . . .

    (רן) אז אני מניח שהלקוחות בקורונה לא השאירו אתכם עירניים מדי . . . . אני אומר שמה שקרה בתקופת הקורונה בטח קצת (קצת…) זיעזע את כל העולם וגם את שלכם, אז זהו - (א) זה דפוסי התנהגות שונים, למשל שמסעדות פתאום סגורות וזה משהו שהוא כנראה  חריג ו-(ב) זה שינויים כנראה תכופים - אולי היום כן ומחר לא וכל זה, ואולי אפילו גם ורטיקלים נוספים כמו נקודות בדיקה לקורונה שפתאום נורא מעניינות את כולם . . . .אז איך מתמודדים  עם שינויים כל כך מהירים ולא צפויים?
    • (ארז) צריך לדעת שבכל מקרה, ה-Database הזה שיש לך - גם ככה משהו כמו 5% ממנו, כל חודש הוא גם ככה משתנה . . . 
    • 5% ואולי 6% או יותר אפילו - בכל חודש, או שעסקים נסגרים או . . . 
    • אז גם ככה, תוך שנה . . . 
    (אורי) איך אתה יודע שהעסק נסגר?
    • (ארז) שאלה טובה . . . 
    (רן) סגור באופן תמידי, הכוונה - לא “סגור ללילה” אלא “נגמר” . . .
    • (ארז) אוקיי, אז איך יודעים שעסק נסגר? . . .  זו שאלה מאוד טובה ומאוד קשה.
    • אנחנו עושים כל מיני דברים בשביל . . . יש לנו את כל הדאטה - כל הדאטה ה-Online-י ואת כל הדאטה של המשתמשים שלנו.
    • נניח שאני Data Scientist ואני רוצה לתקוף את הבעיה הזאת מכיוון של לבנות איזשהו מודל ולהבין האם העסק סגור
      • אז צריך להתחיל לבנות מודל כזה, להבין האם המסעדה נסגרה.
      • אז אוקיי - מה עושים בפרויקט כזה? . . .
    (אורי) אתם משתמשים ב-Machine Learning, להניח . . . .
    • (ארז) אז קודם כל אוספים כמה דוגמאות של  . . . .
    • אולי אני אתחיל מהסוף - לא תמיד אנחנו יודעים  . . . לא תמיד אנחנו יודעים, ואנחנו רק יודעים לשער אם היא סגורה.
      • אנחנו יודעים להגיד האם היא פתוחה ואנחנו יודעים לפעמים להגיד את ההסתברות שהדבר הזה קורה, לפי מודלים שאנחנו בונים.
    • אז איך בונים מודל כזה? 
      • קודם כל, יש את האתגר של לתייג את הדאטה הזה - להשיג מסעדות שהן בטוח-סגורות ומסעדות שהן בטוח-פתוחות.
      • אז אתה מתמקד בהתחלה במשימה הראשונה של לתייג את הדאטה הזה, או . . . 
    (רן) אילו פיצ’רים אנחנו רואים? - “האם יש Reviews?”, “האם האתר בחיים?” . . . .
    • (ארז) כן . . . פיצ’רים מאוד ברורים זה מתי כתבו עליו Review, מתי הוא כתב Post ב-Facebook שלו, מתי הוא עודכן . . . 
      • אבל יש גם פיצ’רים פחות טריוויאליים, שזה האם הטלפון שלו הוא 05-משהו או 03- . . . יכול להיות שזה משפיע, אתה מבין?
      • או פיצ’רים של Location, כאלה - האם הוא נמצא במרכז העיר או רחוק ממרכז העיר? האם הוא נמצא בישוב קטן או בעיר?
      • ויש גם את באיזו קטיגוריה הוא נמצא, שזה שאלה - איך אתה עושה . . . .
    (רן) אז אתה יודע - יש את מה שנקרא Chaos of Dimensionality ה-Machine Learning . . . . - זאת אומרת שכשיש לך כל כך הרבה פיצ’רים אבל לא מספיק מידע, אתה יכול מאוד בקלות לעשות Overfit . . . . זה נשמע שיש לך פה המון המון פיצ’רים ובוא - אנחנו בישראל . . .  עד חצי-מיליון עסקים, מתוכם כמה דוגמאות יש לך? גם אם יש לך חצי-מיליון דוגמאות, על כך הרבה פיצ’רים זה לא עוזר . . .
    • (ארז) אני לא יודע . . . קודם כל, לא אמרתי ”המון פיצ’רים” - אמרתי “עשרות”, לא יודע . . . .
    (רן)  . . . אני יכול לחשוב על המון פיצ’רים . . . . 
    • (ארז) אפשר לחשוב . . . אם אתה מתחיל לדבר על קטיגוריות ולעשות Embedding גם לקטיגוריות, אז כבר יש לך כמה פיצ’רים שאתה רוצה בעצם . . . 
      • זה הרבה מהעניין פה - הקטיגוריות, כשהן יכולות לפצל את זה להרבה מודלים או להרבה פיצ’רים.
      • בסדר, אתה יודע - ככה זה ב-Machine Learning . . .  הרבה פעמים בבעיות של החיים האמיתיים, וואלה - זה לא המודלים הענקיים.
        • אני רואה גם מודלים יותר ענקיים, שמנסים לחזות CTR וכאלה דברים, וואלה - איזה כיף! יש לך מודל ענק של מיליונים ומיליוני דוגמאות, כמה שאתה רוצה ובאיזה גודל של דאטה שאתה רוצה אז יהיה לך . . . 
    • אבל הרבה פעמים, בעיות של עולם אמיתי זה לא Data set ענק . . . 
      • הוא לא פצפון פה - יש לך אלפי או עשרות-אלפי דוגמאות ללמוד מהן, ויש לך עשרות פיצ’רים מעניינים
      • והאופרציה של לחבר את הכל ביחד היא אתגר - אתגר מעניין . . . 
    • רק לתאר . . . ה-Labeling הוא אתגר וה-Featuring וללמד את זה - והכל מתחבר לדבר הזה של לאסוף את זה ולעשות את ה-Structuring הנכון.
      • כי אם חילקתי אותם נכון לקטיגוריות ואמרת “זה מסעדה, זה בית קפה” - ועשית את זה טוב ומדויק - זה יחזק לך את המודל.
    • זה ניהיה טרנדי עכשיו וכולם מבינים את זה - שהרבה פעמים האתגר זה ה-Data ולסדר אותו
      • ואנחנו יודעים את זה מהידיים שלנו מהיום הראשון
      • זה אתגר שלפעמים הוא יותר חשוב ממודל כזה או מודל או עץ כזה או Deep Learning . . .
    (רן) לגמרי . . . אני חושב שגם לא מזמן התפרסם מחקר, לא שהוא גילה משהו שלא יודעים, אבל התפרסם מחקר שהוא קצת יותר Quantitative של Google שאמר שאם אני לא טועה אז משהו כמו 90% מעבודת ה-Machine Learning זה ניקוי דאטה וסידור דאטה וכו’.
    • (ארז) כן, Andrew Ng אומר את זה כל הזמן [פה יש שיחה נהדרת איתו אצל Lex Fridman], על ה-DataOps וכל זה - שהאקדמיה אוהבת להתעסק עם המודלים ולשפר שם איזה  . . .  
      • אבל הבעיות של העולם האמיתי הן קרובות לאפליקציה, הן  . . .

    (רן) אז בוא רגע נדבר על Data Pipelines - תיארת הרבה מאוד מקורות מידע שונים, ואני מניח שיש עוד . . דיברת על איסוף מ-Scraping ומאתרים, דיברנו על מקורות מידע אנושיים - חוות דעת, ואני מניח שיש עוד הרבה מקורות אחרים . . . בסופו של דבר, אתה רוצה להביא את הכל לאותו מקום ובצורה איכותית.נסה, ככה, לתאר איך נראה ה-Pipeline שלכם.
    • (ארז) יש פשוט את השלב הראשון שזה ה-Data Acquisition, שהוא מורכב מכל הדברים האלה, משלוש או ארבע הזרועות האלה
      • זרוע ה-Crawler-ים והחיבור ל-API-ים, שפשוט מביאה משם את המידע באופן Period-י ב-Crawling כזה.
      • יש את זרוע העסקים, שזה פשוט כל המידע שבעלי העסקים מעדכנים - הכל הולך לאותו מקום בהתחלה
      • ויש את כל התוכן שהמשתמשים מעדכנים
      • בנוסף לזה, המשתמשים גם מביאים את הדאטה ה-Implicit, את הדאטה הפאסיבי הזה - 
        • מתוך השימוש שלהם גם אפשר ללמוד הרבה דברים, זה גם פיצ’ר . . . 
        • אם זה עסק פופלארי יותר או פחות פופלארי - זה גם כמובן משפיע.
    • אז כל ארבע הנקודות האלה - זה לשלוף את המידע מהן, להביא אותו בצורה די גולמית ודי בסיסית ולא מאוד מסודרת, די טקסטואלית כזאת.
    • השלב הבא זה שלב ה-Structuring הזה, שקצת דיברנו עליו - לסדר את המידע, כשבמקום טקסט אנחנו רוצים מבני נתונים שלנו, מסודרים.
      • אנחנו לא רוצים “אחרי כניסת שבת” וכו’ . . . .
      • אנחנו לא רוצים מסעדה בטקסט חופשי - אנחנו רוצים את ה-Entity שלנו, שאומר “מסעדה", שמאופיין בעץ שלנו, שיש לנו בנים בעץ של “מסעדות אסייתיות”.
    (אורי) אתם בחרתם מבנה נתונים שהוא טבלאי (Tabular) או  . . . ?
    • (ארז) אנחנו עובדים הרבה עם טבלאות, עם SQL
    • משלבים בתוך זה אובייקטים לפעמים, JSON-ים וכאלה, בתוך ה-SQL במקרים האלה . . .
    (רן) מה ב-Driver של כל הדבר הזה? זאת אומרת, משתמשים בכלים מוכרים - Airflow, או . . . ?
    • (ארז) כן, Airflow בשביל תזמונים, Python . . .  כן, דברים כאלה.
    • ו-SQL, קצת NoSQL בכל מיני מקומות.
    (רן) ונגיד שזה רץ אחת ליום? או . . . 
    • (ארז) כן, זה רץ אחד ליום
      • יש דברים שרצים אחת לשעה . . . ה-Crawler-ים עובדים כל הזמן, מסביב לשעון
      • וגם המשתמשים עובדים כל הזמן מסביב לשעון - וגם בעלי העסקים . . . 
    • אבל העדכון מידע הראשוני הזה - לקחת מכל המקומות האלה בחוץ כזה “Chunk” פעם בשעה או דברים מסויימים פעם ביום מביאים את זה למקום הזה.
    • וזה מתחיל תהליך של Structuring, שהוא גם קורה פעם ביום, בגדול
      • לא נסבך פה . . . . בשביל הסיפור פה אפשר להגיד שהוא קורה פעם ביום.
    • אחרי תהליך ה-Structuring הזה יש עוד תהליך שלפעמים קצת שוכחים אותו אבל הוא גם לא קטן, שזה כזה De-Duplication
      • זו גם בעיה כזאת קשוחה לפעמים . . . 
    (רן) מה הכוונה? תן דוגמא . . . 
    • (ארז) הכוונה שיש דף Facebook של הקפה אצלנו למטה - טוני ואסתר, הקפה מתחת למשרד - ויש להם גם אתר שהם עשו, אתר הבית שלהם . . . 
    (רן) . . .  אז אין Entity Consolidation - זאת אומרת שאתה רוצה להגיד ששניהם זה הקפה . . .
    • (ארז) כן - ששניהם זה אותו . . . Entity resolution או Entity Consolidation או De-Duplication . . . כל מיני
    (רן) הבנתי . . . 
    • (ארז) ב-Python יש איזו חבילה - dedupe - ויש לזה כל מיני שמות, לבעיה הזאת.
    • זו גם בעיה קשה - שגם בה אפשר לעשות Learning וכל מיני דברים
      • אפשר Rule-based בסיסי, נגיד לפי השם ולפי הכתובת - אבל זו גם לא בעיה טריוויאלית
      • יש לי ליד הבית איזה פלאפל שבקורונה או מתישהו הוא החליט שבערב - אני חושב שהוא אפילו מפורסם - מתישהו בערב הוא הופך את השלט והוא ניהיה מסעדה איטלקית בערב . . . 
        • זה אותו עסק? זה לא אותו עסק? . . . 
      • גם עורכי דין - יש כאלה שהם באותו משרד, אבל הם רק חולקים טלפון כי זה חוסך להם
        • וכל אחד מהם הוא עוסק מורשה לבד . . .
      • (אורי) ויש פלאפל שבבוקר הוא מוסך - אבל הוא לא מחליף את השם . . . 
      • (ארז) כן . . . אז זו גם בעיה קשה
    • וגם עוד נקודה שלא אמרנו - יש קצת Spam וכאלה דברים, יש איטרסנטים . . . 
      • היה מחקר של Google - או של ה-Washington Post נגד Google, אני לא זוכר בדיוק - על מנעולנים . . . .
      • אני לא זוכר את המספר אז אני לא אגיד סתם, אבל אם זה 10% או 50% מהמנעולנים, איכשהו זה Duplicates . . . .
        • [שלא לדבר על זה - בערך 40% מכל התנועה באינטרנט היא לא אנושית. וזו הערכה שמרנית]
        • כי מה אכפת לו? הוא ירשום את עצמו גם כמנעולן בנתניה וגם כמנעולן בכרכור, ובכלל בשם אחר . . . .
        • ומה אכפת לו להביא עוד טלפון אחר, כי . . . 
      • (אורי) זה מה שהם יודעים לעשות? לשכפל? . . . . הם משכפלים את המפתחות?
        • [לא רק . . . פה יש חזרה על החומר - Summit 2017: Lock Picking for Hackers / Michael Sverdlin]
      • (ארז) כן . . . אז יש גם אינטרסנטים כאלה, שמפריעים לך - אז זו גם לא בעיה קלה.
    • אז שנייה לסדר רגע את ה-Data Pipeline הזה שאמרת - 
      • אספנו את כל המידע הזה מכל מיני מקומות ומכל מיני סוגים, טקסטואלי בעיקר.
      • עשינו לו Structuring
      • ועכשיו עשינו לו את ה-De-Dup הזה, את “החיבור כפולים” הזה, כמו שקוראים לזה אצלנו.
      • ואז כבר יש לך קצת עם מה לעבוד . . .

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

    (רן) ובסוף התהליך הזה - מה נוצר? מה זה “מוכן למשיכה”? מוכן ל-Retrieval, מוכן לחיפוש? איך נראה ה-Data?
    • (ארז) אז זהו, בסוף-בסוף עשית את ה-Structuring וה-De-Dup ואז הפעלת את כל . . . 
    • עכשיו זה השלב להפעיל את האלגוריתם הזה שקצת דיברנו עליו - 
      • להחליט - האם המקומות האלה סגורים? האם המקומות האלה פתוחים?
    • הרבה מהדאטה הוא לא רלוונטי . . . . המון, ממש.
      • יכול להיות שרוב הדאטה לא רלוונטי, אז . . .
      • כי אם מישהו פותח איזה אתר או דף Facebook, ואז סגר את העסק - אז הוא לא ממהר לסגור את הדף . . . 
    • וזה המקום לשים את ה-Threshold הזה, לפי  . . . 
      • ודווקא פה יש משהו מעניין - לפי כל ה-Learning הזה שאמרנו - לפי כל הפיצ’רים, לפי כמה ומתי עודכן וכל וזה . . . 
    (רן) זאת אומרת - ההחלטה האם זה משהו שאנחנו רוצים להציג או לא, או במילים אחרות “האם זה פתוח או סגור?” . . . אוקיי
    • (ארז) אז שם יש לנו מודלים שגם תיקפנו אותם כמה פעמים ועשינו נסיונות לתקף אותם ממש בצורה ידנית בסוף
      • בסוף עשינו מודל שאומר “ההסתברות שהמקום הזה קיים בכלל” . . . .
      • זו לא בדיוק השאלה של “האם נסגר?”, אבל “ההסתברות שהמקום הזה קיים היא 72%”
      • אז יש לנו מודל שאומד את ההסתברות שהעסק באמת קיים
    • ואז עשינו, מתוך צוות ה-Data Quality שלנו - עשינו פרויקט ותיקפנו את המודל הזה, בעזרת פשוט . . . 
      • בסוף גם בעזרת דרכים מתוך הדאטה - להבין וללמוד וכל מיני הבנה סטטיסטית
      • אבל בסוף גם לתקף את המודל הזה “ידנית” - להבין האם זה נכון במציאות
    • וזהו - ואז אתה קובע את ה-Threshold הנכון שלך
    • ושם יש לך דילמה - יש לך דילמה של דאטה: איפה לשים את ה-Threshold?
      • אם אני רוצה אז אני יכול לשים את ה-Threshold ב-99% . . . בטוח שכל המקומות יהיו פתוחים ולא יהיו [כמעט] טעויות ב-Database
      • אבל אז מתחילה הבעיה ההפוכה . . . 
    (רן) . . . יש לך בעיה שלך Recall - זו הדילמה של Precision לעומת Recall
    • (ארז) כן, אז יש לך דילמה קלאסית של Data, של Precision / Recall
    • והאמת שזה דיון מעניין, שגם קיים אצלנו כל הזמן - איך מכריעים בדבר הזה.
      • איך מכריעים ב-Precision / Recall הזה . . . 
    • אז בסוף אתה צריך להחליט איכשהו - או מפרודקט או מתחושה או מזה . . .
    (רן) דרך אגב - זה משהו שאתם מחצינים למשתמש? זאת אומרת - אתם באים ואומרים “אנחנו חושבים שהעסק הזה קיים . . . “, או שאתם פשוט מציגים וזהו?
    • (ארז) יש לנו עסקים שבהם - שהם בקו של ה-Threshold - שאם אתה מנווט לשם, נגיד, אז אנחנו מקפיצים לך אזהרה: “שים לב, המידע על העסק הזה לא עודכן הרבה זמן”
      • [The foremost cartographers of the land have prepared this for you! ]
      • אז אולי למעשה זה כמה Threshold-ים . . . . 
        • יש Threshold שברור לנו שזה לא קיים 
        • ויש Threshold של ה”התאמת ציפיות” הזאת - לכתוב איזה משהו למשתמש, במיוחד אם הוא מנווט לשם, שזה יכולה להיות החווייה הכי קשה למשתמש.
    • וזהו - ואז צריך להכריע מה ה-Threshold הזה . . . 
      • כאילו הכי נכון שם זה לעשות גם Learning של Retention של המשתמשים, ולהבין מה הכי נכון . . . .
    (רן) דרך אגב, הזכרת לי סיפור - סיפור אמיתי וקורע לב - שפעם קבעתי תור לאיזשהו רופא מומחה בקופת חולים, וכשהגעתי למרפאה גיליתי שהיא לא קיימת . . . . ועכשיו, היא עדיין רשומה באתר של הכללית, אבל הם לא יודעים על זה, ומן הסתם אי אפשר למצוא את הרופא הזה. אז זה קורה גם שם . . . 
    • (ארז) זו אכן בעיה קשה . . . וואי, זו ממש בעיה של כולם
      • זו הבעיה הכי קשה - וזו בעיה של כולם, זו בעיה של מיפוי וזו בעיה . . . 
      • אני רואה איך כולם מתמודדים עם הבעיה הזאת - Google ו-Apple עכשיו וכולם.
    (אורי) בשביל זה צריך מומחה . . .(רן)  . . . ורצוי שלא רופא . . . 
    (רן) אז זה סופר-סופר-מרתק, אבל זמננו תם . . .
    • (ארז) אה, כן, דיברתי כל כך הרבה? לא שמתי לב . . . .
    (רן) . . . אתה רואה? אמרתי לך שנהנים פה . . . .(אורי) כן, הזמן עובר מהר(רן) אז כן - זה סופר-מעניין ובאמת נגענו ככה רק בקצה הקרחון, אני בטוח שיש עוד הרבה בעיות, רק מהתחום הזה של לקחת מידע שהוא Offline-י ולהביא אותו Online . . . גם לא דיברנו על מה שיש אחרי זה - על ה-Retrieval שלו, שגם זה עולם. . . קצת רמזת לזה כשדיברת על Embedding אבל לא נכנסנו לזה עמוק.אז קודם כל - תודה שבאת!(אורי) חוץ מהחליבת בוקר . . . .
    • (ארז) אני לא הייתי בחליבה אף פעם . . . לא יודע . . .
    (רו) עבדת בדשא . . . 
    • (ארז) כן, נכון . . . 

    (רן) אז אמרת שאתם נמצאים בתל אביב, ליד שוק לוינסקי. מחפשים?
    • (ארז) מחפשים כל הזמן - אם מעניין אתכם, חברה ממש מיוחדת וכייפית וקיבוצניקים ולא קיבוצניקים וקיבוצניקיות, ונחמד אצלנו
    • ואתגרים של Data Engineering, מעניין, עם הרבה דאטה - אתם יכולים לחשוב על כמות המשתמשים שלנו והכניסות וכמה אתגרים של Big Data
      • ובכלל - אתגרים מעניינים של Data Engineering ו-Python
      • ואם אתם אוהבים Data Science אז זה סופר-מעניין אצלנו עם כאלה דברים.
    • וגם הצד השני - מגייסים גם Frontend: יש Vue ו-Node.js 
      • אתגרים של Scale של Web . . . 
    • הכל מעניין אצלנו . . .  בואו.
    (רן) אני חושב שאחד הצ’ופרים האמיתיים זה שזה מוצר שכנראה אמא שלכם משתמשת בו וכולם מכירים - בערך שליש מהאוכלוסיה בישראל משתמשת וזה כיף
    • (ארז) אני הייתי ב-Real-time Embedded כזה, “בברזלים” - וזה היה מעניין, כן
      • אבל פתאום עכשיו אני על דבר שהוא בידיים שלי - וזה נחמד.

    (רן) אז ארז - תודה רבה! היה מעניין, תודה שבאת. להתראות.

     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    43 min
  • 438 With Philip from Deepchecks about OSS GTM
    [קישור לקובץ mp3] פודקאסט מספר 438 של רברס עם פלטפורמה - הוקלט ב-18 באפריל 2022, חג פסח שמח - אורי ורן מארחים את פיליפ מחברת Deepchecks לשיחה על  Deepchecks ועל Go To Market Strategy מכיוון ה-Open Source.

    (רן) ולפני כן - פיליפ, ספר לנו קצת עליך: מאיפה באת? מה אתה עושה? מה עשית לפני כן?
    • (פיליפ) תמיד קשה לתמצת קורות חיים בזמן קצר, אז רק נגיד במילה - נולדתי בארה”ב, אתם יכולים לזהות לפי השם, ובגיל 5 עליתי לארץ.
      • לימים למדתי בתיכון למדעים ואמנויות בירושלים, שם עסקנו בדברים יחסית כמותיים - פיסיקה, מחשבים ודברים בסגנון הזה.
      • והיה לי איזה “ג’וק” שאני רוצה ללכת לקרבי, אבל בסוף התקבלתי לתלפיות והתלבטתי הרבה - בסוף הלכתי לתלפיות, אבל נשאר לי קצת הג’וק הזה, וכמה בוגרי תלפיות שיכנעו אותי שגם אם אני אבוא לתלפיות אז אוכל עדיין אחר כך לעשות את זה.
      • הייתי תקופה די קצרה במורן - עסקתי בתחום של חקר ביצועים, שזה אפשר להגיד “להשתמש במספרים כדי לעשות דברים אופרטיביים”, ואחרי מורן גם עשיתי במשך תקופה את אותו הדבר בזרוע היבשה.
      • מתישהו באו לשם כדי להציג לארגון שהייתי שייך אליו תחום שנקרא Machine Learning - וספציפית היה גוף שהיה בזמנו די אנונימי ובאו להציג פרויקט שהם עשו וכשקשור ל-Machine Learning.
        • הם השתמשו ב-Random Forest בשביל לחזות משהו שקשור לפעילות האופרטיבית - וממש התלהבתי
        • עברתי לזה, ומשם רוב הרקע שלי בעולם של Machine Learning.
      • לימים גם עבדתי על איזשהו אלגוריתם במסגרת התזה, שקוראים לו AugBoost, יחד עם עם פרופסור ליאור רוקח - ו- To make a long story short אז יחד עם איתו ויחד עם שיר חורב, שהייתה איתי במסלול בתלפיות, הקמנו את Deepchecks, שבין היתר Addresses some of the problems we felt as users, בעולם ה-Machine Learning.
    • (רן) אז ליאור רוקח, למי שלא מכיר, היה לי את העונג להכיר - הוא פרופסור באוניברסיטת בן גוריון, ומאוד אוהב עצים, לפי מה שראיתי - כותב עליהם ספרים  . . . . עצי סיווג למיניהם: הזכרת את Random Forest והזכרת איזשהו אלגוריתם Boosting שאני לא מכיר, אבל אני מניח שפחות או יותר מה-Domain  . . . 
    • (אורי) אל תגיד פה - בפרדס-חנה - כרכור - “נורא אוהב עצים” . . . זה  . . . .
    • (רן) למה? יש לזה איזושהי משמעות סודית פה?
    • (אורי) לא, פשוט כולם מחבקי-עצים פה . . . 
    • (רן) אז ליאור בונה עצים . . . אבל הפוך, עם השורש למעלה.

    אז פיליפ - קודם כל אלו קורות חיים מעניינים ולא שגרתיים וזה נחמד לשמוע ולהכיר. הזכרת את Deepchecks - מי היא Deepchecks, ומה אתם עושים שם?
    • (פיליפ) Deepchecks עוסקת בתחום של Continuous Validation for Machine Learning.
    • הרעיון הוא שיש, בכמה שלבים שונים במהלך הפיתוח וה-Deployment של המודלים של Machine Learning, יש כמה אתגרים יחסית ייחודיים שקשורים ל-Testing ו-Monitoring ול-Validation וכו’ - ו-Deepchecks מנסה לתת פתרון מאוד כוללני לדבר הזה
      • כלומר - לוודא, בכל השלבים השונים, שהמודלים וה-Data מתנהגים כמו שהיינו מצפים.
    • התחלנו כחברה שעוסקת ב-Monitoring ורוב הפוקוס שלה ב-Monitoring - ובגדול פונים ל-Team Leads או ל-Group Leads ומנסים לשכנע אותם לעשות POC.
      • ולפני סדר גודל של כחצי שנה עשינו מעבר יחסית חד למשהו שתמיד הייתה לנו תשוקה אליו, אבל רק עכשיו פיענחנו איך לעשות את זה, או שפיצחנו את איך לעשות את זה - וזה לתוך עולם ה-Product-Led Growth, וספציפית להיות Led by Open Source.
      • כלומר - במקום לפנות עכשיו לאיזשהו מקבל החלטות או מhשהו שיבין “מה טוב” בשביל הצוות שלו או הקבוצה שלו, אנחנו מנסים שיהיה יחסית הרבה שימוש “מלמטה” [Bottom-up], בצורה שהיא אורגנית, וזה משפיע המון . . . 

    (רן) אז קודם כל - זה סופר-מעניין, אבל לפני שנגיע ל-GTM, ה-Go-To-Market, הזכרת את הנושא Continuous Validation אז בוא נראה אם אני מבין את זה. אני אגיד את זה במילים שלי - אם, נגיד, עבור מפתחי תוכנה יש Continuous Integration, ששומר על הנכונות של הקוד - זאת אומרת שאני כותב טסטים ואני מצפה שאם ה-Input לפונקציה הוא “כזה” אז ה-Output יהיה “כזה” - אז ב-Data או ב-Machine Learning, למעשה לא מספיק לבדוק את הנכונות של הפונקציה - לצורך העניין אם אתה בונה עץ סיווג, אז לא מספיק לבדוק האם העץ מסווג נכון בהינתן Data סטטי, אלא אתה גם רוצה לדעת האם ה-Data שלך תואם את הציפיות שלך . . . (אורי) כדי שלא יהיה Garbage-In-Garbage-Out . . . (רן) כן, זאת אומרת, לצורך העניין, ש-Data שיש לו Bias לאיזשהו כיוון יכול לייצר מודל שלא התכוונת אליו.זו דוגמא אחת, ואני מניח שאתם ראיתם גם הרבה דוגמאות אחרות . . . ההבנה שלי פה נכונה?
    • (פילפ) בדיוק - I couldn’t have said it better myself . . .  מבחינת הפתרון אולי באמת אוכל לתת כמה דוגמאות ספציפיות 
      • הדוגמא הכי קלאסית שאפשר לתת וממש הייתה אחת הדוגמאות שהייתה לנו בראש בזמן שהתחלנו לעבוד על Deepchecks: תדמיינו לרגע שכשמאמנים Machine Learning אז לוקחים Data של אימון וזה Data שבעצם  . . .
        • את כל עולם ה-Machine Learning, אומרים שאם רוצים לפשט את “מה זה” אז זה בעצם “תכנות על ידי דוגמאות” . . . במקום לתכנת על ידי זה שמסבירים את הלוגיקה, נותנים דוגמאות ומשמתמשים בעקרונות מתימטיים או באלגוריתמים כדי להסביר למחשב בסוף מה לעשות.
        • אז יש את הדוגמא של עצים - יש כל מיני אלגוריתמים אחרים בסגנון של  . . . . גם דברים כמו רשתות נוירונים שכולנו מכירים, או למדנו לפחות - SVM וגם דברים שמי שהיה בכל מיני מעבדות בפיסיקה וכל מיני דברים כאלה אז ראה שמותחים קו ב-Excel או שעושים רגרסיה לוגיסטית וכל הדברים האלה, שיושבים תחת Machine Learning . . . 
      • אז הדוגמא שאנחנו חשבנו עליה בתחילת הדרך זה - והפתיע אותנו שלנו אין מענה לזה - זה מה קורה אם מאמנים על Data מסויים
        • נגיד שאנחנו מדברים על Data של בנאדם, ובין ה-Train לבין ה-Production מישהו הכניס Bug ובטעות התחלפו שתי עמודות, כלומר - נגיד שמה שהיה הגובה עכשיו נחשב כמשקל, ועכשיו המשמעויות הן הפוכות, כי זה נקלט בסדר הפוך.
        • וה-Bug הזה או הבעיה הזו יכולה להישאר במערכת שנים, כלומר - גם אם עושים Re-train שוב ושוב ושוב, נגיד במקומות כמו Outbrain שעושים Re-train כל הזמן, לא בהכרח יש מנגנון שבכלל תופס בעיות כשהן מוטמעות בפנים . . .
        • אז זו בעיה אחת, מהסוג שנקרא לו Miss-match בין Training ל-Production.
      • יש דברים שקשורים גם לזה שפשוט אולי בהתחלה כשהמודל Machine Learning היה Deployed הוא היה בסדר, אבל  . . . אלו, נגיד, בעיות שאפשר להבדיל בין Production ל-Production - שנגיד ההתפלגות השתנתה לאורך זמן . . . 
        • דוגמא קלאסית לזה שאם תסתכלו, נגיד, על דונלד טראמפ - אומרים את השם שלו לפני שהוא נבחר להיות נשיא ואחרי שהוא נבחר להיות נשיא, והמשמעות יכולה להיות שונה, והדברים האלה משוייכים לתחום או לנושא שנקרא Data Drift או Context Drift 
        • בלי להיכנס לניואנסים של ההבדלים ביניהם - יכול להיות שהמודל היה ממש-ממש בסדר ועבד מצויין בשלושה שבועות הראשונים, ובחודש שאחר כך פתאום נכנסת בעיה . . . 
    (אורי) אז איך זה באמת . . . Drifting של Data over time . . .(רן) בתוכנה נהוג להגיד שהתוכנה נחלדת . . .  זה נשמע מאוד לא אינטואיטיבי, זאת אומרת - איפה יש לך חלודה? [הרבה זמן בלי באמפרס, חסרים Memes על Rust…] אבל כן, ככל שעובר זמן, גם בשירותי תכונה, דברים מעניינים קורים - אם זה דיסקים שמתמלאים, אם זה Database-ים שניהיים יותר ויותר איטיים וכו’ - אז נוצרת “חלודה”, לכאורה, בתוכנה, ודברים, כמו שאמרת, דומים יכולים לקרות גם במודלים של Machine Learning. כמובן שמסיבות אחרות, אבל גם הם יכולים לקרות.
    לכל Founder יש תמיד איזה סיפור נורא רומנטי על על איך התחלתי את החברה - אולי כדאי לך לחשוב על סיפור שבו, אתה יודע, שירתת במורן ופתאום היה לך Data-drift  וחיילים ניצלו מטיל כי גילית את זה . . . . בקיצור, תמציא איזה משהו יפה.
    • (פיליפ) אבל בנימה קצת יותר רצינית - כן, במחקרי מידע מבצעי או כמו שאנחנו אהבנו לקרוא לזה, משהו שהגיע מהתחרויות שהיינו משתתפים בהן, ממ”מ - אז משהו מאוד יפה שם הוא שהיינו יכולים לעבוד על הפרויקטים הכי קשים בשיתופי פעולה עם כל מיני גופים אחרים
      • בגדול, בהרבה ארגונים אחרים היו מתחילים לעסוק באיזשהו פרויקט והיו מגיעים לאיזשהן דילמות משמעותיות - ואז אנחנו היינו נכנסים.
      • החסרון הוא כמובן ש-we didn’t do our own product, end-to-end, אבל בדרך כלל היתרון הוא שראינו המון - ובאמת זה היה חלק מהמוטיבציה, כי ראינו שוב ושוב את אותן בעיות
    • אבל רק משהו על הנקודה הקודמת שאמרת, על “לחלד” וכו’, משהו שדי מגניב כשחושבים על זה - מי מכם שהיה בצד שמנסים למכור לו תוכנת Machine Learning, אז הרבה פעמים ה-Pitch הוא “תראו, עכשיו זה מדויק ב-90%, אבל זו מכונה לומדת ועם הזמן זה הופך להיות יותר ויותר מדויק כי יש יותר דוגמאות” -
      •  אני אף פעם לא ראיתי את זה . . . אף פעם לא ראיתי את הדיוק עולה עם הזמן . . . 
      • (אורי) אתה אומר שזה רק ההיפך . . .
      • (פיליפ) במקרה הטוב זה נשאר אותו הדבר, פחות או יותר, עד כדי רעשים - אבל רוב הזמן זה יותר עם הזמן.
        • אפשר לעשות כל מיני דברים כדי לתקן, אבל . . . 
      • (רן) זה כמו הפרסומות ש”כשאתה ישן, הכסף שלך עובד” וכל זה - זה לא באמת עובד . . . 

    (אורי) אז רגע, אני רוצה להכניס פה קצת אקטואליה לעניין - ב-Outbrain, לא מזמן, היה לנו סוג של באג אפי [Epic] כזה . . . עוד פעם, זה מסוג הדברים שאתה לא קורא להם “Bug” אלא “Issue”, כי זה לא שמישהו כתב את קוד לא טוב אלא שמשהו “החליד”, אוקיי? אני אתאר בקצרה מה קרה - יש מודל, הוא לומד באופן Continuous ויש לו מנגנון שברגע שהוא רואה שהדיוק של הלמידה יורד, הוא עוצר הכל, עוצר את ה-Production Line - מפסיקים לייצר מודלים כי ירד הדיוק, כמובן שזה כשעובר איזשהו Threshold. ומה שקרה זה שזה לא עצר בזמן - מודל אחד דפוק נכנס ונפרש ב-Production, על חלק מ-Production - ואז ה-Line נעצר, כיוון שלא קפצה ההתרעה הנכונה - ובמשך יום-ומשהו היינו עם מודל דפוק ב-Production.אבל הטריגר שלנו על הדיוק של המודל . . . .
    • (פיליפ) שנייה, לפני זה - אתה יכול בבקשה להגיד כמה מהתעבורה עברה שם? מה הנזק, פחות או יותר?
    (אורי) שני-שליש מהתעבורה עבדה על מודל דפוק במשך יום, 30 שעות . . . יש הרבה למידות מהסיפור הזה וכו’, אבל משהו כמו שני-שליש מהתעבורה למשך 30 שעות - וזה הוריד הכנסות וכו’ וכו’.אבל בגדול, הטריגר נמצא שם - הוא הדיוק של המודל, והדיוק שלו נפגע. זאת אומרת, מה שמעניין אותך זה לא כמה ה-Data עשה Drift לאורך הדרך - זה דבר שיכול לקרות. ולהיפך - אנחנו לפחות מאמנים מודל באופן תכוף כי אנחנו יודעים שה-Data  עובר Drifting ,ואנחנו יודעים שדונלד טראמפ אתמול היה מעניין ומחר לא מעניין, או אם ניקח משהו הרבה יותר - תוך כמה זמן לוקח לתת סטירה לבנאדם? צריך חצי שנייה? בסדר, אז תוך חצי שנייה, Will Smith ניהיה הדבר הכי חם בעולם . . . .וגם הבחור השני, Chris Rock, ניהיה . . . אבל בגלל השינויים הגדולים האלה, מאוד חשוב לנו לאמן מודלים מהר ובאופן תכוף. אז ל-Drift הזה של ה-Data אנחנו נותנים את המענה הזה, אבל . . .(רן) אז אתה אומר שמבחינתך, Drift זה דווקא Feature, זה לא  . . .(אורי) Drift זה Feature! [יש לנו Bumper sticker חדש?] . . .(רן) ה-Data משתנה, ואתה רוצה לשקף את זה כמה שיותר מהר ב-Production.(אורי) בדיוק - אבל בסוף אני רוצה לבדוק את ה-End-state, שזה הדיוק של המודל - אז השאלה היא איפה אתם בודקים?
    • (פיליפ) קודם כל, רגע לפני שנגיע ל-Deepchecks: התחום הזה הוא תחום שיש לכל חברה שיש לה מודלים ב-Production.
      • ככל שיש יותר מודלים ב-Production, לפעמים סופרים ממש מודלים . . . כמה דברים שעושים פרדיקציה (Prediction), שלפעמים וזה מעניין להסתכל על Task-ים
        • זאת אומרת שלפעמים יכול להיות מודל, לא יודע - לכל גיאוגרפיה  יש Task שונה וכו’.
      • אבל בגדול, ככל שיש יותר מודלים ב-Production אז נתקלים במגוון יותר רחב של אתגרים שקשורים לתחום הזה שנקרא Observability ב-Production.
    • בעצם יש, הייתי אומר, סוג של שני Clsuter-ים קיצוניים, ויש הרבה כמובן באמצע - 
      • אחד מהם דומה למה שאתה [אורי] עכשיו סיפרת בדוגמא שלכם, של Outbrain - מי שיש לו המון Data כל הזמן והמון Labeling כל הזמן, אז בדרך כלל האתגרים שלו קשורים ל-Re-Training
        • זאת אומרת - לוודא שכשעושים Re-Training אז דברים לא נדפקו.
        • ואז צריך המון מגינים מסוגים שונים של תרחישים.
      • לפעמים יש את הקיצון השני, של Label שיכול להגיע נורא באיחור - יכול להיות מצב שבו אין לי מה לעשות Re-Training יותר מפעם בכמה חודשים, או לפעמים פעם בשנה, כי רק פעם בכמה חודשים אני יודע מה עם ההלוואה שנתתי או משהו בסגנון הזה
        • ואז האתגר הוא לנסות להעריך איפה תיהיה פגיעה בביצועים, לפני שאני יודע להעריך את ביצועים בצורה מדוייקת . . . 
    (אורי) אנחנו פשוט נמצאים בשוק שהוא מאוד זז, מאוד Volatile-י . . . 
    • (פיליפ) אז צריך להגיד - יש בעיות ש-Re-Training לא פותר.
      • סתם לדוגמא: נניח שהייתה לך עמודה שהכל בה Null-ים, אבל גם בפעם הקודמת זה הכל היה Null-ים . . . 
      • או הדוגמא שאמרתי, שיש לך איזה Bug של . . . 
      • (רן) החלפת עמודות . . . .
      • (פיליפ) כן, ההחלפת עמודות שאמרתי, או שיש לך Typo - ראינו את זה  . . . מדינה שכתובה בשתי דרכים שונות, אותו מדינה שפעם אחת כתובה עם Caps Lock במילה השנייה ופעם בלי . . . 
        • זה ממש Extensive list, אי אפשר עם איזה שלוש בדיקות לכסות הכל
      • ואת הדברים האלה צריך להגיד - ניסינו כן לתת לקהילה, לא לשמר במוצר הסגור שלנו, של “בואו, תעבדו עם Deepchecks בשביל ה-Production”, אלא ממש משהו שאנחנו עכשיו עושים במסגרת ה-Open Source וזה להגיד . . . 

    (רן) אז בדיוק, אני רוצה להגיע לסיפור של ה-Open Source: בעצם, אתה אומר שהתחלתם כחברה שבעיקר עסקה ב-Monitoring ובתחום של Continuous Validation של Machine Learning Models, ואז לפני כמה חודשים אמרתם שאתם רוצים לעשות איזשהו שינוי ב-Go To Market Strategy וללכת Open-Source.אז בוא שתף אותנו קצת במחשבות - מה היו ההתלבטויות? מה היו ה-Trade-off-ים? מה בסופו של דבר גרם לכם ללכת לכיוון הזה?
    • (פיליפ) אחלה, אז אני אלך עוד יותר אחורה - מרגע  ייסוד החברה, היינו מדברים ומתעניינים בעולם של ה-Training.
    • היה לנו איזשהו מדגים (Demo), שפיתחנו לאט-לאט, והיה איזשהו ריכוז מאמץ מסויים על זה, של נעם ברסלר שמוביל אצלנו את האלגוריתמים, לפני סדר גודל של שנה, בשביל להגיע לתצורה שאמרנו “אוקיי, את אותם הדברים שאנחנו רוצים לתת ב-Production ונותנים ב-Production, בואו נראה אם אפשר לתת את זה בצורה יותר קלילה, חינמית, באתר שלנו”
      • כשמעלים מודל, מעלים את ה-Data, לוחצים על איזה כפתור גדול ומקבלים איזה דוח . . . 
      • ואז הדוח מראה איפה יש בעיות ואיפה  . . .
    • ובגדול כן הייתה התלהבות מזה - יש אנשים שכן אמרו “וואו, אני צריך לשדך את זה לכל מאמר אקדמאי שאני מוציא”, או “אני היית רוצה בכל פרויקט לתת את זה ל-Junior, או לעבור יחד עם ה-Junior שעובד אצלי על זה”, אז הייתה בזה איזושהי התלהבות.
      • מצד שני - היו פידבקים אמרו “אוקיי, אבל איפה ה-Customizability? איפה אני אכניס את זה אצלנו? אני לא יכול להעלות את ה-Data, אני לא יכול להעלות את המודל” . . . .
    • בגדול, המסקנה הייתה שיש פוטנציאל מסויים לזה, אם מוציאים את זה כחבילת Python, אותו הדבר. . . .בסוף אולי גם נאפשר להוריד את זה כ-PDF, יש כמה תצורות שונות שחשבנו לעשות את זה בהן, אבל הרעיון או  . . . 
    • חלק מהפידבקים שקיבלנו מהראיונות User-ים, כשנתנו לאנשים להשתמש בזה, היו שזה מעניין אבל צריך לשנות את הצורה.
    • נסינו לעשות הערכה של עד כמה זה משמעותי, מבחינת כמה עבודה זה יהיה בשבילנו, והבנו שלא באמת אפשר לעשות את זה במקביל למוצר הליבה שלנו
      • כלומר - היה את עולם ה-Monitoring, שעבדנו עליו כבר יחד עם חברות, כולל מוסד פיננסי אחד גדול
    • ואז ניסינו להבין האם אנחנו הולכים לעשות את זה עם הצוות הקיים במקביל והבנו שזו פשוט סטייה גדולה מדי, אז אמרנו ש”נשים את זה בבוידעם לכמה זמן ונראה”.
    • דווקא ההברקה הגיעה בהמשך, כשהבנו שיש פה פוטנציאל להשתמש באותו ה-Open Source הזה, שהמטרה שלו הייתה הקהילה והנגשה ולהיות שם - אפשר להשתמש באותה התשתית בשביל עולם ה-Monitoring
      • זה ידרוש מאיתנו שינוי ב-Monitoring, אבל בעצם זה מאפשר אסטרטגיית Open Core
      • זאת אומרת להגיע למצב שאם הקהילה מאמצת את ה-Open Source ורגילה ל-API - מקבלים פידבק ורעיונות ל-Check-ים וכו’ - אז שאחר כך, בצורה יחסית טבעית, אפשר להשתמש בזה ב-Production.
    • ברגע שהבנו שזה אפשרי, אז אמרנו אוקיי, יש פה פוטנציאל לעשות איזשהו שינוי חד
      • אז עשינו Hackathon ראשוני, ממש עם לינה במשרד וכו’ כדי  לבוא ולהגיע לאיזשהו מדגים ראשוני - וכבר אחרי איזה שלושה ימים של עבודה היה תוצר . . . קיבלנו פידבקים די חיוביים עליו.
      • עשינו איזשהו תהליך מאוד משמעותי של שלושה חודשים - ואז שחררנו את הגרסא הראשונית של ה-Open Source.

    (רן) אז מה יש היום? זאת אומרת, יש איזשהו מוצר Open Source שאפשר להשתמש בו, ומעבר לזה יש עוד אפשרויות בתשלום? איך זה עובד?(אורי) יש ספרייה . . . . יש . . .
    • (פיליפ) אז בוא נדבר רגע על מה שיש
      • קודם כל, הגרסא הראשונית של הספרייה הזאת של Deepchecks בעצם כוללת הרבה מ-IP שפיתחנו לפני כן, אבל בשינוי תצורה - זה מה ששוחרר בתחילת ינואר של השנה הזאת (2022).
      • יש את חבילת ה-Computer Vision - כלומר, מה שהוצאנו היה בשביל מידע שהוא טאבולרי (Tabular), וחבילת ה-Computer Vision שפיתחנו די מיד אחרי השחרור כי היה הרבה ביקוש לזה.
      • הוצאנו עכשיו כבר ב-Beta ,כלומר עכשיו אפשר כבר לחפש Deepchecks ב-GitHub ואפשר להשתמש גם בטאבולרי וגם בעולם של ה-Vision
      • העולם של ה-Monitoring דווקא - למרות שיש לנו מוצר שהוא קיים ו-Feature Reach ויש לו גם לקוחות ראשונים - אז אנחנו דווקא לא לוקחים עוד לקוחות לזה
        • כי תיהיה לנו, בעוד כמה חודשים, גרסא אחרת שמניחה שה-User-ים כבר משתמשים ב-Open Source אז זה יהיה Integrated, ואנחנו נצטרך לעשות איזשהו מעבר משמעותי של זה.

    (אורי) אז אם אני יכול לנסות להגיד מה הבנתי - היתה לנו איזושהי Core Technology שהבנתם, כשהתחלתם לדבר עם לקוחות, שכמעט עם כל לקוח יש קסטומיזציה (Customization) כבדה כדי לגרום לזה לעבוד אצלו. אני צודק?
    • (פיליפ) אני חושב שקסטומיזציה . . . בוא נגיד - כמעט באף חברה, או אף חברה שיש לה כמה מודלים ב-Machine Learning ,שזה רוב מי שזה באמת מספיק חשוב לו - או שיש או שצפויים להיות כמה מודלים של Machine Learning - כמעט לאף אחד לא יתאים מוצר מדף שהוא לא יכול לשנות את הקוד ולגעת בו, זה נכון.
    (אורי) . . . וגם כל אחד אמר “כן - אבל אצלי זה קצת אחרת” . . . “כן - אבל אצלי ה-Data מגיע ב-Stream ו . . . “
    • (פיליפ) כן - אבל זו לא הליבה . . . זו לא הליבה של למה עשינו את השינוי הזה.
    (רן) או שאתה יודע, בסופו של דבר - המכירות לא התפוצצו. היה מוצר, היה לו איזשהו גידול לינארי, אולי סביר - אבל בשביל Startup זה לא מספיק. Startup צריך ורוצה גדילה אקספוננציאלית, נכון? וזה לא השיג את זה.(אורי) כולם רוצים אקספוננציאלי . . . [המילה החמה של 2020-2021, לפחות עד הגל הבא . . . ](רן) יפה - אז הם חיפשו דרך לפרוץ.
    • (פיליפ) נראה לי שאני יכול להסכים עם האמירה הזאת - אבל אני חושב שזה הרבה יותר משמעותי מזה.
    • אני חושב שבעולם ה-MLOps [הרחבה ב-432 Carburetor 32: 2022 DevOps Predictions] - כשיש המון פתרונות והמון בלגן קצת מבחינת מה שאפשר להשתמש בו ומתי וכו’ - אז Positioning זה הדבר הכי חשוב.
      • כלומר, זה שיגידו את השם וידעו בדיוק איפה למקם אתכם וידעו מה המקום שלכם ומתי משתמשים ואיפה - זה הדבר הכי חשוב שיש.
    • עכשיו, גם אם המכירות היו עולות בצורה אקספוננציאלית וכו’, יש עוד שחקנים בתחום של Monitoring - אנחנו לא היחידים שעוסקים בזה.
      • אני חושב שמשהו שהתחלנו לראות, ואי אפשר היה לדעת בהתחלה - רק אחרי שזה התחיל להתייצב היה אפשר לראות שהרבה מהשחקנים, וגם חלק מהשחקנים שכבר ממש גייסו Round B וכו’, מתמקדים בשלב של חברה שכבר יש צורך בוער וצריך לפתור אותו עכשיו.
      • וחלק מהאסטרטגיה שתמיד עניינה אותנו הייתה להיכנס הרבה יותר מוקדם - ומשהו שאי אפשר היה לדעת זה שלמרות שיש כמה וכמה חברות בתחום הזה, אף אחד לא נותן מענה בשלב מאוד מוקדם.
        • כלומר - דווקא כשהמודלים ראשוניים, ועוד אין הצלחה מאוד משמעותית של המודלים של Machine Learning ואם כבר הייתה הצלחה אחת אז עוד לא יודעים מה יניבו הפרויקטים הבאים
        • אז דווקא בתוך עולם התוכן הזה היה יחסית Blue Ocean - שזה היה מאוד מפתיע.

    (אורי) אני חושב שמה שמדהים בכלל בעולם של Open Source - להבדיל מ-”Closed Source” או ממוצר מובנה - זה שאתה צריך לדבר עם מקבל ההחלטות  - כשמקבל ההחלטות יקבל את ההחלטה, סביר להניח על ה-Core Products שלו, על האם המוצר רלוונטי ל\לדברים שאני עושים ביום-יום והרבה מהם, ופחות על ה-Research שקורה כרגע באיזו פינה חשוכה בצד, שמישהו עובד על משהו . . . כי זה לאו דווקא מהחברות הקטנות  או מהסטארטאפים שעכשיו מתחילים עם המודלים הראשונים שלהם - זו יכולה להיות חברה גדולה, שכבר יש לה הרבה מודלים שרצים ב-Production וב-Core וזה, אבל יש מישהו בצד שעובד על הדברים הבאים. והבנאדם הזה, בצד, מנסה לזוז כמה שיותר מהר והוא מסתכל מסביב מה יש לו והוא אומר “מה, אם אני צריך עכשיו להגיע ל-CEO או ל-CTO, ולעבור את הרכש ולעבור את הזה . . . בשביל להשתמש באיזה משהו, ולא - זה יקח שנים . . . בוא, אני אקח פה איזו ספריית Open-Source שיש לי ואני אתחיל לעבוד איתה”. והוא מתחיל לעבוד עם זה, ולאט-לאט המוצר שלו גדל ותופס Traction ופתאום המחקר שלו מתחיל להתקרב ומתחיל להיות ה-Core בעצמו - וזו שיטת ה-Market Penetration, ה-Go-To-Market של עיקר חברות ה-Open Source.להגיד “רגע, אני לוקח עכשיו נשימה” - אני מתחיל עם כל “הקטנים”, האנשים שעושים Research בצד, בין אם אתה Startup חדש ובין אם אתה איזו מחלקת מחקר שרוצה לזוז מהר בתוך Corporate גדול.(רן) מה שאתה בעצם אומר לפיליפ זה שזה לא רק סטארטאפים - זה גם בכל החברות הגדולות . . . כל אחד שצריך עכשיו להילחם כדי למצוא תקציב יברך על מוצר Open Source, גם אם זה לא פותר לו את הבעיה במלואה - אז הוא יחפש את זה.
    • (פיליפ) האמת שזו נקודה די מעניינת . . . . אני לא יכול לדבר בשם כל האוכלוסיות, אבל את אוכלוסיית ה-Data Scientists ואוכלוסיית ה-Data Science Leads וכו’ אני כבר מכיר היטב - וזה עדיין הפתיע אותי לראות ב-Open Source . . . 
    • מי שיסתכל יראה שהייתה גדילה מאוד, גם ב-GitHub וגם ב-Downloads וכו’
      • כלומר - גם ב-GitHub Stars - היה Adoption מאוד משמעותי, וזה באמת לא הביא איתו רק את הסטארטאפים
      • באמת Enterprises מאוד גדולים גם אמרו “השתמשתי”, “אני אוהב את זה” ואת הדבר הזה והזה והזה.
      • לפעמים גם ממש מבקשים את אותו המוצר, שלפני זה היינו צריכים לריב קצת יותר קשה כדי בכלל להגיע ל-POC ועכשיו אומרים “אני ממש הייתי רוצה להשתמש ב-Monitoring שלכם - יש לכם להציע?” . . . 
      • תחכו כמה חודשים, וממש הסיטואציה התהפכה.
    • אז אני חושב שזה נכון - “ה-Researchers האלה, בצד” זה . . .
    (אורי) יום אחד זה יגדל . . . 
    • (פיליפ) זה ממש ה-Target audience, אנחנו ממש מכוונים עם ה-Open source . . .  
    • כמובן ל-Monitoring יש כמה וכמה User-ים, שזה חלק מהסיבה שזה מורכב להתחיל POC - אבל ה-Open Source מיועד ל-Machine Learning Practitioners
      • לפעמים קוראים לזה Data Scientists, לפעמים זה Applied Researcher - יש לזה כמה וכמה שמות . . . לפעמים זה ML Engineer . . . . אבל יש User מאוד מאוד מוגדר
      • לפעמים הוא “בצד, לבד” ולפעמים הוא או היא בחברה שזה בכלל  . . . . אין סיכוי שהם יקנו, כי זה לא בתרבות שלהם, אבל אחרי זה הם יעברו לחברה אחרת וכבר יהיו רגילים.
      • זה פשוט במספרים.
    • אנחנו גם רוצים . . . כלומר, זה ממש חלק מה”אני מאמין” שלנו - הוא לא רק לטובת החברה אלא גם קצת מהמקום שבאים ממנו, של לנסות לתת Value לקהל יותר רחב ממי שמשלם
      • זה לא רק איזה כלי שהמטרה שלו היא לקנברט (To Convert) את זה, וזה ממש חשוב לנו ולא יכולנו לעשות את זה בלי זה - אבל אנחנו מראש מצפים שזה יהיה רק חלק מה-User-ים של ה-Open Source שיקונברטו (Convert) בכלל.
      • כלומר, שחלק מה-Vibe הזה וחלק מזה שהקהילה - הקהילה המקצועית של Data Science וגם הקהילה הקצת יותר רחבה שיודעת שאנחנו פועלים ככה ושיש לנו כזו אג’נדה צדדית של תמיד לתת בחזרה לקהילה - אני חושב שזה גם מעלה את ההסתברות שירצו לעבוד דווקא איתנו, לעומת כל מיני חברות אחרות, שזה  בגדול “Talk to our Sales” . . . 
      • אז זה משהו שמשפיע גם על הדינמיקות הבין-אישיות, וזה ממש מורגש, כבר עכשיו.

    (אורי) אז בוא אני אעשה לך קצת Fast-Forward להיסטוריה שלכם, שעדיין לא נכתבה, בסדר? אז יצא Open Source ויתחילו לעבוד איתו אנשים ב-Research וזה . . . . ולאט לאט זה יגדל ויתחיל לתפוס Traction בתוך החברה של ה-Researcher-ים האלה - ופתאום יום אחד זה יגיע ל-CTO או ל-CIO והם יסתכלו ויגידו “רגע, מה זה הצ’יקמוק הזה שרץ פה על ה-Open Source? יש לזה אבא? יש לזה אמא? מה אנחנו יודעים על הדבר הזה? וזה וזה וזה . . . .”(רן) “למי אני משלם כדי לתקן את זה אח”כ?” . . . (אורי) בדיוק - “למי אני משלם כדי לתקן את זה?” . . . ואז הם יגידו “רגע, אבל יש להם גם Pro Suite, שאפשר לשלם כדי לקבל תמיכה” . . . . והנה הגיע ה-Go To Market של “ה-Pro Suite”, של ה . . . לא יודע איך אתם קוראים לזה, “ה-Enterprise version” או . . . .
    • (פיליפ) כן, זה “Deepchecks Pro” . . . אבל תיהיה גם גרסת Enterprise . . . .
    (רן) גם Deep וגם Pro? שמע, זה עמוק . . . .
    • (פיליפ) כן . . . אם המאזינים שלכם רוצים להציע שמות אחרים לגרסא בתשלום, אז אתם יודעים איך למצוא אותי . . . .
    (רן) כן . . . 
    אז נכון לעכשיו - אולי לא עבר מספיק זמן, אבל אתם חושבים שלקחתם פנייה נכונה בכיוון הזה?
    • (פיליפ) כן, זה כל כך מורגש.
    • קודם כל, בלי קשר למטריקות העסקיות, פשוט כיף ביום-יום . . . גם אני חושב שלי ולשיר, ש . . . 
    (רן) אתם הפכתם מחברה שמגדלת אנשי Sales Enterprise ל"מגניבים האלה”, “ההיפסטרים עם ה-Open Source” . . . (אורי) כן, אבל בוא - המשקיעים שלך לא שמעו את זה, בסדר? . . . . זו חברה, זה לא תחביב.
    • (פיליפ) נכון, זה לא תחביב - אבל זה משמעותי מאוד, כי בכל אינטראקציה עסקית, כשמנסים להזיז משהו, יש אנשים
    • ועוד שנייה לפני שנדבר על תהליכים ממש, Proper, כמו שמדברים על זה - אז זה ממש מורגש, כי בכמעט בכל מקום שמכיל Data Scientists אז מכירים את זה וראו את זה ונגעו בזה, וזה נותן Prior הרבה יותר גבוה לדבר הבא שרוצים לעשות
      • וזה לא “הנה אתה, מה אתה רוצה למכור לי?” - וזה משמעותי כבר מראש, עוד לפני שהם השתמשו.
    • עכשיו, אחרי שהם ישתמשו, אז כמובן שיש הרבה יותר סיכוי שירצו לעבור למשהו אחר, כל עוד זה פחות או יותר באותה משפחה ומשתמש באותם APIs וכו’
    • אבל מבחינת אסטרטגיה עסקית, בכללי - אני חושב שמה שרן אמר קודם, על גרפים שמתפוצצים וכו’ . . . 
    (אורי) טקטיקה של סוחרי סמים, בוא . . . [בדיוק בזמן לעונה האחרונה של Better Call Saul!] - “אחרי שהם ישתמשו, הם כבר ישלמו” . . . 
    • (פיליפ) אבל זה זה נכון - רק שזה “סמים בחינם” . . . .
    • אבל תמיד המטרה בדברים כאלה . . . תמיד צריך לוודא שלא לגמרי מרוקנים את כל העתודות של החברה מכל Feature שאי פעם אפשר לתת.
    • אבל מה שלומדים לאט לאט כשנכנסים לזה זה שממילא יגיעו Feature Requests כל כך משמעותיים מהחברות, עם כל כך הרבה עבודה כדי לגרום לדברים להיות Complied ולהתאים ל-User-ים וגם לUser-ים שונים ושירוץ ב-Production ואינטרציה לסוגי ה-Database-ים השונים וכו’
      • שה-Open Source לבד - זה אפילו לא “מי ייתן את ה-Support?” ו”מי יתקן את התקלה?” - זה ממש סט משלים של Capabilities שבלי זה הוא לא נותן מעטפת לכל החברה . . . .

    (רן) יש לא מעט Offerings, החל מלתת את כל ה-Feature-ים בחינם ואת לתת את כל השירותים מסביב בתשלום ו-Open Source וכו’ - ואני חושב שחברות מכל מיני סוגים הצליחו, זאת אומרת שזה לא שיש רק מודל אחד שיכול לעבוד.(אורי) אני פתאום חושב . . .רן, כשהתחלנו לעשות את הפודקאסט [דצמבר 2008] . . . (רן) היינו צריכים לבקש כסף?(אורי) לא . . . כשהתחלנו לעשות את הפודקאסט והתחלנו לדבר על Open Source וכל זה - לא היו חברות ישראליות שעושות Open Source . . . וכשדיברנו על זה קצת עם VCs וכו’ אז אמרו “לא, בישראל לא יודעים עוד איך לעבוד עם המודל הזה ו . . . “(רן) “Show me the money” . . . .(אורי) כן . . . והיום לדעתי יש כמה וכמה . . . (רן) אני חושב שקרה עוד שינוי טקטוני - פעם היה ממש ממש קשה למכור למפתחים בארגוני פיתוח . . . תסתכל עשר שנים אחורה: זה היה שוק סופר-סופר קשה, משקיעים התרחקו ממנו, מעט מאוד חברות קמו שם - והשוק היום הוא אחרת לגמרי. זה שוק ענק - אין לי את המספרים, אבל אני זוכר שקראתי וזה באמת שוק שעבר תהפוכות בעשר השנים האחרונות . . .(אורי) זה מעניין לראות מה יהיה היום, מה יקרה עכשיו . . . . עליית ריבית, את יודע . . . . אנחנו בעיצומו של איזשהו Down-term . . . (רן) אנחנו בעיצומו של גל - אבל לא קורונה . . . . [שינוי מרענן מהשנתיים האחרונות?](אורי) אתה יודע - אנחנו בשפל של הגל . . .  וזה מעניין מה יקרה. אתה יודע, זה יכול דווקא להיות מקום שיתן שוב מחדש תנופה ל-Open Source, כי הכסף כרגע לא זורם חזק לשוק הזה . . .
    • (פיליפ) אני רק אגיד במילה משהו על ישראל, בתוך כל הדבר הזה - אני חושב שממה שאני ראיתי, המגמה של Shift-Left, שמבינים שמקבלי ההחלטות הם למטה [כבר אמרנו פה שאפשר לצייר את העץ עם השורשים למעלה…] ובסוף כבר אין את האיש-מכירות שבא עם מזוודת מזומנים וחליפה וסוגר עם ה-C-Level ואז אומר למפתחים “הנה - בואו תשתמשו ב-Database הזה . . .”.
    • אני חושב שהמגמה של להבין את זה כן קיימת בארה”ב כבר תקופה מסויימת - אני לא אומר שזה לא ככה בעוד מדינות, אבל אני מכיר את זה די טוב מארה”ב ובעיקר מה-West Coast באמת.
    • אני חושב שזה קצת מפתיע שהטרנד הגיע לישראל רק לאחרונה, אבל באמת הוא הגיע וכבר רואים את זה בצורה מאוד משמעותית . . 
    (אורי) זה כבר כמה שנים . . . . אתה יכול לראות חברות שיצאו מפה - Redis הם חברת Open Source במקור שלהם [ד”ש מ-2014: 223 Fogcast 11 - Redis] ו-Elasticsearch התחילה פה בישראל [362 Elastic, distributed corporate with Uri Cohen וגם בגיקונומי  – שי בנון ואלסטיק]. צמחו מפה כמה חברות Open Source טובות, אז . . . אבל עדיין, כשאני אומר “התחלנו לעשות את הפודקאסט” זה לפני 14 שנים, זה  . . . תרגילי היסטוריה.
    • (פיליפ)  מבחינת המאפיינים של ישראל, אני חושב שזה ממש מתאים, כלומר - המון חברות ישראליות “שצצו” ב-15 שנים האחרונות זה מכירות B2B, ומתישהו המנכ”ל עובר לעסוק בעיקר במכירות ואז מגייסים מישהו . . . 
    • תמיד אהבו להתגאות בזה שהם ישראלים ו”אנשי מכירות מטבעם” וכו’ - אבל יכול להיות . . . 
      • הם יכולים להצליח - הרבה פעמים הטענות הן על זה שהם מצליחים בגלל המוצר, ודווקא יותר קל לאמריקאי Local to Local למכור.
    • דווקא זה שפשוט לייצר מוצר איכותי שמתאים עם גימור גבוה ו-Common Sense ודוקומנטציה (Documentation) ולהגיע למצב שהוא Self-Served בצורה טובה - זה משהו שממש תפור על היתרונות היחסיים של ישראל
      • וזה קצת מפתיע, כלומר לפחות מבחינת ה-Ecosystem של משקיעים ובוא נגיד שמה שמעודדים סטארטאפים לעשות והעצות שסטארטאפים נותנים . . . 
      • אני כן מרגיש שזה ממש לאחרונה - נגיד שמאז תחילת הקורונה - שיש עלייה מאוד משמעותית בדחיפה לשם
      • והיום כבר רואים חברות שמתחילות ככה - שאומרים “אני רוצה להקים חברה שמוכרת למפתחים, והנה אני מתחיל עם Open Source ובעוד חצי שנה אני אחשוב על לדבר עם VCs”
      • וזה ממש מיוחד כשזה ה-DNA . . .
    (רן) זה גם קצת מחביא את החסרון היחסי של ישראל - שזה המרחק מהשוק . . . Open Source מצריך פחות Face to Face ואתה פחות צריך להיפגש עם אנשים לארוחת ערב או לשחק איתם גולף, מצטער . . .(אורי) בכלל בקורונה כל העניין הזה הלך . . . . אנשים היו עושים פגישות עסקים בתחתונים . . .(רן) עלית עלי . . . לא שאני איש עסקים, אבל . . .
    • (פיליפ) לפחות זה דוחה את את הזמן שצריך אנשי מכירות.
      • זה לא אומר שאי פעם לא יצטרכו - הרבה חברות, גם Bottom-up, הרבה פעמים צריכות, אבל . . .
    (רן) . . .  זה אומר שכבר יש איזשהו Level of Trust, אז הרבה יותר קל למכור להם בתחתונים, אתה לא חייב את העניבה . . . 
    (רן) אנחנו מתקרבים ממש לקראת הסוף, ויש עוד נושאים שרצינו לדבר עליהם . . .(אורי) . . . והשיחה רק מתדרדרת . . . .(רן) . . . יש כאלה שבשבילם זו דווקא עליה ברמה . . .ועדיין - יש כמה נושאים שרצינו לכסות ולצערי לא נספיק היום, אבל מה שכן, רציתי לשאול מה אתם מחפשים? אני מניח שאתם מחפשים משתמשים - אנשים שיכירו את המוצר . . . אתם מגייסים? מפתחים? Data Scientists? מה מצבכם?
    • (פיליפ) אז כמובן שמגייסים את כל סוגי האנשים, גם Product ו-Frontend וגם עוד  . . . .
    (אורי) מפעיל ציוד מכני הנדסי?
    • (פיליפ) בדיוק, מפעילי צמ”ה . . . אבל כן  - אני חושב שהדבר הכי משמעותי שאנחנו רוצים עכשיו זה פידבק על המוצר - 
      • אנחנו רוצים שהקהילה גם תשתמש ותאמץ וכו’, אבל גם לקבל ממש בחזרה - “חסר לי ה-Check הזה”, “חסרה לי האינטגרציה עם הדבר הזה” . . . 
      • ואנחנו ניישם די מהר
    (רן) והמשתמש הטיפוסי הוא Data Scientist או Machine Learning Engineer או מישהו אחר שנמצא בתחום  -שנמצא בשלבים יחסית מוקדמים של הפרויקט, זה מדויק להגיד?
    • (פיליפ) כן, למרות שזה רלוונטי גם לשלבים מתקדמים - אבל זה רלוונטי כבר מהשלבים המוקדמים.
    (אורי) אם זה יעזור לתפוס את הבעיה  - אז לא משנה השלב . . .(רן) לא משנה מתי . . . . אני רק אומר שלפעמים כשאתה כבר נמצא איזה שנה-שנתיים בתוך פרויקט אז לפעמים כבר יש לך הרבה מאוד הנחות מוקדמות שעשית ואולי כבר יש לך אינטגרציות - וזה הולך ונהיה  יותר מורכב להכניס עוד איזשהו כלי. בשלבים הראשונים זה פשוט Plug & Play - אתה יודע: מכניס-מריץ-ורואה מה יוצא - וזה קצת יותר קל.
    • (פיליפ) בהחלט אפשר להבין את זה, אני חושב שזה תלוי בנסיבות
    • אבל פרויקט שהוא מתקדם והוא בשלב של ה -Re-Train אז זה מאוד מעניין וגם בכזה שאין עליו ניטור משמעותי זה מעניין . . .
    • אבל בוא נגיד שאפשר כנראה למצוא מקרים שזה די מתקדם וכבר אין מה לבדוק.

    אז פיליפ - אחלה, כיף שבאת, שיהיה לכם בהצלחה, !Viva la Open-Source . . . להתראות.
     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    42 min
  • 437 Refactoring (and Observability) with Omer van Kloeten
    [קישור לקובץ mp3]בפרק זה אנחנו מארחים למחרת יום הפאי את עומר ון קלוטן לשיחה על Refactoring ו-Observability .

    (רן) ולפני - בוא נכיר אותך, עומר - ספר לנו קצת על עצמך
    • (עומר) אז אני עומר, כיום עובד ב-Forter, משהו כמו 21 שנים בתעשייה.
      • בהתחלה בצבא - ואז ערימה של של סטארטאפים בכל מיני שלבים, מגוון של תפקידים, גם בחברות גדולות . . .
      • תפקידי פיתוח, הובלת פיתוח, ניהול בכמה פעמים
      • במקרה גם כמה פעמים Product, לא בכוונה . . . .  אבל היה מצויין וכיף.
    • אני מחשיב את עצמי כ”ג’ינרליסט” - מאוד נהנה מהכל, כי הכל מסקרן והכל כיף, אז למה לא?
    (רן) הזכרת שהיית פעם Product - אז אני לא יודע אם יצא לך לראות, אבל רץ ברשת סוג של סרטון שבו רואים את איש ה-Product, כשיש לו איזשהו סיוט או מחשבה על “רק שהמפתחים לא יעשו Refactoring” . . . . זה הסיוט של כל איש מוצר, כשהמפתח אומר “רגע-רגע-רגע - אני צריך לעשות Refactoring!” . . . .אז על זה באנו לדבר היום.
    • (עומר) כן, באנו לדבר היום על הפוסט-טראומה של אנשי ה-Product וה-Refactoring . . . .

    (רן) אז מפתח מדופלם, בוא נתחיל בזה - קם בבוקר, מסתכל על הקוד ואומר “משהו פה לא נראה לי . . . . משהו פה מסריח - אני חייב לעשות לו Refactoring” . . . .
    • (עומר) כן, כולנו היינו בסיטואציה הזאת, וזה פשוט “נראה נכון” - יש  את ההרגשה הזאת בבטן, יש את הקטע של “אני חייב לשנות את זה - כי זה לא *נכון*” . . . 
    (רן) “הכימוס אינו נכון” . . . . (Encapsulation)
    • (עומר) וואו, כמה זמן עבר מאז ששמעתי את זה בעברית . . . 
    (רן) חיכיתי עד שאוכל לשלוף את המילה הזאת . . . .
    • (עומר) אז אני חושב שאתה צודק - אנשי ה-Product, אנשים שהיו מספיק זמן ב-Product, נמצאים באיזושהי פוסט-טראומה כזאת, של “רק שאנשי הפיתוח לא יבואו ויגידו לי “אני חייב לעשות Refactoring בקוד” . . . .
    • כי בתכל’ס - מה הם מקבלים מזה? הם מקבלים יותר Delays בזמן של המוצר . . . .

    (רן) אז בוא נלך רגע ונעשה איזשהו מסע בזמן . . . . צריך להגיד, קודם כל, שאנחנו מדברים כאן בשיחה הזאת בעקבות איזשהו בלוג-פוסט שכתבת, ונשים אליו לינק [הנה], ששם אתה שוטח את התיאוריה - הקצרה, אני חייב להגיד, אבל עניינית.בוא לרגע ניזכר באיך היה כשהיינו מפתחים צעירים - הסתכלנו על קוד ואמרנו “רגע, זה עובד - אל תיגע בו!” . . .  אל תיגע בכלום, זה עובד! ועכשיו מתחילים . . .
    • (עומר) אז אנחנו מתחילים מהנקודה של “גרמתי לדבר לקרות” - שזה נהדר
      • אוקיי - יש את הטקסט שמופיע על המסך וזה עובד.
      • זה ממורכז בצורה הנכונה ובצבע הנכון - לא נוגעים!
      • יש איזשהם תנאים - צריך לשים את זה במקום מאוד מסויים, בחדר מוגן מרוחות וזה - שלא יזוז יותר מדי המחשב, אחרת זה לא יעבוד יותר.
    • אבל אחרי זה, ככל שאנחנו יותר, עם הזמן,  עסוקים עם קוד ורואים Code-bases שונים, אנחנו מתחילים לפתח יותר תחושה לגבי מה זה “קוד טוב” או יותר נכון - מה נראה כמו קוד שאנחנו מכירים אותו ומרגישים איתו בנוח
      • יש את ה-Pattern-ים שם, שאנחנו מרגישים איתם בנוח
      • שמענו ממישהו שעבדנו איתו שאם כותבים משהו פעמיים, אז צריך להוציא את זה לפונקציה משותפת וזה נשמע לנו ממש הגיוני לא לכתוב את אותו הדבר פעמיים, כי אז  יש לנו פעמיים את אותם באגים . . . 
        • אוקיי, אז נעשה את זה . . . .
    • ואז אנחנו יותר ויותר מפתחים את האינסטינקטים האלה של מה שנראה לי “קוד טוב”.
    • ואז[!] הגעתי לנקודה ש”אוקיי, הקוד הזה הוא כבר זוועה . . . .” - הוספנו עוד פיצ’רים ועוד פיצ’רים ועוד פיצ’רים, ואני חייב עכשיו לעצור הכל, לשמוט את הכל מהידיים ולהגיד לאנשי ה-Product “עכשיו חייבים לעשות Refactoring!”.

    (רן) אז בוא שנייה נעשה פסיכואנליזה של הסיפור הזה, ברשותך . . .  בעצם פיתחנו פה איזשהו Skill טכני, נכון? פיתחנו Skill טכני של להסתכל על הקוד ולהגיד מה אפשר לתקן בו או מה לא טוב בו - ואנחנו יודעים לעשות גם את זה: הזכרת Design Patterns והזכרת  . . . . לא הזכרת כימוס אבל אני הזכרתי . . . . הזכרת Usability והזכרת מודולריות וכל זה - יש לנו את היכולת הטכנית לעשות את זה.עכשיו - כל דבר נראה לנו כמו מסמר . . . יש לנו פטיש ביד, וכל דבר נראית לנו כמו מסמר . . . רק רציתי להציג את הבעיה.(אורי) אני חושב שחוץ מכלי - יש לנו כלי נוסף ביד, או Skill טכני - יש גם תחושות, זה הרי הכל מתחיל מתחושה. פעם קראתי איזשהו Post על איך מודדים Tech-Debt - סובייקטיבי לגמרי . . . .(רן) מדד ה-WTF-per-Minute, כמובן  . . . . (אורי) כן, פשוט שאל את המפתח מה הוא חושב על הקוד שלו . . . Over-time, זה כנראה יגיע לרמות שבהן אתה תגיד לו, או שהוא יגיד בעצמו, שהוא צריך לטפל ב-Tech-Debt הזה  . . .
    • (עומר) אז אני חושב שמילה שמאוד מגלמת את זה היא בעצם “חוש אסטטי” . . . . 
      • מבחינת המפתח, האסטטיקה היא הרבה פעמים מאוד סובייקטיבית, ואתה אומר “לי זה לא נראה נכון”
        • ומישהו אחר היה יכול להסתכל על אותו הקוד והיה אומר “אוקיי, לי זה כן נראה נכון” - ואז הייתם מנסים להתחיל To un-pack it, להבין למה זה לא נכון.
    • אז הרבה מאוד פעמים, יש דברים שהם Idiom-טיים לשפה מסויימת . . .
    (אורי) אני חושב שאת זה ה-Product Manager יגיד לי, אם זה נראה נכון
    • (עומר) זו צרה אחרת לחלוטין . . . .
    • אבל יש דברים שהם Idiom-טיים לשפה מסויימת - ואם אתה מגיע משפה אחרת אז פתאום החוש האסטטי שלך לא מסתדר עם השפה החדשה הזאת.
      • אם אני כתבתי עכשיו המון המון Rust ואני הולך לכתוב JavaScript עכשיו, אז אוי . . . 
    • לי אישית זה קרה, אגב, במקום שבו קפצתי מ-#C ל-Java, שבו התחלתי להסתכל ואמרתי שחסרים לי הדברים היותר . . . נניח לינק, למשל, או עבודה קצת יותר פונקציונאלית.
      • אז עשיתי דברים שהם סופר לא-Idiom-טיים ל-Java - וזה היה נוראי.
        • כי כל מי שעבד איתי עבד ב-Java והכיר את הדברים ב-Java ואמר לי “למה אתה קורא ל-Interface-ים שלך עם “i-משהו” בהתחלה?” . . . . אוקיי.
    (רן) כן . . . דרך אגב, אני רואה את זה הרבה פעמים עם אנשים שמתחילים לכתוב Clojure, והם כותבים Java - רק עם הרבה מאוד סוגריים . . . . ולוקח הרבה מאוד זמן להיכנס לראש הפונקציונאלי של שפה כמו Clojure, כדגומא, אז אני מסכים, זה קורה לפעמים במעבר בין שפות.
    אבל אמרת פה משהו - נסתכל על שני המפתחים, ונניח ששניהם מאוד מנוסים, ולאחד זה נראה טוב ולשני זה נראה לא טוב: אני חושב שהרבה פעמים מה שקורה זה לא בדיוק זה - גם כשלשניהם זה נראה לא טוב, המחלוקת היא עד כמה זה רע . . . יש אחד שבעיניו זו קטסטרופה ויש אחד שבעיניו זה דווקא בסדר, זה די נסבל . . . “בוא, יש לנו פה מוצרים להוציא החוצה מהדלת, בוא לא נתעכב על זה” . . . .(אורי) . . . וגם יש את העומק של ה-Refactoring . . . . בין “יש לי פה איזה Class שצריך לתקן, סבבה” לבין “הכל קטסטרופה, צריך לכתוב עכשיו 15 Service-ים מההתחלה”  . . .(רן) היה פעם סרטון כזה של אישה שיוצאת מהבית ואומרת לבעלה “בבקשה תחליף את המנורה בחדר השינה”, והיא חוזרת הביתה בסוף היום ורואה אותו כשהוא שוכב מתחת למכונית . . . שואלת “מה אתה עושה?” והוא עונה “אני מחליף את המנורה”, ואז זה מתגלגל לזה שכשהוא רצה להחליף את המנורה הוא חיפש איזשהו מברג ולא מצא אז פתח את המגירה וראה שם משהו מקולקל . . . בקיצור, דבר הוביל לדבר, ו-Refactor הוביל ל-Refactor הוביל ל-Refactor ובסופו של דבר הוא מוצא את עצמו מתקן את המכונית כדי להחליף את המנורה . .  .
    • (עומר) האמת שאני מאוד אוהב את המונח הזה של Yak Shaving - “למה את מגלח היאק הזה? - כי צריך, כדי שזה יעבוד” . . . .

    (רן) אז עצרנו בנקודה שבה כאילו התבגרנו קצת - יש לנו את ה-Skill, אנחנו יודעים איך לכתוב קוד בצורה יותר טובה. עכשיו, יש לנו את “האינסטינקט החייתי הזה” של לכתוב קוד בצורה טובה - כל פעם שאנחנו רואים קוד רע אנחנו רוצים לתקן אותו. אבל יש פה בעייה . . .
    • (עומר) יש פה בעייה מאוד גדולה, כי זה אומר שה-Business עוצר . . .
    • אוקיי, אתה בא ל-Product או לראש צוות ואומר “אני חייב לשכתב את הקוד הזה - כי הוא לא טוב”.
      • השאלה הראשונה היא מה זה אומר, “לא טוב”? . . . 
      • אז אפשר להסביר מה זה לא טוב - לא כתוב בצורה הנכונה כי כך וכך או לא מודולרי מספיק ודברים כאלה
      • אבל פה, במשוואה של ה-ROI, תיארנו בעצם מה ה -Return  שלנו - למה לנו זה חשוב ומה זה עוזר לנו
        • ונתנו איזושהי הערכה ל-Investment, לכמה זמן שזה יקח לנו
        • “ייקח לי חודש לעשות את זה, כדי שהקוד יהיה יותר מודולרי  - ואני אוכל לישון יותר טוב בלילה”.
      • אוקיי, סבבה - “זה לא Business Goal של החברה שלנו - למה את רוצה לעשות את זה?”
    • (רן) אלא אם כן זו חברה שעוסקת בחלומות או משהו כזה . . . .
      • (עומר) או בזה שהאנשים שלה ישנו בלילה
        • אגב - הלוואי שכל חברה הייתה עוסקת גם בזה . . . 
        • [רגע . . . פודקאסט עם פרסומת למזרונים? זה עוד לא היה לנו . . . ]
    • (רן) אבל זה לא יעזור לנו לעצור יותר Frauds, כמו שעושים ב-Forter, זה לא עוזר לנו לעשות הצעות תוכן יותר טובות כמו שעושים ב-Outbrain - או לפחות לא הצלחנו להוכיח את הקשר, או שלא הצלחנו לשכנע שיש קשר.
      • (עומר) נכון
      • הקטע הוא שבנקודה מסויימת צריך להתחיל להגיד למה זה שווה לנו, להשקיע את הזמן הזה . . . .
        • למה זה שווה לנו לבוא ו-Explicitly להניח דברים אחרים בצד, כדי לעשות את הדבר הזה.
      • אז דרך אחת, למשל, מאוד מאוד חיובית לעשות את זה היא לבוא ולהגיד שאני יודע - דיברתי עם ה-Product Manager - ואני יודע שהפרויקט הגדול הבא שלנו הוא להוסיף את הפיצ’ר של, לא יודע, “לישון יותר טוב”, אם כבר עסקנו בחברות שינה.
        • ואני יודע שהקוד שלנו, אם נצטרך לעשות את זה - זה יקח לנו הרבה יותר זמן
        • מה שאני רוצה לעשות זה להכין אותנו לדבר הזה, כדי שאחר כך יקח לנו פחות זמן.
      • או לחילופין - אני יודע שיש לנו כרגע כמות מאוד מאוד גדולה של Toil, שזו בעצם העבודה הידנית הזאת, הקטנה, שחוזרת על עצמה, ואנחנו משקיעים בזה הרבה יותר זמן על חשבון משימות של לקדם את עצמנו
        • ואם אני אעשה את ה-Refactor הזה אז אני, By Definition, אקטין את העבודה הזאת.
      • ברגע שמציגים את זה ככה, קורים שני דברים - 
        • דבר ראשון - האמירה של “אני חייב לעשות את ה-Refactor הזה” נלקחת הרבה יותר ברצינות, כי ההבנה היא שמסתכלים על זה מתוך משהו הרבה יותר רחב.
        • והדבר השני הוא שזה גורם לנו להתחיל לחשוב בצורה טיפה אחרת - על איך שאנחנו תופסים את הבעיה הזאת.
          • אנחנו כבר לא תופסים אותה כבעיה “אסטטית”, אנחנו כבר לא תופסים אותה כבעיה של “אנחנו לא עומדים ב-Patterns או ב-Idioms של מה שאנחנו עובדים עליו”
          • אלא אנחנו תופסים את זה כבעיה של איך שאנחנו נותנים את ה-Value הזה, כי זה מה שאנחנו עושים - אנחנו מייצרים משהו.

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

    (אורי) אז השאלה שלי היא “למה עכשיו?” . . . . כאילו אוקיי - אתה רוצה שאחר כך יהיה לך יותר קל לרוץ ולכתוב את הקוד - אבל עכשיו? זה הדבר הכי חשוב?
    • (עומר) אז זהו, שזה לא עניין של “הדבר הכי חשוב” - זה עניין של להכנס לתוך סט השיקולים האלה, של מה הם הדברים החשובים ולנסות לשבת ביחד ולהבין ביחד עם Product האם באמת זה תואם מספיק.
    • כי בסופו של דבר, העבודה הכי אפקטיבית שראיתי אי פעם עם Product היא לא עבודה של ספק-לקוח - זו העבודה הכי גרועה שראיתי  . . . 
      • הכי טוב זו עבודה של Partnership - אתם הולכים יד ביד לכיוון אחד שמאוד מובן לכולם
    • ברגע שיש את ההבנה הזאת, אז גם Product יותר משתפים את הפיתוח בלאן אנחנו הולכים ולמה, וגם הפיתוח בא ואומר “אנחנו מבינים לאן אנחנו הולכים ולכן אנחנו מביאים דברים שאולי אתה, כ-Product, לא היית מבין, אבל אנחנו מבינים שהם יקדמו אותנו לכיוון הזה”.
    • כמובן שיש גם . . . כולנו בני אדם ולכולנו יש את החוש האסטטי שלנו ואנחנו צריכים לחיות עם מה שאנחנו בונים - אנחנו בונים משהו.
      • אז יש דברים שאנחנו נעשה כי הם קטנים והם חשובים והם נקודתיים - כמו כל הדיבור על Boy Scout Rule של “סיימתי את העבודה שלי במקום מסויים אז אני אשאיר אותה יותר יפה ממה שקיבלתי אותה”.
        • אז אני אוסיף עוד טסטים ואני אוסיף עוד דוקומנטציה (Documentation) במקומות הנכונים, אני אבין שהשארית-קוד הזאת הייתה לא במקום ויש לי את המרווח נשימה לעשות את זה
      • אני לא מדבר על דברים כאלה . . . . אני מדבר על דברים ש-Explicitly צריכים זמן, הקצאת זמן בשבילם.
    (אורי) אוקיי . . . (רן) אני אשחק לרגע את פרקליט השטן - אתה מכיר את זה ש . . .שוב, נסתכל לרגע על יחסי הגומלין שבין Product לבין פיתוח - אני שואל אותך כמה זמן יקח ה-Feature, ואם בא לך לעשות אותו אז אתה אומר “יומיים” ואם לא בא לך לעשות אותו אז אתה אומר “שבועיים”, נכון?  . . . . זה כלל-אצבע, זה א-ב של פיתוח.
    • (עומר) אבל למה אתה מגלה? . . . רן, אל תגלה, את כל הסודות אתה עכשיו פותח . . .
    (רן) אל תדאג  - אין מנהלי-מוצר שמקשיבים לנו . . . . אז זה אותו הדבר ב-Refactoring - אתה אומר “תקשיב, איש-מוצר יקר: אם אני אעשה את ה-Refactoring הזה אז אחר כך הכל Unicorn-ים ו-Rainbows . . .  הכל פה יהיה מדהים, כל Feature - בשנייה אני מטיס לך אותו”. אוקיי - אבל למה שאיש המוצר יאמין לך? זאת אומרת, אתה יודע - לפעמים אתה גם טועה, בוא . . . . לפעמים אנחנו עושים Refactor וזה לא בדיוק מה שחשבנו שהולך לקרות . . . 
    • (עומר) כן, חד-משמעית . . . אז פה נכנס האלמנט של היחסים בין פיתוח לבין Product.
    • התחלנו, בתכל’ס, מזה שאמרנו שכל Refactoring הוא בעצם Trigger ל-”PTSD של Product”, כי הם חוו את הדברים האלה, כמו שסיפרת
      • מישהו אמר “אה, זה Refactor של יומיים” - ואז הצוות היה מושבת לחודש.
      • כולנו ראינו את הדברים האלה . . . .
    • הפואנטה פה היא לייצר את האמון ההדדי הזה, את ההליכה יד-ביד הזאת - וברגע שיש את ההליכה יד-ביד הזאת, מה שקורה זה כל מיני אפקטים מאוד נחמדים
      • למשל - יותר קל להודות בכישלון . . . אנחנו ביחד, כי אנחנו תומכים אחד בשני וזה לא עניין של “למה לא הבאתם לי את ה-Feature הזה תוך יומיים כמו שאמרתם שתביאו אותו!”, אלא יש את היד-ביד-יות הזאת.
    • עוד דבר שזה עושה זה שזה מקטין את ה-Feedback Loop - 
      • זה אומר שבמקום שאני אגלה “אה, רגע - ה-Refactor הזה היה אמור לקחת יומיים ועכשיו הוא לוקח חמישה ימים” - אני לא אגלה את זה כשיגיעו החמישה ימים, אלא אחרי שלוש שעות של עבודה על ה-Refactor אני אגיד “יש מצב שאני חושב שזה יותר גדול”, ואני אתן נגיעה קלה בכתף של איש ה-Product שלי ואגיד “תקשיב, יש מצב שזה טיפה יותר גדול ממה שחשבתי . . . . בוא נדבר על זה שנייה”. 
        • [הטלפון מהמוסך . . . .]
      • ופה אנחנו נכשלים בקטן - ואנחנו נכשלים כל הזמן
      • והאינקרמנטים (Increment) הקטנים האלה אומרים שהכשלון פחות כואב, ולכן פחות נורא להיכשל בדברים כאלה, כמו הערכות זמנים ל-Refactoring או כל החלטה שיש.
    • אני חושב שמשהו נוסף שנגעת בו ומאוד חשוב לי לשים על השולחן זה שכשמערכת היחסים היא לא מספיק טובה אז יש את אותו “אפקט מצנן”, אותו Chilling effect, של “אמרתי שזה יקח יומיים - אם אני רוצה לעשות את הדבר הזה אז זה ייקח לי יומייים ואם אני לא רוצה לעשות את הדבר שיקח לי יומיים, אז אני אגיד שזה ייקח חודש”.
      • זה האפקט המצנן, זה בגלל שאני יודע שאם אני אגיד “חודש!” אז זה “לא” ואם אני אגיד “יומיים!” אז זה “כן” - ואחרת אני לא אקבל את הזמן לזה.
      • ואם אני לא אקבל את הזמן לזה, אז אני צריך להתחיל להתעסק עם טקטיקות ועם אסטרטגיות  של “איך אני עושה את הדברים האלה?”, איך אני כן מתחכם כדי לקבל את מה שאני רוצה . . .

    (אורי) אז אני יכול להגיד על העניין הזה שני דברים  - קודם כל, גם ל-Product יש Debt . . . לפעמים אתה פותח איזשהו Dashboard או איזשהו מוצר או משהו כזה, ואתה רואה שזה Patch על Patch ואתה רואה שזה לא  . . . יש גם דבר כזה שנקרא “Product Debt”, ולפעמים הם מבינים את זה והם מבינים שהם צריכים זמן לזה ואפשר לשים את זה גם כחלק מהשיחה: “זה שאתה עושה לי פה עכשיו re-design של כל ה-UI זה לא כי זה יקדם אותנו לאנשהו אלא כי יש לך Debt, מה לעשות” . . . .והדבר השני שייך להערכות הזמנים שדיברת עליהן - אני חושב שהרבה פעמים, לנו - בתור הנהלה - היה מאוד קל לתת איזשהו General Rule, אוקיי? ה-General Rule הוא 20% מהזמן, או כמה שאתה חושב, סביר להניח שזה יהיה בין 20% ל-30% - שאתה נותן ל-Tech-Debt, ולפעמים יש גם “Organizational Debt” כזה, שהוא לא של הצוות אלא הוא בכלל של כל הארגון - לא יודע, נגיד שרוצים להחליף איזושהי ספרייה או שרוצים להחליף איזשהו Pattern לרוחב כל הארכיטקטורה. לדברים האלה, ממש ההנהלה צריכה לתת את מסגרת הזמן - ואז יותר קל לאנשים להבין “אוקיי, אני בסדר או לא בסדר”. השיח עם ה-Product מתקיים על מסגרות זמן מוגדרות מראש, ואני חושב שזה גם נותן ל-Engineers תחושה שגם ההנהלה מבינה שאיכות החיים שלכם, בתור מפתחים, חשובה.
    • (עומר) אני מסכים לחלוטין - אני חושב שההסתכלות הזאת . . . נניח, אמרת, 20% אם נצמד למספר הזה - 20% זה טוב משני כיוונים - 
      • 1 - כמו שאמרת, זו אמירה של ההנהלה, Explicitly - אנחנו יודעים שיש דבר כזה Technical Debt ודומיו, ויש זמן שמוקצה לזה.
        • זה לא שחייבים למלא את הזמן הזה וזה גם לא שאם תעברו אותו טיפה אז יפלו השמיים
        • אלא יותר אמירה של “זה בערך מה שהיינו מצפים שתשקיעו, מתוך כמות הזמן ה-Overall-ית”, לכמה באמת להשקיע בזה.
      • אני אהבתי את זה שדיברת באמת על Debts אחרים, על חובות אחרים
        • מה שקראת לו Organizational Debt - אני בדרך כלל קורא לו Architectural Debt, כי Organizational Debt זה יותר הסתכלות שלי של - וזה נושא אחר לחלוטין - של כמה אנחנו רחוקים, כמו הארגון רחוק מהארכיטקטורה . . . .
        • כמה אנחנו צריכים לעשות Alignment בארגון כדי לקבל ארכיטקטורה יותר לכיוון שיהיה פחות Friction במקומות בין-ארגוניים יותר, עבודה יותר יעילה . . . .
        • אבל זה נושא  . . . .
    (אורי) כשהארגון מספיק גדול, אין לך ארכיטקטורה אחת, אז זה כבר  . . . . זה הדברים שקשורים לארגון.
    • (עומר) נכון, אבל ברגע שיש לך . . . אנחנו ניכנס לזה? בכיף למה לא . . . .
    • כשיש לך את המספר-ארכיטקטורות האלה, אז אתה צודק לחלוטין - יש לך כמה ארכיטקטורות’ ולא רק שיש לך כמה ארכיטקטורות,  יש לך גם כמה Perceptions שונים לאותה ארכיטקטורה . . . .
    • אבל אז אתה אומר “אוקיי, סבבה שיש לי את זה - אבל יש לי עכשיו ארגון, שבגלל שהוא בנוי בצורה אחרת מהארכיטקטורה כפי שהיא, As-perceived, אז זה מייצר Friction” . . . .
      • כי יש לי צוותים שעובדים בדיוק על אותו Code-base - ואחד מהם הוא ה-Owner והשני הוא לא ה-Owner
      • או כששניהם ה-Owner פתאום, שזה מוזר לאללה . . . . אבל בסדר.
      • אבל זה נושא בפני עצמו . . . 

    (רן) אז בואו נחזור שנייה ל-Refactoring, ונעשה פה איזשהו סיכום ביניים -  אתה בעצם פיתחת איזשהו מודל מנטלי שבו אתה יכול להעריך האם נכון או לא נכון לעשות Refactoring. ספר לנו עליו . . . 
    • (עומר) יש פה כמה גורמים שאנחנו רוצים להכניס לתוך ההחלטה של האם באמת לעשות . . . מה ה-Return על ה-Investment שלנו בלעשות את זה.
    • ויש פה כמה דברים שאנחנו רבה מאוד פעמים לא מסתכלים עליהם בכלל, כמו למשל מה הסיכון בזה שאנחנו נעשה את ה-Refactor הזה?
      • כי הרבה מאוד פעמים אנחנו עם ה-Blinders שלנו אומרים “זה חייב להיות ככה - וזהו!”
        • “כי א-ב-ג”- - לא משנה כמה טוב אתה זה . . .
      • אבל אם אנחנו עושים את זה, אז יכול להיות שאנחנו מכניסים פוטנציאל לבאגים, אולי אפילו ב-Business Logic 
      • יכול להיות שאנחנו מכניסים טכנולוגיה חדשה, שלא השתמשנו בה עד עכשיו - ואנחנו לא יודעים איך לתפעל אותה ב-Production.
      • זה בעצם ריסק של לעשות את זה
    • לחלופין, יש גם את הריסק של לא לעשות את זה - מה קורה אם אנחנו עכשיו לא עושים את ה-Refactor הזה, או עכשיו או אחר כך או יותר מאוחר וכו’
      • מה אנחנו הולכים להפסיד פה? יכול להיות שיש לנו ריסק גדול יותר על הערכות זמנים? לגיטימי לחלוטין
      • יש ריסק גדול יותר אם נגיד שהייתה לנו התחייבות כלפי לקוח גדול - כי אנחנו משרתים Enterprise Customers? - יש ריסק, כי יכול להיות שאנחנו לא נצליח להוציא את ה-Feature הזה בזמן
      • יש ריסק . . .ננסה לתת אותו במילים או כמותית או משהו שעוזר לנו טיפה . . . .
    (אורי) יש גם את הקטע של “בוא נשאיר את ה-Refactoring הזה לאחרי ה-Release . . . .”
    • (עומר) נכון . . . 
    (אורי) . . . וזה מן זמן כזה שלא קיים, כי סיימת את ה-Release ומיד מתחיל ה-Release הבא . . .
    • (עומר) . . . “גרסא 2 לא קיימת” . . . . זו האמירה הקלאסית הזאת.
    (רן) אלא אם כן אין לך לקוחות . . . כשאין לקוחות הכל טוב . . . .
    • (עומר) כן, וזה . . . .
    • כן יש את האמירה של “לשים את הזמן הזה בצד”, אחרי ה-Release - 
      • אם אנחנו מחליטים שאנחנו עושים את זה “Quick & Dirty” לפעמים, או דברים כאלה.
      • אבל שם צריך לבוא Buy-in אמיתי, מההנהלה - אמירה של “אנחנו מכירים בזה שבגלל שאנחנו מגיעים ל-Business Goal הזה במהירות גבוהה, יהיה לנו . . . ההגעה תיהיה בנקודה א’, ורק בנקודה ב’ סיימנו את זה באמת כמו שצריך”.
      • אבל לא יודע עד כמה זה עובד בפרקטיקה . . . 
    (אורי) אני רוצה רק להגיד שיש פה את הלוח הזה . . . לא משנה, זה איזשהו שינוי מאוד גדול - שאגב, הכרזנו עליו ב-Outbrain בשבוע שעבר - שקשור לאיך להביא דברים שעושים Impact גם קדימה, להתרכז על ה-Impact וכו’ - ופה האדום-כחול-ירוק הזה אלו שלושה שלבים של Crawl-Walk-Run - כשב-Crawl ו-Walk אתה בגדול מנסה דברים ורואה שיש להם Impact, וב-Run אתה  . . . רן! אהלן . . . - (רן) היו קוראים לי “F5” בגן . . . - (אורי) אבל ב-Run אתה, בעצם, “מהדק” ומכין ל-Production  . . . אז יש לך אפשרות לעשות . . . כשאתה מגיע ל-Run, לגיטימי לזרוק את כל הקוד ולבנות אותו מחדש, בגלל שהוא עושה את מה שאנחנו רוצים, אבל כשאתה מביא משהו ל-Production אז תעשה אותו טוב . . . 
    • (עומר) כן, גם הרבה מאוד פעמים ה-Technical Debt נצבר מהנחות שלנו, שהיו לא נכונות . . . 
      • בין אם זה הנחות Product-יות או הנחות Bussiness-יות או הנחות טכניות
    • וכל פעם אנחנו מוסיפים עוד איזושהי שכבה של Complexity - ומתישהו צריך לקלף אותן ולהגיד “אוקיי, העולם נראה שונה ממה שהוא נראה שחשבנו כשהתחלנו - בואו נשנה את הקוד To Match that”.
    • ואני מאוד מבין מה אתה אומר - אני חושב ש . . . משהו שמאוד תופס לי את העין באותו לוח שהמאזינים לא רואים אותו [!] זה Sustainability at Scale . . . .
      • שאני חושב שזה - לפחות אצלנו, פנימית, דיברנו על  “מהו GA למוצר?”
      • ולקח לי הרבה זמן להגיע לזה שאני חושב שהדבר הכי הגיוני זה שזה Sustainable at Scale
      • כי אם אתה “יורק דם” על כל לקוח חדש שמצטרף למוצר, אז זה לא Sustainable, ול-Scale אתה לא תגיע, יהיו הרבה חללים בדרך . . . .
    • אבל כן . . אני אוהב את זה שאנחנו כל הזמן  מתבדרים, זה אומר שזו שיחה טובה.
    (רן) אנחנו פונקציה מבדרת . . .
    • (עומר) מתאים לפורים . . . 
    (רן) לגמרי . . . זה הכי מצחיק שלנו עד כאן . . . 
    • (עומר) אז נחזור ל-Mental Model - דיברנו על שני דברים . . . 
    (רן) דיברנו על Risk of Doing it ועל Risk of Not Doing it . . . 
    • (עומר) בדיוק - ועכשיו אנחנו מסתכלים על הדבר שהוא “הכי קל לשים על השולחן” - זה Cost, כמה שזה עולה לנו . . .
    • עכשיו, זה לא רק כמה שזה עולה לי - כמפתח - בזמן, 
      • אלא כמה זה עולה לי ב-Attention
      • כמה זה עולה לי בצוותים אחרים שצריכים להתיישר - אם הם צריכים להתיישר
      • כמה זה עולה לי בכל עבודה של . . . אולי אני צריך אנשי Operations או DevOps שיהיו עם זה
      • או שאם יש לי QA ידני אז אני צריך אנשים של QA . . . 
    (אורי) כמה גדול היאק שצריך לגלח . . . .
    • (עומר) זה גם נכון מאוד . . . יכול להיות שהוא מאוד גדול ואנחנו לא יודעים, עד שאנחנו לא באמת נשב ונחשוב על זה ונתכנן אותו טיפה יותר טוב.
    (רן) “במהלך הקלטת פרק זה לא נפגעו יאקים” . . .
    • (עומר) אמרת שזה הכי מצחיק שהיה עד עכשיו, אני מצטער . . . . 
    • אבל ה-Cost הנוסף זה Opportunity Cost - או “עלות אלטרנטיבית” בעברית, שזה נהדר כי “אלטרנטיבית” זה לא עברית . . . - זה אומר “מה הייתי יכול לעשות עם הזמן הזה, שאני לא עשיתי”.
    • אז אם הייתי עושה את ה-Refactor הזה, מה הייתי יכול לעשות אבל לא עשיתי, במקום ה-Refactor הזה שיכול היה להביא Value על חשבון זה.
    (אורי) ואז זה גורם ל-Refactoring אולי גם להצטמצם? להגיע, נגיד, “לגודל הנכון” שלהם? כי, אתה יודע . . . (רן) החלפת נורה . . . (אורי) . . . בדיוק - זו אותה החלפת נורה, שקל מאוד להיסחף . . . 
    • (עומר) אתה צודק, ממש - ברגע שאתה מתחיל לחשוב בצורה הזאת, מה שזה עושה זה שאתה מכניס את החשיבה הביקורתית לתוך הראש שלך
      • במקום שאתה צריך את הראש-צוות או איש Product שיגיד לך “אבל למה?! מה אנחנו משיגים בזה?”
      • אתה כבר מתחיל לחשוב את הדברים האלה מראש
      • וזה גורם לך להבין שיש דברים שאולי כדאי לך לשים בצד ולרשום לעצמך באיזשהו מסמך בצד של “הנה הדברים שהייתי רוצה לעשות, אבל כרגע זה לא הזמן” - ולתת את ההצעות היותר נכונות
      • זה גם מעלה את רמת האמון בינך לבין אנשי ה-Product ובינך לבין המנהלים, כשאתה אומר להם “אני רואה את הדבר הזה ואני גם מבין, מתוך זווית הראייה שלי, שזה לא הזמן - אבל אחר כך כנראה יהיה הזמן, אז קחו בחשבון שאנחנו נגיע לזה מתישהו”.
      • זה נותן המון-המון נקודות זכות.
    (רן) כן, וזה גם נותן לך להתפתח לשלב הבא שהוא לכיוון פרויקטים וניהול - כשאתה מצליח להבין שיקולים מערכתיים ולא “אני חייב-חייב-חייב לעשות את ה-Refactoring הזה, כי הפונקציה הזאת מפריעה לי בעיניים”, ולהבין שגם לזה יש איזושהי עלות ויש גם את התועלת, שאתה יכול למדוד אותה - וזה מפתח אותך.
    הדבר האחרון, שאני בטוח שאתה הולך להזכיר, זה מה אפשר להרוויח מזה? אז נניח שאנחנו עושים . . . .
    • (עומר) מה זה נותן לנו לעשות אחר כך? אוקיי, אז עשיתי מודולוריזציה של הדבר הזה . . . 
    • אני אתן איזושהי דוגמא מהעבר הלא רחוק - היה לנו מוצר אחד ועכשיו אנחנו רוצים להוסיף עוד מוצר
      • סבבה, אבל אנחנו לא יכולים להמשיך לעשות את אותו הדבר ופשוט להוסיף עוד מוצר לתוך אותה הקלחת, כי הנחות הייסוד שיש לנו על המוצר הראשון הן לא בהכרח אותן הנחות היסוד שיש על המוצר השני.
        • צורת הפיתוח של המוצר הראשון היא לא בהכרח צורת הפיתוח של המוצר השני, מוצר “בוגר” לא בהכרח מפותח  כמו מוצר שהוא Moonshot כזה, ראשוני.
      • אז זה מקום שבו אתה אומר “אוקיי, אולי כדאי לעשות איזשהו Refactor גדול? אולי כדאי לעשות את זה”
      • מתוך האמירה של “הנה הדבר שאני יודע שהולך לקרות בעתיד, הנה הצורה שבה הוא כנראה יקרה - והנה שלבי-ההכנה שאני חושב שאנחנו צריכים לעשות”.
        • וזה Refactor, בתכל’ס . . . .
    • (רן) עד כאן - שיחה קטנה וקלילה על Refactoring . . . 
      • (עומר)  . . . ושאר מרעין בישין . . . .

    (רן) יש עוד נושא קצר, שככה רציתי שנתעכב עליו - אמרנו בתחילת הפרק . . . קודם כל, זו הייתה שיחה על Refactoring וחשבנו שזה הולך להיות קצר, אבל הנה: ניהיה לנו מעניין אז המשכנו . . . (אורי) החלפנו מנורה . . . (רן) כן, החלפנו מנורה . . . אבל הקלטנו לא מזמן איזשהו פרק על Observability עם ניתאי [433 Breaking Down Observability with Nitay Milner] - וניתאי בעצם בא והציג איזושהי זווית מוצרית: חברה שמייצרת מוצר בתחום של Observability - והוא בא ושטח את המשנה שלו, של איך לתפיסתו ולתפיסת החברה והמוצר שהם בונים צריך לעשות את זה.ואז עומר פנה אלי ואמר “תראה, זה מאוד נכון - אבל יש גם גישות אחרות, שמסתכלות אחרת” - איזו דרך אחרת יש להסתכל על הדברים?
    • (עומר) מה שהיה מאוד מעניין זו ההסתכלות מתוך העולם של מטריקות - מטריקות (Metrics) ו-Log-ים ו-Trace-ים
      • שזה ה- Three Pillars, מה שנקרא
    • אבל אני רוצה לקחת צעד אחורה ולהגיד שאוקיי - אנחנו מסתכלים כרגע על מערכת: מה, בתכל’ס, הייתי רוצה להוציא מהכלי Production שלי, הכלי Monitoring?
      • הייתי, בתכל’ס, רוצה לדעת מה קורה ב-Production - לא הייתי רוצה לדעת מה חשבתי שנכון להסתכל עליו ב-Production - אלא באמת מה קורה ב-Production . . .
    • אז אם אני לוקח, נגיד את המטריקות - מטריקות אומרות “איזה דברים הייתי רוצה לספור ב-Production?”
      • מה זה אומר? אני הולך ועושה אגרגציות (Aggregations) של איזושהי נגזרת - כמה Unique Users או כמות User-ים שיש לי במערכת בכל נקודת זמן, כמה היו לי  בחודש האחרון וכו’ וכו’
      • ואז אני אומר “רגע! כמה 500-Errors היו לי?” אני צריך לייצר מטריקה חדשה כזאת ולהתחיל לספור אותה . . 
        • זה אומר שאני צריך לשנות את הקוד שלי - וזה אומר שרק החל מהרגע שעשיתי Deploy לדבר הזה, יש לי את המטריקה החדשה הזאת.
    (רן) מה שאתה מתאר פה בעצם זה Monitoring - שזה למדוד את הדברים שאנחנו יודעים שאנחנו צריכים למדוד, אבל אתה צריך לדעת מראש, אחרת זה לא יהיה שם . . .
    • (עומר) ולא רק זה - רוב כלי ה-Monitoring מאוד מוגבלים ,נניח, בכמות הערכים שיכולים להיות בכל Dimension וכמה Dimension-ים יכולים להיות . . . 
    (רן) נכון, אי אפשר למדוד הכל . . . זה לא פרקטי, וגם אם תמדוד הכל אתה לא תמצא את עצמך אחר כך.
    • (עומר) זה Fact of Life, אין מה לעשות - צריך לשנות את ה-Mental Model שלנו, כדי להכיל את המגבלה הזאת.
      • אוקיי, אז זה כלי אחד . . .
    • כלי שני זה Logging - אני רוצה לדעת מה קורה בתוך המערכת שלי, סבבה - אני הולך ועושה F-  על ה-Log-ים ומסתכל עליהם
      • או מסתכל ב-Elastic Search או Whatever-מה-שאני-משתמש-בו
    • ואני אומר “יופי, יש לי עכשיו את הזה - ואני יכול עכשיו, בנקודות שאשכרה כתבתי את ה-Log-ים האלה, אני יכול להבין מה קרה - בערך” . . . 
      • למה? כי ה-Log-ים האלה הם חסרי-הקשר . . . 
      • אני מסתכל על Stream של מה שקורה לי במערכת ברגע זה - או באיזשהו טווח-זמן.
        • אני יכול לפלטר (Filter) אותם - למשל אם רשמתי איזה User אז אני יכול לדעת איזה User, וכו’
        • אבל שוב - הם נטולי-הקשר לחלוטין.
    (רן) דרך אגב - זה מסוג הדברים שקצת יותר קל לעשות ב-Monolith והרבה הרבה יותר קשה לאסוף באוסף של microServices . . . אבל נכון, זאת אומרת - Log זה סוג של Point-in-Time: אתה מסתכל על זה, אבל קשה לך מאוד לדעת מה קרה לפני זה, מה קרה אחרי זה וכמה דברים אחרים קרו במקביל. לא שזה לחלוטין בלתי אפשרי - תיאורטית, המידע נמצא שם - אבל מאוד מאוד קשה, במבט על ה-Log-ים להבין ולקבל את התמונה המלאה.(אורי) אלא אם כן אתה אוסף את כל ה-Log-ים של ה-microServices שלך לתוך מערכת אחת ו . . . .(רן) כן . . . זה לא שהמידע לא קיים - הוא קיים, רק שמאוד מאוד קשה לקבל תמונת מצב. זה כמו שאתה נמצא בקרב - יש לך ערפל, יורים עליך מכל כיוון . . .. אוקיי, תיאורטית יש לך את האינפורמציה, אבל לבוא ולקבל תמונת מצב ברורה זה מאוד קשה מה-Log-ים, כי הם יחסית Low-level.
    • (עומר) נכון, אתה רוצה בעצם לקבל Context ואתה לא בהכרח מקבל את ה-Context הזה סביב אותו Log-line . . . 
    (רן) Tracing! . . . .
    • (עומר) אז Tracing זו דרך לבוא ולהגיד “אוקיי, יש לנו במקום Monolith עכשיו microServices” ואני רוצה להבין איפה הבקשה שלי עברה - בקשה אחת, אינדיבידואלית
      • אז אני לוקח כלי כמו Jaeger או משהו כזה, ואני מסתכל ואומר “אה, אוקיי - הבקשה הספציפית הזאת, שיש לי את ה-ID שלה, שהבאתי אותה מה-Logging system שלי, בגלל שה-Monitoring שלי אמר לי שיש לי את זה . . .
      • אז אני עושה Copy-Paste בין כל מיני  . . . עושה קורלציות בראש ואומר “אה! אוקיי - ניקח את ה-Trace הזה”, כי ה-Trace הזה כן די מייצג את הבעיה הכללית שיש לי.
    • זה נחמד לדבר מאוד מאוד נקודתי, אבל - אבל מה פיספסתי בדרך?
      • אילו 500 Trace-ים אחרים שלא הסתכלתי עליהם?
      • קשה מאוד להסתכל עליהם - אני צריך איזשהו  . . . אני צריך לעשות איזושהי אגרגציה (Aggregation) מעל ה-Trace-ים, וזה קשה ממש לעשות דבר כזה . . . 

    (רן) דרך אגב - אני חושב שמעניין להגיד שבפרק הקודם שהקלטנו עם איתן מ-Optibus [זה - 435 Optibus Playback with Eitan Yanovsky] - הוא סיפר על איזשהו כלי שהם בנו פנימית [Playback] והוא בא ואמר אוקיי - אנחנו יודעים להקליט Traffic, ואם יש שגיאה אז זה נשלח לשירות Monitoring שלנו, ששכחתי מהו [“אנחנו משתמשים ב-New Relic וכל מיני . . . Lumigo ודברים כאלה”], ואז הוא יודע למצוא את כל ה-Instance-ים הנוספים של אותה השגיאה - שזה קצת דומה למה שאתה מתאר פה. בוא, תביא לי עוד דוגמאות, ספר לי באילו עוד מקרים זה קרה . . .
    • (עומר) אז אני, אם לא אכפת לך - במקום דוגמאות אני אתן איזשהו כלי חלומי, שהייתי מאוד שמח לקבל אותו.
    • אני יכול לקחת את המערכת שלי ולייצר Distributed traces, כמו שיש בדרך כלל - ואני נותן את כל ה-Dimensions של כל העולם: מה שבא לי, באיזו Cardinality, כמה ערכים שאני רוצה בכל Property וכל Dimension ו-Whatever.
      • אני רוצה לזרוק את זה לאיזשהו משהו - ושהוא יעשה לי את ה-Crunching ותיהיה לי “פלטפורמת DBI” כזאת שתעשה לי את כל ה . . . 
      • אוקיי - אני רוצה לדעת . . . . “תן לי את כל ה-User-ים שכמות הזמן שהם בילו במערכת יותר גדולה מ-X” ובוא נראה מה מייחד אותם
      • מדהים . . זה חלום, אני לא צריך אחרי זה Log-ים, אני לא צריך Trace-ים, אני לא צריך מטריקות . . . אני פשוט יכול לעשות אגרגציות (Aggregations) על מה שאשכרה קורה בתוך המערכת שלי.
    • אז זה נשמע אחלה וזה נשמע מאוד מאוד חלומי וזה נשמע גם . . . 
    (רן) למרות ש . . . . נניח שטכנית זה אפשרי, יש חסרון בגישה הזו שאני רוצה להצביע עליו וזה שבזמן הפיתוח אתה לא חושב על הדברים האלה . . . אתה אומר “אחר כך מישהו יאסוף ויאגרג (Aggregate . . .) ויראה לי את כל התמונה, אז לא צריך לחשוב על זה בזמן הפיתוח”, אבל יש פה חיסרון, כי אם אתה לא חושב על המטריקות שלך בזמן הפיתוח, כמו כמה בקשות לשנייה וכמה גישות ל-Database ו-Latency וכל זה, אתה גם - בסופו של דבר - תייצר קוד פחות טוב, כי זה לא במודעות שלך, לבוא ולמדוד את זה . . .(אורי) נראה לי שגם זו מערכת די דימיונית - שבזמן הפיתוח אתה חושב על כל המטריקות שאתה צריך . . . אבל מהאירועים שקורים, הדבר הזה מתפתח. מערכת מטריקות ו-Log-ים והתראות וכל הדברים האלה מתפתחים עם המקרים שקורים.
    • (עומר) אתם צודקים לחלוטין - ואז אני שואל אתכם שאלה כזאת: אם אותה מערכת דמיונית היא כחלק מתהליך הפיתוח, כמו שאני כותב Unit Testing או כמו ש אני כותב Integration Tests, שאני רוצה לעשות את זה בכל מקרה, לא משנה באיזה שלב התפתחותי של המערכת והם גם ישתנו וזה בסדר
    • אם הייתי זורק את כל המידע שיש לי לתוך המערכת הדימיונית הזאת, הכל - כל דבר שאי פעם אוכל להשתמש בו - ומקסימום המערכת הדימיונית הזאת תיתן לי לעשות אגרגרציות על זה, תיתן לי לייצר מטריקות על בסיס זה. מגניב . . .
    • אני לא צריך לחשוב על זה, לא צריך את החשיבה האופרטיבית הזאת או את החשיבה ה-DevOps-ית הזא בתוך הקוד, כי אני פשוט זורק את זה “לתוך החלל הגדול” ואומר שמתישהו מישהו יעשה עם זה משהו . . . .
    (רן) זה מזכיר לי את הספר “הקלות הבלתי נסבלת של הקיום” . . . . “הקלות הבלתי נסבלת של Monitoring”, בעולם הדימיוני הזה שלך . . . 
    • (עומר) כן . . . אז בוא ניקח את זה ונעמיד את זה מכיוון אחר קצת: המערכת הזאת קיימת.
    • ב-2006, אם אני לא טועה, Facebook הוציאו Whitepaper על מערכת שקוראים לה Scuba, שהם - בגלל שהם Facebook ויש להם אינסוף כסף - הם עושים מלא דברים בזיכרון ועושים אגרגציות  . . .
    (אורי) ב-2006 Facebook עוד לא היו קיימים . . . . [היו. לא כמו היום, אבל היו מ-2004].
    • (עומר) אז 2016? . . . .יכול להיות, אני מצטער, התאריכים לא כתובים לי בשום מקום, כולל בראש . . . [התאריך על זה הוא 2013]
    (אורי) גם לא ב-Scuba, כנראה . . . איך לא חשבת על זה לפני?! היית צריך לעשות את זה בזמן הפיתוח . . . .
    • (עומר) הייתי צריך לעשות מזה מטריקה . . . .
    • בכל מקרה, המערכת הזאת קיימת, אפקטיבית, בתוך Facebook - שזה מאוד נחמד להם, אבל מה איתנו, “פשוטי העם”?!
    • אז מסתבר שיש חברות שכבר מתחילות לתת את הדברים האלה, את ה-Feature-ים האלה.
      • השתיים העיקריות הן LightStep ו-Honeycomb
      • אנחנו ספציפית, בתוך Forter, משתמשים ב-Honeycomb - וזה שינה לנו דרמטית את הצורה שבה אנחנו רואים את Production
      • כי אנחנו כרגע “רואים” את Production . . . 

    (רן) יש שם Dashbord-ים?
    • (עומר) יש שם Dashboard-ים אם ממש בא לך - אבל Dashboard-ים הם לא תשובה לשאלה . . . 
    (רן) בדיוק . . . .למה אני שואל? אני חושב שבמקרה הזה לא Facebook אלא Google פרסמו שבאחד מכלי ה-Monitoring הפנימיים שלהם - אם אני לא טועה Borgmon - הם לא רוצים Dashboard-ים, כי Dashboard-ים מסלילים אותך . . .  אתה חושב מראש שאתה הולך לדעת איפה הבעיה ולכן אתה בונה לעצמך Dashboard, אבל אנחנו לא רוצים דבר כזה. מה שאנחנו רוצים זו יכולת Exploration מאוד קלה - שברגע שיש בעיה’ אתה תוכל מאוד בקלות לעשות Exploration - קצת ימינה, קצת שמאלה - ובסופו של דבר להגיע ולעשות Pinpoint לבעיה.לכן, למרות שאולי טכנית אפשר לעשות שם Dashboard-ים, זה נחשב כ-Anti-Pattern.
    • (עומר) אז אני יכול להגיד שבאמת אנחנו, מתוך השימוש היומיומי שלנו בכלי הזה או בכלים מסוג כזה, אנחנו לא משתמשים ב-Dashboard-ים באמת.
    • ה-Dashboard-ים באים כדי לייצג סטטוס - שאלות שאני כבר יודע לשאול, מה התשובות אליהן, At a glance.
    • אלו לא כלי תחקור - כי מה שהם אומרים זה שאני בעצם יוצר המון גרפים שמסתכלים על סיטואציה מזויות שונות, במקום לבוא ולהגיד “בוא נבין מה הסיטואציה הנוכחית”.
      • כי כל הכשלונות במערכת שהיא מספיק מבוזרת - שזה שני Node-ים וזה מספיק מבוזר - כל הכשלונות נראים שונה . . .
      • ואם הכשלונות נראים לי באותה הצורה, אז כנראה שלא תיקנתי את הבאג הספציפי שהייתי צריך לתקן, אז סבבה - צריך לתקן את הבאג.
    • אז דברים כמו Anomaly detection -אנחנו מקבלים את זה Out of the Box - אני רוצה לדעת למה פתאום יש לי מלא Session-ים שעושים Timeout
      • אז אני פשוט לוקח ומסמן אותם ומקבל איזו רשימה של Dimensions - שאפילו לא הייתי חושב לתשאל אותם והם פשוט שם כי הם קיימים, כי זרקתי אותם לתוך המערכת הדמיונית הזאת
        • שהיא לא ממש דימיונית . . . .

    (רן) אבל בוא, שנייה, פה אני קצת מבולבל . . . אתה לא צריך לחשוב מראש על המטריקות, אבל בכל אופן - מה הוא אוסף? כאילו . . . עוקב אחרי ה-CPU ואוסף בכל Cycle? מה . . .
    • (עומר) אז אין Agent-ים - מה שיש זה את הסטנדרט של OpenTelemetry - שאם אני לא טועה אז גם דיברתם עם ניתאי על OpenTelemetry - שבבסיסו הוא Distributed Tracing ומטריקות
      • אנחנו לא משתמשים ב-offering של המטריקות של Honeycomb כיום
      • והוא מתייחס לזה כמו אל Distributed Trace, פשוט Wide Events - וכשאני אומר “Wide” אני מתכוון להמון המון Dimensions, המון המון Attributes, באיזו קרדינליות שאני רוצה . . .
    (רן) אוקיי, אבל אתה צריך להסביר, אתה צריך להגדיר אותם . . . 
    • (עומר) אני מגדיר אותם - פשוט ה-Rule of Thumb הוא “לשלוח הכל” . . . כל מה שמישהו אי-פעם אולי ירצה להשתמש
    • התוכניתן . . . סליחה - המתכנת שיושב לידי . . . “תוכניתן” זה מסגיר את הגיל . . . אז המתכנת שיושב לידי - אולי יהיה בעתיד איזשהו Outage שהוא יצטרך את הדבר הזה מתישהו, אולי . . . 
    • וגם אם לא - אה . . . .
    (רן) בסדר - צריך לחשוב על זה מראש, אבל זה לא  “עולה לך”, זה לא עולה לך להוסיף.(אורי) אתה צריך לחשוב על זה מראש . . .
    • (עומר) אנחנו, כמי שהם Owner-ים של המערכת שלנו ב-Production, אנחנו רוצים לדעת איזה מידע שאי-פעם נצטרך להשתמש בו.
    • אני גם יכול להגיד שפיספסנו היום - יש המון מקרים שאנחנו אומרים “או, אם רק היה לי את הדבר הנכון הזה, אז הייתי יכול לקבל ולהגיע לבעיה הזאת הרבה יותר מהר”.

    (רן) אני גם חושב שאתה הצבעת על בעיה שלא הרבה מכירים - שכשהמערכות גדולות, זה מאוד יקר להוסיף עוד מטריקות, ולכן אתה צריך להתחיל להתחשבן: האם להוסיף את המטריקה הזאת? את המטריקה ההיא? זה לא כל כך עניין של זמן עבודה אלא עניין של Storage ושל Scale וכו’ - ובעצם מה שאמרת ש-Facebook פתרו ב-Scuba ומה שאתם עושים עם Honeycomb זה שאתם אומרים “אוקיי, בעיית ה-Scale-ביליות הזאת נפתרה, אז עכשיו אפשר לשלוח את כל המטריקות - ועכשיו אני . . .(אורי) רגע - בעיית ה-Scale-ביליות נפתרה? או שאנחנו מחליטים להתעלם ממנה?
    • (עומר) אתה צודק, זה ממש נכון . . . 
    (אורי) או שיש לנו מספיק כסף כדי להתעלם ממנה . . . .
    • (עומר) אז אני אגיד דבר כזה - שני דברים . . . 
    • קודם כל, רן - אני אענה לך על השאלה, על מה שאמרת: זה לא רק להוסיף עוד מטריקה, אלא להוסיף High-Cardinality Dimension למטריקות . . . 
      • אם אני עכשיו אגיד שאני מכניס ל-Grafana שלי, אני מכניס עכשיו איזה User ID, ה-Grafana ימות . . . 
    (רן) נכון - היסטורית, מערכות כאלה לא עמדו בעומסים של קרדינליות, של כמויות של מטריקות, של קצב של מטריקות . . . 
    • (עומר) יש להן Constraints מאוד מסויימים - וזה הגיוני לחלוטין.
    • ובנקודה של קצב - אתה צודק, אין דרך לשלוח הכל. אז מה?
      • מה שאתה עושה בנקודה מסויימת זה שאתה מתחיל לעשות Sampling - אתה אומר “אוקיי, יש לי Session-ים שנראים בדיוק אותו הדבר, עד כמה שאני זה . . . אני עושה Sampling דינאמי
      • זאת אומרת שאת כל ה-Error-ים שיש לי במערכת, כל הדברים שהם לא בסדר - אני שולח אותם בלי Sampling
      • אז יש לי 500 פעמים שמישהו קיבל  . . . 
    (אורי) 500 פעמים Error 500 . . . .
    • (עומר) רציתי להגיד את זה וזה נשמע מאוד לא טוב אז אמרתי שאני אעשה את זה 401, אבל בסדר . . .
      • [ברזיק יאשר]
    • אז אתה יכול לבוא ולהגיד . . . ניתן דוגמא, למשל - אנחנו גילינו הרבה פעמים שבלקוחות עם Throughput יחסית נמוך, אז קיבלנו Alert-ים   . . . 
      • על מה? אחוז Error-ים גבוה ממש . . . 
      • הסתכלנו על זה ואמרנו “אוקיי, זה User שעושה Retry - Retry - Retry . . . . “
        • פשוט Throughput ה-Baseline היה כל כך נמוך, שזה גרם לנו להבין.
      • אבל בשנייה אנחנו אומרים “אוקיי, זה ה-User ID הזה” - אז עכשיו אנחנו יודעים את זה.
    • אבל אתה צודק שבקצבים סופר-סופר-גבוהים, אתה חייב איפשהו להתפשר - כי אין דרך  . . . 
      • המערכת הזאת אמנם כבר לא דמיונית, אבל אנחנו גם לא יכולים . . . גם לה יש Constraints מסויימים.
      • אז לפעמים יש בה שימוש טוב ולפעמים יש בה שימוש לא טוב . . .
    • ב-Forter, למשל, אנחנו משתמשים בה בקצבים מסויימים - ויש חלק אחר במערכת של Forter שאני לא הייתי ממליץ להם להשתמש בזה
      • כי ה-Throughput הוא כל כך גבוה והבעיות הן כל כך לא מתאימות לסוג כזה של כלי, שלא הייתי ממליץ.
      • אולי הם היו יכולים להשתמש בזה אם ממש היו מתעקשים, אולי זה היה באמת מתאים להם - אני לא יודע.

    (רן) עומר, אז אתה היום ב-Forter . . . 
    • (עומר) במקרה . . . 
    (רן) איפה אתם נמצאים? איפשהו בתל-אביב כזה?
    • (עומר) כן, אנחנו בתל אביב - יש את הבניינים החדשים האלה, ליד תחנת רכבת מרכז, דרומית לשם - איפה שהרסיטל [!] . . . 
    • למי שלא מכיר את Forter, דרך אגב - אז אנחנו עוסקים באמון . . . . 
      • [יש את הפרק המיתולגי של השבוע מ-2014 . . . . ]
      • זה מתקשר מאוד יפה לנושא של השיחה היום, אבל לא בכוונה
      • אנחנו מתעסקים יותר באמון בעולם של כלכלה דיגיטלית
      • מה זה אומר? אם אתם עכשיו מנסים לעשות איזשהו תשלום באתר eCommerce, או שאתם מנסים ליצור אתר או שאתם עושים איזושהי פעולה מסויימת - 
        • אז הרבה מאוד פעמים Forter נמצאת שם ואומרת “זה הגיוני, אפשר . . . זה לא Fraudster, זה לא מישהו שמנסה לרמות את האתר”
        • זה לא שעכשיו מישהו מנסה ליצור איזושהי Fraud Ring או עם כרטיס אשראי גנוב ומנסה לעשות רכישה.
    • אני, ספציפית, נמצא ב -Line מוצרים חדש יחסית, שיותר מסתכל על הצד השני - 
      • לא רק האם זה Fraudster או לא Fraudster, אלא גם אם זה לא Fraudster לפי Forter - ו-Forter יודעת את זה מאוד מאוד יפה - איך אנחנו יכולים לעזור לשאר השחקנים במגרש להבין שזה לא Fraudster או שהרכישה הזאת לגיטימית
      • זה אתגר מאוד גדול, כשהסטטיסטיקה הרווחת היא שמשהו כמו 1 מ-10 רכישות באינטרנט, שהן לגיטימיות, פשוט לא מצליחות - ואנחנו שם כדי לנסות לעזור.
    (רן) הבנתי . . . . אז אתה רוצה למנוע את ה-False-Negatives . . . 
    • (עומר) זה תלוי מה ה-”Negative” שלך, אבל בגדול כן . . . .
    (רן) “האנשים השליליים האלה” . . . . כן - אז אתה אומר שזה אתר שחוסם User לגיטימי מלקנות מוצר שהוא רוצה
    • (עומר) אתר שחוסם User לגיטימי, חברת אשראי, בנק . . . .
    (רן) בסדר . . . אתם בטח מגייסים טונות של מפתחים . . . .
    • (עומר) אנחנו תמיד מגייסים טונות של מפתחים . . . 
    (אורי) מפתחים באים אליכם במשקל? . . . 
    • (עומר) מגייסים המון מפתחים להמון  . . . בכלל, ב-Forter יש . . . 
    (רן) איך נראה ה-Stack הטכנולוגי שלכם היום?
    • (עומר) או-ווא . . . .אז בכל איזור הוא יחסית שונה
      • יש לנו איזורים שהם מאוד Data-intensive אז זה כל העולמות הקלאסיים של Data-intensive Compute או Data-intensive Processing ו-Stream Processing וכו’.
      • יש לנו איזורים אחרים שהם יותר מוכווני-Product
      • יש לנו איזורים שהם יותר תשתיתיים . . . 
      • אתגרים מאוד מעניינים 
    • ואני חייב להגיד - בתור מישהו שעבד בלא מעט סטארטאפים - זו אחת החברות עם ה-Culture הכי כייפי שיש והכי נעים שיש . . . אז אני נהנה.

    (רן) ובנימה אופטימית זו - תודה רבה שבאת! היה מעניין. להתראות.
     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    52 min
  • 436 How to reach retirement as a software developer with Bentzy Lupu
    [קישור לקובץ mp3]היום אנחנו מארחים את בנצי לופו לפרק סופר-מעניין על איך להגיע לגיל פרישה כמתכנת.


    (רן) אז קצת לפני שנתחיל  - בנצי, מה היה המעבד הראשון “שסבל את נחת זרועך”?(אורי) תן לי להתחיל - “לפני הרבה-הרבה שנים, בארץ רחוקה-רחוקה,  . . . . “
    • (בנצי) אז האמת שאין לי מושג איזה מעבד זה היה - אבל הוא היה מאוחסן בבניין שלם בטכניון.
      • אני לא יודע מה שמו, אבל זה תפס שם הרבה הרבה מקום, זה מה שאני יכול להגיד.
    (רן) ולא היו לו מסך ומקלדת . . . מסך צבעוני ומקלדת, אני מנחש?
    • (בנצי) בשנה הראשונה לפחות תכנתתי בכרטיסים מנוקבים, שזה היה כיף גדול . . . .
    (אורי) כמה פעמים עפו לך הכרטיסים ברוח?
    • (בנצי) או-ווא . . . היו לי מתחת למיטה את כל התוכניות, שכבו בקרטונים מתחת למיטה - אז יכולתי לקחת את התוכנית ולדפדף בה לפני השינה, זה היה מרדים יופי.
    (רן) זה היה ה-Hard-disk שלך . . . .
    אז בנצי, בוא קצת נכיר אותך - מי אתה? מה אתה עושה היום? אחר כך קצת נצלול להיסטוריה . . . 
    • (בנצי) אז אני בנצי לופו, בן  . . . .לא נגיד בן כמה אני, אבל לפני שבוע קיבלתי את הכרטיס אזרח ותיק, שמקבלים בגיל 67 . . . .
    • נשוי, שלושה ילדים, שני נכדים
    • עבדתי בכמה חברות במשך השנים, וכרגע אני עובד בחברת eToro ברמת גן
      • החברה מתעסקת במסחר באינטרנט - אחת החברות המובילות בעולם כנראה.
      • אני מפתח שם להנאתי - ומשום מה הם מתעקשים גם לשלם לי, וזה גם די כיף.
    (אורי) בדיוק רצינו לדבר על מילניאלס בשוק העבודה . . . . אז הנה, אתה האורח שלנו היום.(רן) ובכל אופן, למי שלא מכיר את eToro - ככה שתי מילים על מה שאתם עושים שם היום?
    • (בנצי) זו פלטפורמת מסחר באינטרנט, בכל הנושאים והמטבעות וה-Goods שאפשר לסחור בהם.
      • וכמובן המון המון Cryptos . . . יש לנו כמובן ארנקים אלקטרוניים כאלה ואחרים.
      • אני בצוות הארנק האלקטרוני - מול Cryptos, מול Blockchain, דברים שלא התעסקתי איתם לפני 40 שנה כשהתחלתי לעבוד, זה בטוח.
    (רן) סבירות נמוכה שכן . . . 
    אז חשבתי שיהיה ככה קצת מעניין לבוא ולעשות איזשהו Overview, סקירה הסטורית של טכנולוגיות שיצא לך להתעסק בהן. אז בקצה אחד הזכרנו את ה-Punched cards בבניין הענק של המחשב בטכניון, ומצד שני הזכרנו Bitcoin ו-Crypto, אבל בטח היו גם הרבה דברים באמצע.
    • (בנצי) כן, צריך קצת זכרון בשביל להיזכר בכל הדברים, אבל אלו היו שפות כמו PL/I ו-PLC ו-APL, שהן כולן על VM-ים
    • ומסדי נתונים כמו RDBMS ו-Cics בתור המערכת התקשורת . . .  
    • ואחרי זה גיליתי את ה-Minis - יש שם System/34 ו-System/36
    • שפות כמו RPG, שזה לא רק הכלי הזה נגד-טנקים, אלא שפה נגד כל העולם . . . .
    (רן) שירימו את הידיים עכשיו כל המאזינים שהבינו אחת מהמילים או אחת מהשפות שבנצי הזכיר עד עכשיו . . . דרך אגב, פרט ידע קטן - גם עבדכם הנאמן פעם פיתחתי ב-RPG, אבל אני כבר לא זוכר מזה כלום. גם יריתי ב-RPG וגם פיתחתי ב-RPG, אני יכול להתגאות בזה.(אורי) אבל עד כאן, בעצם, TCP/IP לא היה?
    • (בנצי) TCP/IP בשלב הזה? לא . . . ממש לא . . . איפה? אנחנו מדברים על . . . אני לא נגעתי אז ב-TCP/IP.
      • הכרתי אותו אחרי איזה 15 שנים, משהו כזה . . . אחרי שהתחלתי לעבוד, היה TCP
      • הייתה גם את שפת Cobol בדרך, שפה מאוד מעניינת, עם פקודה אחת בערך שנקראת MOVE - ואיתה אפשר לעשות דברים מדהימים . . . .
    (אורי) איתה אפשר להתקדם . . .
    • (בנצי) . . . עשיתי איתה דברים מדהימים, הצלחתי לעשות דברים באמת ברי-קומפליציה לתוכניות באמצעות שפה כל כך לא נחשבת
      • זה אומר בעצם שאם רוצים לעשות דברים, אפשר לעשות עם כל דבר
    • ואחרי זה פרץ לנו המחשב האישי, והגענו לשפות כמו Pascal ו-Turbo Pascal . . . .
    (אורי) פה אני מצטרף . . .  [גם אני!]
    • (בנצי) ויום אחד  . . .
    (אורי) רגע - BASIC לא היה לך לפני זה? או שדילגת על BASIC?
    • (בנצי) אני לא . . . דילגתי על BASIC
    • ועוד משהו - כשהגענו לתקופה שהייתה המלחמה הקשה בין Turbo Pascal ל-Visual Basic או Delphi מול Visual Basic, אני החרמתי את Visual Basic, לא הייתי מוכן לגעת בו, מטעמים שהיו שמורים עימי . . .
    (רן) הודאת מאז בתבוסתך?
    • (בנצי) לא . . . Delphi הייתה שפה אדירה . . . 
    • השתמשתי ב-Visual Basic בתור שפת Script-ים, בשביל לעשות כל מיני דברים, לשנות IDEs ודברים מהסוג  הזה, אבל לא בתור שפה שפיתחתי איתה אפליקציות.

    (רן) בוא נעצור את הסיפור הזה לרגע, המסע הזה מאוד מעניין - אמרת Cobol, שיש לה פקודה אחת - MOVE - ושאפשר לעשות איתה דברים נפלאים. אילו דברים נפלאים עשית?
    • (בנצי) אז זו בדיחה שיש רק פקודה אחת…
    • אבל כשאני התחלתי לעבוד בזה, אנשים סביבי בכו וקיטרו שזו שפה מאוד “ענייה” וכל זה
    • ויום אחד, כשעבדתי בחברת פז, הם קנו חברת-בת . . . . הכל מתחיל מה-Business בסך הכל, וזה גם המוטו שלי בחיים
      • שה-Buisness יותר חשוב מהטכנולוגיה, כי  . . .
    • אז הם קנו חברה-בת, והיו שם המון תוכניות - מאות תוכניות - עובדות, רצות כמו שצריך מול SQL Server וכו’, על VM ענק
    • והם רצו להכניס את החברה-בת הזאת - אבל שההרשאות תתחלקנה בהתאם - 
      • שאנשים מחברת האם לא יוכלו לגשת לחברת הבת והפוך.
      • ניסו לחשוב איך לעשות את זה במינימום עבודה, וקיבלו הערכות של כמה שנות אדם
    • ובצניעות, אני אומר, באתי עם רעיון של לכתוב Pre-Compiler - שנוסיף לו כמה טבלאות ב-Database עם ההרשאות, בכל טבלה למי מותר לגשת ואת חלוקת ה-Data
      • ואז כותבים תוכנית שעוברת על התוכניות לפני הקומפילציה, עושים Pre-Compile - והתוכנית משנה את פקודות ה-SQL, כיוון שהכל SQL, היא משנה את פקודות ה-SQL ומוסיפה ל-SQL, לפני הפרה-קומפילציה (Pre-Compile) . . . .
      • זה חסך המון עבודה - וכל זה נכתב ב-Cobol  . . .
    (רן) כמו מאקרו, זאת אומרת . . . .למי שאני מניח מתכנת אחר כך ב-C או ב-++C, אז יש שם באמת את הסיפור של Macros . . .
    • (בנצי) אתה יכול לכתוב את זה בקלות  . . . גם ב-Cobol עשינו את זה, ועשינו את זה די חלק
      • ישבנו על זה שני אנשים, אני לא זוכר אם חודש או חודשיים, ופיתחנו את זה וזה עבד - פשוט יפה.
      • כמובן שב-SQL Server הפקודה הבעייתית הייתהINSERT 
        • כי Update ו-Delete - הרבה יותר קל לחסום אותן
    • ואני זוכר את זה . . . אמנם זה היה משהו לפני שנים, אבל אני זוכר את זה כמשהו יפה שאפשר לעשות 
      • אתה נותן ל-Business את מה שהוא צריך, ואתה נותן אתה זה, אתה יודע - מתוך עצלות . . . .”מה? אני אעבור עכשיו על מאות הודעות ואתקן אותן? שהמחשב יתקן” . . . אז המחשב תיקן את התוכניות.
    (רן) אני לא זוכר אם זה היה, אורי - לא יודע אם אתה זוכר, באחד הפרקים הראשונים [פרק 6!] ראיינו את פרופסור יוסי גיל מהטכניון, והוא טען שעצלנות זו תכונה מאוד בריאה אצל מפתחים  . . . . מפתח שהוא לא עצלן הוא לא מפתח טוב, אתה צריך לחשוב על איך לעשות לעצמך את העבודה קלה יותר. וכן, אני חושב שזו גם דוגמא מצויינת לאיזה Leverage, איזה כוח, יש לתוכנה - אתה יכול להניף מנוף קטן והתנופה שלו היא אדירה, על ה-Business במקרה שלך.(אורי) אני חושב שהיום, הרבה מהמפתחים מתרחקים מהעולם של ה-Business ולא יודע . . . תמיד נראה היה לי שפעם לא היו הרבה מתכנתים, אז הם היו חייבים להיות קרובים יחסית לל-Business כדי לתת פתרונות. היום יש פשוט שכבות-על-שכבות של טכנולוגיה, ונוח לך “להתחבא” רחוק מה-Business.
    • (בנצי) אז מהניסיון שלי, כבר לפני הרבה שנים, המשפט הכי יפה ששמעתי ממפתח שעבד פעם אצלי כשהייתי בתפקיד ניהולי, הוא אמר “הלקוחות פה מפריעים לנו לעשות את העבודה” . . . .
    (אורי) היה כיף עד שהגיעו הלקוחות . . . 
    • (בנצי) . . . אז אני זוכר, כבר לפני המון שנים, מתכנתים שנורא נהנים מהטכנולוגיה, אבל  . . . ה-Business . . . 
      • “גמרתי לפתח משהו, עכשיו אני רוצה לפתח משהו חדש” - לא חשוב שצריך לתחזק את זה עכשיו עוד 10 שנים או 20 שנים או משהו כזה . . . 
      • וזה מערכות של 20 שנה - אני מכיר מערכות שעבדו 20 שנים עם אפס באגים [ולא כי אף אחד לא השתמש בפיצ’ר . . .]
      • אמרו לי שאני חולם ושאין דבר כזה - אבל יש דבר כזה.
      • כן, אנשים רוצים כל הזמן לפתח משהו חדש - וזו אחת הבעיות, שבעצם ה-Business צריך משהו יציב.
      • אם במקרה צריך לפתח משהו חדש אז כן - כדאי להשתמש בטכנולוגיה הכי חדישה שיש, אבל . . .

    (רן) אז זהו בדיוק - זה מביא אותי לדילמה של מצד אחד יש לי את הרצון לכתוב משהו חדש ולא לתחזק, שאת זה אנחנו מכירים, אבל יש גם את הרצון להשתמש בטכנולוגיה הכי חדישה, להכיר את הכלים החדשים יותר - ויש פה איזשהו Risk. זאת אומרת, אתה יודע - מצד אחד יש לך את ה”Good old Cobol” שאתה מכיר היטב ואתה יודע שהוא יעשה לך את העבודה, ומצד שני יש לך את “ה-Delphi החדש הזה” [משפט שנאמר לאחרונה ב-1998], שאתה, ככה, מתלבט האם לקפוץ על ה-Band wagon הזה או לא - ואני מתאר לעצמי שהיית לא מעט בסיטואציות האלה, של “בוא נחליט מה אנחנו לוקחים - את הטכנולוגיה המוכרת או איזשהו “סוס חדש ומופרע” . . . .
    • (בנצי) אז כן, הייתי הרבה פעמים
    • נקרא לזה ממש “קפיצת מדרגה” הייתה בשנת 1990 או משהו כזה, סביב 1990 - כששמעתי שיש הרצאה על משהו שנקרא Object-Oriented Programming . . . .
      • הלכתי לשמוע את זה וחזרתי משם המום . . . 
      • אמרתי “וואו, אנחנו חייבים לעבור לדבר הזה . . . חייבים”.
      • עכשיו, המרצה היה איזה דוקטור, אני לא זוכר מאיפה, והוא בנה את כל ההדגמות שלו סביב מכשפים ואבירים, ולא הבנתי מה הוא מביא את הדבר הזה . . .  [החבר’ה עם החרבות מעץ שמחופשים לדרקונים בחורשות של הטכניון יכולים להוות קצה חוט]
      • אני ראיתי את זה ב-Business, במה שאנחנו צריכים, את האובייקטים - והתחלתי לחפש.
      • אז היה אז ++C, זוכרים? היה ++C של Microsoft - ואני ממש לא אהבתי את Microsoft אז, את כלי הפיתוח שלהם.
        • אנחנו עבדנו אז ב-Borland, באותה תקופה
        • זו הייתה חברה, אגב . . . הייתי אז שותף בחברת פתרון מערכות עם עוד שני שותפים, אלון בר ועזי טרינצר, היינו מאז 1986 ב-Business - ופיתחנו פרוייקטים.
        • והיינו ב-Borland ומאוד אהבנו את זה ו-Microsoft זה היה כלים שנופלים וקומפליציה שלוקחת שעה במקום חמש דקות ודברים מהסוג הזה [הרמה להנחתה לבאמפרס הבא?]
        • אז אמרתי - ++C? אני מחכה, שמעתי ש-Borland מפתחים את זה אז אמרתי שאני אחכה להם.
      • בינתיים, שמעתי שיש Turbo Pascal, שהוא Object-Oriented, אז אמרתי שזה פחות מוצלח מבחינת זה אבל אימצנו את זה - והחברה עברה מיד ל-Object-Oriented Programming
        • וברגע שיצא ה-++Borland C עברנו אליו
      • ובערך שנתיים או שלוש אחרי זה - אני מספר את זה בתור אנקדוטה - אנחנו פיתחנו פרויקטים לרפא”ל, בין השאר
        • ופיתחנו להם את זה ב-++C עם Core של C, בגלל מהירויות ודברים כאלה
        • ודיברתי שם עם כמה מהנדסים והם אמרו “שמענו שזה משהו שיהיה אופרטיבי בעוד כמה שנים”, אז אמרתי להם “התוכנה שפיתחנו לכם - ב-++C פה . . . “
      • וכמובן שאחרי זה התקדמנו ל-Delphi ודברים יותר מתקדמים  ועזבנו את זה - אבל זאת הייתה אבן דרך, בעיני, מאוד חשובה, מבחינה התפתחותית.
    (אורי) דווקא זה מעניין, כי הייתה ה-++Borland C - ו-Delphi זה חזרה ל-Pascal . . . כשפה, היא Syntax של Pascal . . .
    • (בנצי) כשפה כן, אבל מה שמשך אותי אז זה לא השפה אלא הסביבה.
    • כמו שיש היום למשל Visual Studio, אז Delphi - הוא בא עם סביבה מובנית שאיפשרה קסטומיזציה (Customization) של ה-IDE
      • וזה, מבחינתנו, היה דבר ענק - יכולת לקסטם (Custom) לך את הדברים כך שיתקמפלו (Compile) בצורה מסויימת, לעשות Macro-אים בצורה אדירה . . . 
      • כמו שאמרתי: עצלנות . . . אני צריך משהו שיעזור לי לכתוב את התוכניות, יעזור לי לכתוב Framework-ים
      • ואפשר לעשות Framework-ים, וזה היה, גם מבחינת המפתחים - זה היה יותר קל לכתוב בזה מאשר ב-++C, בסופו של דבר.

    (רן) אני לא בטוח שהגענו ל-Timeline של זקן-מאזיננו עדיין, כי אנחנו עדיין בעולם ה-Delphi, אז בוא נתקדם . . .(אורי) אני הייתי . . . (רן) אתה כבר היית . . . אני, האמת, הכרתי - אבל לא יצא לי להשתמש אף פעם - אבל כמו שאמרתי, שמתי את היתד בעולם ה-RPG אז זה בסדר, לפחות מבחינתי . . . גם יצא לי לכתוב ב-Magik, וראיתי שגם לך, בנצי . . .
    • (בנצי) אז החברה שלנו פיתחה פרויקטים ב-Magik ו . . . 
    • הייתה לנו מפתחת מופלאה ב-Magik בחברה, ו . . . אני התעסקתי מעט מאוד
    • אנחנו החלטנו לזנוח את Magik מהסיבה הפשוטה שמפתחים טובים לא רצו לעבוד ב-Magik . . . 
    (רן) זה היה קל מדי . . . 
    • (בנצי) כן . . . משהו כזה - לא היה מקום ליצירתיות: או שזה עבד או שלא יכולת לעשות את זה.
    (רן) אז Magik, למי שלא מכיר, היה מחולל-יישומים, אני לא יודע אם יש עוד את המושג הזה היום . . . אבל מחולל-יישומים שהיה בעצם מייצר אפליקציות, אבל יחסית עם מעט קוד - יש קוד, אבל יחסית מעט, סוג של Drag & Drop והרבה מאוד Template-ים וכאלה.אני לא יודע אם קיים כזה כלי היום . . . היה את Microsoft Access, אבל גם הוא די נכחד, אני לא מכיר . . .. 
    • (בנצי) היה עוד משהו . . . התחלנו לפתח בו ב-1994, והיה לי שם פרויקט שנמשך גם אחרי שעזבתי את פתרון מערכות, החברה שהייתי שותף בה, ותיחזקתי אותו במשך לפחות עוד 10 שנים - וזה ב-PowerBuilder . . .
    • ו-PowerBuilder זה היה [ועדיין . . .] סוג של מחולל-יישומים - ושם היית צריך לעבוד קשה, כי מתוך נניח שתי קומפילציות (Compile) - אחת הייתה נכשלת . . . . לא יודע למה, זה היה כלי מאוד לא יציב, אבל עשינו שם באמת דברים מדהימים איתו.
    • פיתחנו מערכת שלמה למפעל - כל רצפת הייצור פותחה בפרויקט של איזה עשר שנות-אדם, והוא הצריך קצת יותר מ-Magik . . .
    (אורי) אני חושב, רן, שכל ה-Access וה-Magik וזה - הם היו גם ה-Database וגם “מערכת התשאול” למחולל היישומים . . .(רן) . . . וגם ה-GUI . . . (אורי) כן - ושמעל זה, היום יש את ה-Database אבל בעולם של כלי-התשאול וכו’, בעיקר עבור הנגשת ה-Data לאנליסטים, או לא לאנליסטים . . . יש, כאילו, את כל העולם של ה-Tableau-ים למיניהם, שהם גם כאלה - אבל הם מנותקים כבר מה-Database, כי ה-Database הוא  . . . . 
    • (בנצי) בגדול, אפשר להגיד, עכשיו כשאני חושב על זה, כי לא ישבתי לחשוב על זה - ההבדל בין מחולל-יישומים כמו Access או כל הדברים האלה, זה שמפתחים טובים, אני חושב, פחות רצו לגעת בזה . . .
    • מי שעשה בזה דברים זה כל מיני רואי-חשבון או אנשים שלא היו ממקצועות הפיתוח, ואמרו “אנחנו עושים דברים מדהימים”
    • והייתי מסתכל ואומר “זה לא נראה לי כל כך  . . . .אני חושב שאפשר לעשות פה שיפור”
      • לא היית רוצה שאני אעשה לך את הדוח השנתי למס-הכנסה, אני מניח, אז  . . . 
    • רואי-חשבון מאוד אהבו את הכלים האלה, ו . . .
    (אורי) כל מי שבא מהמקומות של אנליזה . . . ובסוף, בגלל שזה היה הכל ביחד, אז לא יכולת ממש להביא  את ה-Scale מאחורי זה.
    • (בנצי) נכון - וגם, כשהם קיבלו כלי באמת רציני, אז הם אמרו “וואו, זה באמת נראה יותר מוצלח” . . .. 

    (רן) ובואו נמשיך קדימה - משם הגעת לעולם -#C וה-ASP  . . .
    • (בנצי) קודם כל ASP, לפני ה . . . יש את ה-ASP.NET . . . 
    • נחשפתי, ב-1999, לפיתוח באינטרנט . . . . לפני זה היו אנשים שפיתחו באינטרנט ואני לא  . . . 
    (רן) בקושי היה אינטרנט . . . בעצם ב-1999 כבר היה . . . (אורי) ב-99’ כבר היה . . .
    • (בנצי) אני זוכר שביקשתי . . . היו לנו כמה סטודנטים ממש מבריקים בחברה, וביקשתי ממישהו מהם.
      • הם למדו כל מיני דברים וידעו כל מיני דברים שאני לא ידעתי - ואמרתי “בוא, תראה לי איך מפתחים ב-Web”
      • ואני זוכר את זה, כי זה  . . . בוא נגיד שזה היה שיעור מעניין.
      • הבחור הראה לי איך עושים Frame, זה היה Frame כזה, מקלידים דברים - תערוך את זה, וזה עובר למסך הבא, עושה Update ועובר למסך הבא . . . 
      • ואני אמרתי “למה זה עובר למסך הבא? אני רגיל לזה . . .” והוא ענה לי “ככה זה באינטרנט . . . . אתה לא יכול, אין לך . . .”
      • זה היה . . .
    (רן) Stateless . . . 
    • (בנצי) . . . Stateless . . . ואתה חוזר אחורה וזה הנתונים הקודמים . . . ככה עובדים באינטרנט.
    • וישבנו על זה יומיים  . . . 
    (אורי) . . . ושינינו את האינטרנט . . .
    • (בנצי) . . . כן, והוא אמר “אני לא מאמין” ואני לא הבנתי איך מתכנתים בזה בכלל . . . .
      • “תעשה לי ככה ותעשה לי ככה” . . . .
    • ואז התחלנו להתעסק ב-Frame-ים - ואז החברה שלנו נכנסה ואמרתי “מתחילים לפתח ב-Web!”
      • כי זה נראה לי הרבה יותר טוב מ-Client-Server - אני לא צריך התקנות, אתה מקסימום מותקן בשרת של הארגון, אינטרא-נט וכזה.
    • ואז כל האפליקציות שלנו עברו לאינטרנט - אבל, כמו שאמרתי, אני לא סבלתי את ה-Stateless הזה, אני לא מוכן
    • אז התחלנו לעבוד עם Frame-ים, אתם מכירים? היו שם Frame-ים, ואני רציתי שה-Data יתרפרש (Refresh) עם המסך
      • אז זה בהתחלה נראה נורא ואיום
      • ואז הגיע ה-XML Objects . . . .
    (רן) XML HTTP . . . .
    • (בנצי) כן, של Microsoft - ואז ישר אמרתי וואו! זה נראה לי . . . 
    • אני לא יודע אם אתם יודעים  - ב-2004 יצא ה-AJAX, ב-2004 . . . .
    • ואמרתי “אני מכיר את זה, אני עובד בזה כבר 10 שנים, פיתחתי כמה Framework-ים כאלה  . . . . “
    (אורי) . . . שבעצם הם היו AJAX . . . .
    • (בנצי) הרבה שנים, כן . . . .
    (רן) אני רק רוצה לתרגם, למי שלא מבין את ה-Context, מה זה Frame - זו הייתה הדרך השינה לעשות AJAX - זאת אומרת, לטעון Data בצורה א-סינכרונית: היית טוען לתוך ה-</a> או <a href="https://gullele.com/hidden-frame-pattern-pre-ajax/">Frame-חבוי</a>, היית טוען Data והיית מצליח “לשתות אותו” - אז לא הייתה שום בעיה של <a href="https://stackoverflow.com/questions/15477527/cross-domain-ajax-request">Cross-domain</a> אז זה היה אפשרי, היום זה כבר בלתי אפשרי . . . . וזאת הייתה הדרך לעשות קריאות א-סינכרוניות לשרת מבלי לרפרש (Refresh) את העמוד.לדעתי, ככה גם נכתבה הגרסא של Gmail, אם אני לא טועה - עם כל מיני <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe"><iframe></a>-ים כאלה . . . ובאמת, ראו בחברות הגדולות ש”זה מה שהאזרחים אוהבים”, אוקיי . . . . זה מה שהמפתחים אוהבים, רוצים כל מיני קריאות א-סינכרוניות לשרת - ואז הוציאו באמת את <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest">XML HTTP</a> ונולד כל הסיפור הזה של ה-<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#whats_ajax">AJAX</a> [<a href="https://www.audible.com/pd/Troy-Audiobook/1797213024">הסיפור</a><a href="https://www.audible.com/pd/Troy-Audiobook/1797213024"> המקורי של Ajax</a> גם מרשים]<ul><li>(בנצי) דרך אגב - זו דרך לא קלה . . . </li><li>אני אישית, זוכר שב-2001 או ב-2002 הייתי באיזה כנס באילת, של Microsoft . . . . </li><ul><li>והיה שם פאנל-מומחים ואמרתי “תראו, אנחנו צריכים דבר כזה” - ואמרו לי “אף אחד לא צריך דבר כזה” . . . .</li><li>ב-2004, אחרי שהוציאו את ה-<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#whats_ajax">AJAX</a>, הם התאימו את עצמם מהר מאוד לדבר הזה וזהו.</li></ul><li>אבל כשהתחלתי לעבוד ב-<a href="https://www.mythings.com/">MyThings</a> - שם הייתי מנהל הפיתוח, בתהחלה, עד שהחברה גדלה והסתבר שאני כבר לא מתאים להיות מנהל פיתוח - אז אני התעקשתי שאנחנו נפתח דבר כזה -</li><ul><li>ואז עוד לא היה <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#whats_ajax">AJAX</a>, ה-<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#whats_ajax">AJAX</a> יצא אחרי זה</li><li>והאפליקציות שלנו היו One Page  . . . אחרי זה פרץ המונח הזה - אולי הוא היה קיים קודם אבל לא הכרתי אותו . . . .</li></ul></ul>(רן) <a href="https://developer.mozilla.org/en-US/docs/Glossary/SPA">Single-Page Applications </a>. . . . <ul><li>(בנצי) <a href="https://developer.mozilla.org/en-US/docs/Glossary/SPA">Single-Page Application</a>, שבעיני כן - זה מה שצריך להיות, זה נראה כמו שעבדת ב-Client-Server רגיל.</li></ul>(אורי) אז רגע - בתקופה הזאת, כבר “המרת” את עצמך ל-Microsoft? . . . .<ul><li>(בנצי) כן . . . . <a href="https://visualstudio.microsoft.com/">Visual Studio</a>, ה-<a href="https://docs.microsoft.com/en-us/dotnet/csharp/">#C</a> קנה אותי . . . </li><li>ודרך אגב - אפשר להבין, אחרי זה הבנתי - מי שכתב את <a href="https://docs.microsoft.com/en-us/dotnet/csharp/">#C</a> זה אותו בחור שכתב את <a href="https://en.wikipedia.org/wiki/Delphi_(software)">Delphi</a> . . . . </li><ul><li>אני לא זוכר את שמו, חלש מאוד בשמות . . . . בחור גאון כנראה, הוא כתב את ה-<a href="https://docs.microsoft.com/en-us/dotnet/csharp/">#C</a></li><li>[זה - <a href="https://thenewstack.io/microsofts-programming-language-czar-anders-hejlsberg-the-interview/">Microsoft’s Programming Language Czar Anders Hejlsberg: The Interview</a>]</li><li>וה-<a href="https://visualstudio.microsoft.com/">Visual Studio</a> פעם היה Customizable, מבחינתי הכלי אדיר . . .  זו הייתה קפיצת מדרגה אדירה של Microsoft, מבחינתי לפחות, אולי אחרים ראו אותם גם לפני זה ככאלה.</li></ul><li>ומאז אני די “שורץ” ב-<a href="https://docs.microsoft.com/en-us/dotnet/csharp/">#C</a>, למרות שחטאתי גם בדברים אחרים . . .  בצדדים, תוך כדי, אבל . . . .</li></ul><br />(רן) אז בוא נעשה רגע Brief קצר ואז נמשיך - דיברנו על הבניין הענק עם הכרטיסים, ואז ככה פיתוח ב-<a href="https://stackoverflow.blog/2020/04/20/brush-up-your-cobol-why-is-a-60-year-old-language-suddenly-in-demand/">Cobol</a> והיו עוד כמה דברים באמצע, לא נעצור על כולם . . . .(אורי) . . . שגם אנחנו כבר לא זוכרים . . . (רן) . . . ואז הגיע עולם ה-Object-Oriented ו-<a href="https://www.cplusplus.com/">++C</a> ו-<a href="https://en.wikipedia.org/wiki/Delphi_(software)">Delphi</a> ועברנו ל-Web, אוקיי . . . Web ו-<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#whats_ajax">AJAX</a> - אבל אנחנו לא עוצרים פה, ממש לא. אז התחילו Database-ים גדולים . . . .<ul><li>(בנצי) גם לאורך השנים היו Database-ים . . . בהתחלה, ישר כשסיימתי את הטכניון, אז SQL היה בתיאוריה [<a href="https://open.spotify.com/track/7Ks6KW7uIJY73PIk2v4V52">עוד</a><a href="https://open.spotify.com/track/7Ks6KW7uIJY73PIk2v4V52"> בימים הראשונים של ההיסטוריה</a>]</li><ul><li>נבחנו בתיאוריה על SQL</li><li>אבל כשהתחלתי לעבוד כבר היו SQL-ים - בהתחלה התחלתי ב-<a href="https://www.oracle.com/database/what-is-a-relational-database/">RDBMS</a>, ואז בחברת פז הם קנו SQL וזה היה דבר אדיר . . . </li></ul><li>עם השנים נחשפתי . . . אחרי זה הגיעו כל ה-PCs ונחשפנו ל-<a href="https://www.sap.com/products/sql-anywhere.html">SQL Anywhere</a> והיה ה-<a href="https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html">SQL של Oracle</a> וכל מיני . . . .</li><li>אז גם Database-ים שונים הם מבחינתי שפת תכנות לכל דבר - ה-Database-ים</li><ul><li>אני מתווכח עד היום עם מתכנתים שאומרים “אני יודע <a href="https://docs.microsoft.com/en-us/dotnet/csharp/">#C</a> וזהו - עזוב-אותי-באמא’שך, אני לא צריך לדעת איך מתכנתים ב-SQL” . . . . אבל זו שפת תכנות, אתה מוציא את אותם דברים, פשוט מסתכל על זה אחרת.</li></ul><li>אז ה-Database-ים האלה . . . . כמובן שאחר כך, <a href="https://aws.amazon.com/nosql/">NoSQL</a>, גם נחשפתי ל-<a href="https://aws.amazon.com/nosql/">NoSQL</a>-ים</li><li>דרך אגב - באמצע, אחרי שיש Big Data, שהיה לי ב-<a href="https://www.mythings.com/">MyThings</a>, זה מיליוני רשומות בשעה ויכול להיות שאני אפילו ממעיט, היו שם “הררי Data”.</li><ul><li>אז גם ניתוח באמצעות <a href="https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html">MapReduce</a>, שזה עוד מונח שחלק גדול מהאנשים לא מכיר בכלל כנראה</li><li>וטכנולוגיות כמו <a href="https://hadoop.apache.org/">Hadoop </a>וכאלה, שהיה לי העונג והמזל להתעסק עם זה קצת.</li></ul></ul><br />(רן) כן, אז דווקא אני חושב שעולם ה-<a href="https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html">MapReduce</a> וכו’ - לא מעט אנשים פה מכירים, אבל  Just in case - זה אולי ה-Predecessor של <a href="https://spark.apache.org/">Spark</a>, שהיום הרבה אנשים משתמשים בו, ומנועים אנליטיים של Big Data אחרים שקיימים היום. אז כן . . . אבל חטאת גם בעולם ה-Frontend - הגעת לעולם ה-<a href="https://angular.io/">Angular</a> . . . <ul><li>(בנצי) כן . . .אז קודם כל, ב-Frontend התעסקתי כל השנים פה ושם, אבל באיזשהו שלב, אחרי שהייתי הרבה זמן בחברת <a href="https://www.mythings.com/">MyThings</a> ב-Backend, אז עלה הצורך אצל רכיב מאוד מאוד קריטי בחברה, שלא עבד טוב</li><ul><li>היה צריך להחליף לו את כל הצורה - והוא היה, חלק גדול ממנו, Frontend.</li><li>ואז בעצם הכנסתי את ה-<a href="https://angular.io/">Angular</a> לחברה - החברה לא הכירה את זה קודם וגם אני לא . . .<a href="https://angularjs.org/"> Angular.js</a> זה היה</li><ul><li>אחרי זה רציתי גם להעביר אותו ל-<a href="https://www.npmjs.com/package/angular2">Angular2</a>, מה שנקרא שם, עכשיו זה 5-<a href="https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4">6</a>  . . .</li></ul></ul></ul>(רן) ושם כולם נפלו . . . .<ul><li>(בנצי) לא - החברה נפלה . . .  החברה נסגרה ו . . .</li><li>ואז במקביל גם נכנסתי לעולם ה-<a href="https://www.java.com/en/">Java</a> שלפני זה לא . . . וה-Backend שלנו היה ב-<a href="https://www.java.com/en/">Java</a></li><li>אז היו לי עוד 3 שנים שנהניתי בהן, להוביל את הקטע הזה בחברה - להוביל “מהספסל”</li><ul><li>אנחנו גם מדברים על איך להיות מפתח וכו’ - באותם שלבים בחיים כבר לא הסכמתי להיות גם הראש-צוות . . .</li><li>אמרו לי “בוא תיהיה ראש הצוות” ואמרתי “לא - יש את הבחור הזה…”, בגיל של הבן שלי אז הוא היה - “…בחור נחמד מאוד, שהוא יהיה ראש הצוות . . .”</li><ul><li>אני שופך מים על ידיו, מביא לו את הקפה וכותב את הקוד . . . .</li></ul></ul></ul>(רן) אולי נגיע באמת לנושא הזה, של מה שנקרא Individual Contributor לעומת מנהל אם נספיק - אבל לא סיימנו את המסע הטכנולוגי זה - כי הבטחנו Crypto!  מה עם Crypto? . . . <ul><li>(בנצי) אז איכשהו בסוף, אחרי שעזבתי את <a href="https://www.mythings.com/">MyThings</a> ועבדתי 5 חודשים באיזו חברה שמאוד רצתה אותי ואני לא נהניתי שם, אז אחרי 5 חודשים דיברתי עם מי שהיה הבוס שלי ב-<a href="https://www.mythings.com/">MyThings</a> והוא שאל “אתה רוצה לבוא אלינו, ל-<a href="https://www.etoro.com/">eToro</a>? זה Crypto, מסחר . . . .”</li><ul><li>אמרתי שמסחר זה לא מעניין אותי . . . </li></ul></ul>(אורי) יואב . . . גם הוא לא בחור צעיר . . . <ul><li>(בנצי) הוא ילד! בן 63 בקושי . . . והוא אמר “גם אלכס פה” - עוד מישהו שהיה ב-<a href="https://www.mythings.com/">MyThings</a>, אז אמרתי יאללה . . . .אני אבוא.</li><li>אז אני לא מתעסק במסחר כל כך, בקושי יודע מה זה Crypto, שמעתי על זה - הוא אמר “עזוב - לפתח אתה יודע”</li><li>אז נכנסתי גם לעולם הזה, של הארנק האלקטרוני, וכן - אני נהנה לעשות שם דברים מול ה-Blockchain-ים</li><ul><li>אני חייב להגיד - לא ישירות מול ה-Blockchain אלא דרך Provider - אבל עדיין צריך קצת הבנה וקצת דברים כאלה.</li></ul></ul><br />(רן) אז אני רואה אותך ככה יושב פה ומדבר על אוסף הטכנולוגיות המרשים, שאני אולי מכיר חצי מהן ומבין רבע . . . ואני שואל את עצמי איך יש לך כזה ברק בעיניים? למה דברים כל כך מעניינים אותך? איך אתה משאיר את עצמך מעודכן? מה גורם לך - עוד אלגוריה אחת - מה גורם לך להזיז את הגבינה של עצמך כל הזמן? זאת אומרת - לא היה לך טוב שם, איפשהו ב-<a href="https://www.ibm.com/docs/en/i/7.1?topic=languages-rpg">RPG</a> וב-<a href="https://stackoverflow.blog/2020/04/20/brush-up-your-cobol-why-is-a-60-year-old-language-suddenly-in-demand/">Cobol</a>? למה לא נשארת שם, למה זזת קדימה?אני אנסח את השאלה קצת אחרת - איך אני, כמפתח שאולי נמצא במקום טוב ונחמד, איך אני משאיר את עצמי מעודכן? זו שאלה עם שתי פנים, שנשמח להתייחסות שלך.<ul><li>(בנצי) אז אני אומר - אני לא יודע אם זה יותר מזל משכל אבל אני פשוט אוהב להנות . . . .</li><li>אני נהנה ממה שאני עושה, ואם אני לא נהנה אז אני עושה שאני אהנה . . . אם אני מקבל משימה משמימה, ויש כאלה - אז אני עושה אותה מעניינת . . . </li><ul><li>כמו שאמרתי - אני מתעצל, אז אני  . . . .קשה לי להסביר, אני פשוט נהנה מזה</li><li>וללמוד דבר חדש, מבחינתי, זה כיף.</li></ul><li>גם בתור תלמיד הייתי ילד די מעצבן - כשכולם יצאו לחופש ואמרו “סוף סוף חופש” - אז אני הייתי יושב ופותר את כל התרגילים בספר . . . </li><ul><li>לא שהייתי כזה “חננה”, כי תמיד הפרעתי וזרקו אותי מהכיתה - אבל  . . .</li></ul></ul>(רן) האתגר . . . <ul><li>(בנצי) האתגר - ותיכף אני אספר על זה עוד משהו, אתגרים שלא קשורים דווקא לתוכנה - אבל כן, אני אוהב אתגרים מהסוג הזה.</li><li>ואני באמת, גם עכשיו, לאחרונה רק לפני איזה שנה, נכנסתי ל-<a href="https://kubernetes.io/">Kubernetes </a>וה-<a href="https://www.docker.com/">Docker</a>-ים וה-Container-ים</li><ul><li>ואני רואה אנשים סביבי שאומרים “די ,נו, מספיק - יש לנו את ה-<a href="https://www.jenkins.io/">Jenkins </a>ואת ה-Deployment הרגיל ו-VM-ים, למה אני צריך ללמוד עוד משהו?”</li><li>ואני אומר “נותנים לך ללמוד -תיקח את זה!” . . . . זה כיף, מה? . . . .יש לך <a href="https://aws.amazon.com/eks/">EKS </a>ו-<a href="https://kubernetes.io/">Kubernetes</a> ו-<a href="https://kubernetes.io/docs/concepts/workloads/pods/">Pod</a>-ים . . . זה ממש מעניין</li><ul><li>אני נהנה, ואני, גם עכשיו, אומר שהתמזל מזלי, כי אני עדיין קם לפעמים ביום שישי בבוקר, כשאני לא צריך לעבוד - ובא לי רעיון בלילה לאיך לשפר משהו</li><li>ואני לא מתאפק ובמקום לטפל בגינה כמו שאשתי רוצה, אני  חותך למחשב . . . . </li></ul></ul></ul>(רן) דבר ראשון, כשעוברים לבית חדש - קודם כל לעשות אוטומציה לגינה! אוקיי? . . . . זה הלקח שלי, כשיש אוטומציה בגינה אתה פנוי לעשות דברים אחרים.<ul><li>(בנצי) הגינה אוטומטית, אבל האשה לא . . . . </li></ul>(רן) למאזינתינו בפודקאסט . . . אז אתה אומר שאתה פשוט אוהב את זה, זה בא לך בלי מאמץ - אתה פשוט אוהב את הלימוד . . . .<ul><li>(בנצי) אני גם אוהב לעשות - אני אוהב לעשות, ואני מתפלא על אנשים שלא אוהבים</li><li>וכשאני אומר “פתרון בעיות” אז אני אומר שלאחרונה נתקלתי במשהו חדש - לא בתחום התוכנה</li><ul><li>אני מקווה שזה שומר אותי קצת יותר צעיר וזה . . . .</li><li>הבן שלי, לפני שלוש וחצי שנים הצליח לגרור אותי, אחרי שנה של שכנועים, לבוא לטפס איתו פעם אחת ב<a href="https://www.boulder.co.il/introduction-to-bouldering--">בולדר</a> - זה טיפוס Indoor, טיפוס כזה.</li></ul><li>(אורי) קירות טיפוס . . . </li><li>(בנצי) קירות טיפוס . . . ואמרתי לו “נו, באמת - בגילי? מה אני? אני אטפס וזה? . . . </li><ul><li>באתי לפעם אחת ניסיון - וחתמתי קבע . . .  ואני מנוי ואני כנראה אטפס שם . . .</li><li>ואני מטפס שלוש פעמים בשבוע - והם מתייחסים לזה, בטיפוס יש מסלולי טיפוס - מסלול-טיפוס זה לפתור בעיה</li><li>(אורי) זה משהו מאוד מאוד טכני, כן . . .. </li><li>(בנצי) כן - ואתה צריך לפתור בעיה, וזה נחמד מאוד, וזה עוד משהו שאתה עושה</li><li>ואז באו הסגרים . . . ואי אפשר היה להגיע לבולדר כי היה סגר, אז החלטתי לבנות קיר טיפוס בגינה . . . </li><li>(אורי) טיפסת על הקירות . . . .</li><li>(בנצי) טיפסתי על הקירות . . . קניתי ציוד, בניתי קיר  . . . וזה היה אתגר, פשוט היה אתגר.</li><li>ואמרתי שאחרי זה אני אמשיך עוד . . .  נגמר, זהו, האתגר נגמר וזהו</li><ul><li>אבל בניתי, אז אני  . . .</li></ul></ul><li>(אורי) נראה אותך בנינג’ה בקרוב?</li><ul><li>(בנצי) כן, כולם שואלים  . . . .</li></ul><li>(רן) עכשיו, כשנגמרה העונה, ויש לנו כבר את הזוכה של העונה, אז אתה יכול להגיע לעונה הבאה . . . .</li><li>(בנצי) אני יכול לנקות להם את הרגליים עם הסמרטוט הזה . ..  . אני מסתפק בזה שאני מגיע לבולדר אז כולם, כל הצעירים, אומרים “וואו, הלוואי והייתי מטפס כמוך”</li><ul><li>ואני אומר “כן, אבל אתה מטפס יותר טוב . . . “ - והוא אומר “לא, כשאני אהיה בגילך” . . .</li><li>(רן) “למה? בן כמה אני נראה לך? . . . .”</li></ul></ul><br />(אורי) רגע, אבל בנצי - אני לא יודע אם אתה כבר בגיל פרישה או לא, אתה כל הזמן פה מסרב להגיד את גילך . . .<ul><li>(בנצי) בן 67 . . . .</li></ul>(אורי) בן 67, מברוק! הלוואי על כולנו. באמת, אתה לא חייב ללכת לעבוד, נכון?  . . . . אני מתאר לעצמי. האם העבודה שומרת לך על האתגרים, או שהיית . . . כולנו הבנו שאתה בחור שמחפש אתגרים -  האם זה חייב לבוא דווקא מהעבודה, או שאתה יכול היום למצוא לך את הדברים האלה במקום אחר? איך אתה חושב על עצמך, במקום הזה?<ul><li>(בנצי) קודם כל - כן, אני יכול למצוא את הדברים האלה גם במקום אחר - אני אוהב לקרוא, אני יכול לטייל, אני יכול לעשות כל מיני דברים.</li><li>אבל העבודה מוסיפה לי משהו . . . זה הצורך לפתור בעיות אמיתיות שמישהו ממציא לי</li><ul><li>כי כשאני קורא - זה לא אתגר גדול, אני מאוד אוהב לקרוא.</li><li>יש לי חבר שכותב ספרים ורוצה שאני אכתוב איתו - הייתה תקופה שכתבנו בכל מיני מקומות וזה גם יכול לבוא.</li><li>אבל עצם זה שיש צורך - של מישהו אחר, לא שלי - ואני מצליח לפתור אותו ולפתור אותו בצורה שאני מרגיש שהיא “וואו!”</li><ul><li>לא אכפת לי מאחרים, בינינו . . . מה אכפת לי מה הם חושבים? </li><li>אני חושב שזה “וואו!” ולפעמים גם אחרים חושבים ככה.</li></ul><li>אז זה נותן לך כיף לקום בבוקר, זה (א)</li></ul><li>ואנשים צריכים אותך, אנשים מתייעצים איתך - ואתה מרגיש כיף.</li><li>לפעמים זה מעייף - אז בשביל זה יש חופשה.</li><li>יכול להיות שאני אוריד משרה באיזשהו שלב, אבל לא קרה . . .</li><li>לפני 15 שנים, כשעזבתי את <a href="https://www.themarker.com/misc/1.14581">פתרון מערכות</a>, שהייתי שם שותף, אמרתי שאני חייב לנוח </li><ul><li>הייתי עובד כל יום 12 שעות מינימום</li><li>אני צריך לנוח, די - “חצי משרה זה מספיק לי”.</li></ul><li>ואחרי שנה התחלתי לטפס על הקירות . . . אני צריך משרה מלאה, אני לא יכול . . . </li><ul><li>אני צריך אתגרים רציניים ולא כפרילנסר, עם כמה פרויקטים פה ושם.</li><li>לי זה נותן . . .</li></ul><li>ושאלו אותי האם אני מתכוון לפרוש - לפני שבועיים מלאו לי 67 ובחברה שאלו אותי “אתה מתכוון לפרוש?”</li><ul><li>אמרתי “אל תבנו על יותר מ-10 שנים” . . . .</li></ul><li>בינתיים כן - כל עוד כיף לי והעבודה מעניינת אז אני נשאר.</li></ul>(רן) איזה כיף לשמוע את זה.<br />הייתי רוצה לדבר על עוד איזשהו נושא אחד, נעשה אותו ככה קצת יותר קצר - הזכרת לא מעט שגם היית בפוזיציות ניהוליות, וגם שהיתה לך חברה שהיית שותף בה - והיום אתה לא. באיזשהו שלב באת ואמרה “שמישהו אחר יעשה את זה”. אני מתאר לעצמי שהרבה מאוד אנשים נמצאים בדילמות האלה - האם, נקרא לזה “להתקדם לניהול”, שזה לא בהכרח קידום אבל הרבה אנשים רואים זאת כך, ואיך זה הולך להשפיע על הקריירה שלי.רציתי לשאול אותך איך אתה, בדיעבד, רואה את בחירות הקריירה שלך, והאם אתה יכול לחלוק טיפים למי שעדיין נמצא בהתלבטויות כאלה?(אורי) יש  לנו הזדמנות נדירה לקבל פרספקטיבה אחורה על ניהול קריירה . . . .<ul><li>(בנצי) כנראה שזה באמת עניין של התאמה אישית - יש אנשים שמתאימים להיות מנהלים, ויש כאלה שפחות.</li><li>אני באמת רציתי . . . בעיקר רציתי להוביל בניהול כי חשבתי שאני מסוגל להביא פתרונות טובים ואז להוריד למטה מעטפת</li><ul><li>שאנשים אחרים יבצעו רעיונות טובים</li><li>(אורי) רעיונות שלך . . . </li></ul><li>(בנצי) ועשיתי את זה ב<a href="https://www.themarker.com/misc/1.14581">פתרון מערכות</a>, שהייתה חברה שבה הרבה פעמים תכננתי מערכות ויצאו שם מטעמים.</li><li>חשבתי שאני מתאים להיות . . . אני ראיתי את מנהל הפיתוח, ראיתי בעיקר כלתכנן את העבודה, ולא את האנשים.</li><ul><li>ומסתבר . . . זה בא תמיד עם אנשים, ואת זה אני לא כל כך אוהב . . . . אני לא יודע, משום מה.</li><li>גם בצבא - הייתי קצין, ובאיזשהו שלב נמאס לי להתעסק עם הבעיות של החיילים, רציתי לבצע את המשימה.</li><ul><li>אני אוהב לנהל את המשימה, לא את האנשים</li></ul></ul><li>וירדתי והייתי ראש צוות - והרגשתי שזה בעצם סתם מפריע לי להינות, ואני רוצה בשארית חיי להינות . . . .</li><li>אז אם אני נהנה מתכנות ולא מלדווח כל הזמן כלפי מעלה על כמה זמן זה לקח וכמה זמן זה לוקח . . . </li><ul><li>יש לי מספיק את המשימה שלי שאני צריך לדווח עליה ויש לי מספיק אחריות, כן?</li><li>אבל הבעיה זה לא האחריות - הבעיה היא להיות אחראי על אנשים אחרים ותוצרים אחרים ולהגיד “למה את עכשיו יוצא לחופשה? למה אתה לא עובד עד 10 בלילה?” . . . . - זה לא מתאים לאופי שלי.</li></ul></ul>(אורי) האמת שלי לקח המון זמן להבין כמה דברים על ניהול . . . . קודם כל, יצאתי מתפקידים, נגיד בצבא, שאמרתי לעצמי “אני לא רוצה יותר בחיים לנהל אנשים” . . . . אחרי זה הבינו שכדאי שאני אנהל ושאני לא אפתח, אבל לקח לי המון המון שנים להבין שבניהול אתה לא צריך להביא את הפתרונות, אתה צריך לשאול את השאלות הנכונות, לאתגר את האנשים בצורה נכונה, לכוון את האתגר אליהם - ואם יש לך את האנשים הנכונים אז הם יבואו עם הפתרון.(רן) זה נכון - אבל מה שבנצי אומר זה שהוא אוהב לעשות את העבודה הזאת, של הפתרונות . . .<ul><li>(בנצי) היו מקרים לא נעימים . . . מקרה אחד היה מובהק, שחברת <a href="https://www.mythings.com/">MyThings</a> לקחו צוות מבלארוס, והיה לנו Deadline אדיר מול  . . . היינו צריכים להציג משהו ב-FBI, בארה”ב - ואני ראיתי שהם לא עומדים בלוח הזמנים</li><ul><li>ואמרתי “אי אפשר” - אז אמרו לי “אז שהם יכשלו” . . . .</li><li>אמרתי “אין דבר כזה” . . . . פשוט פיתחתי את הכל לבד, פשוט זרקתי אותם.</li><ul><li>כי ראיתי - הם קילקלו גם קוד שכבר כן תרמתי להם קצת . . . </li></ul><li>פשוט עזבתי את כל העבודה שלהם הצידה ועוד בדרך לארה”ב, בדרך לועידה, השלמתי את הקוד - והיינו מוכנים לשם.</li><li>ואם לא, פשוט לא היינו עומדים בזה - ואני לא מסוגל לזה.</li><li>ואני מכיר באמת מנהל טוב - “העולם יכול ליפול ואני לא כותב את הקוד . . .  שמישהו אחר יכתוב את הקוד”.</li></ul></ul>(רן) כן, אבל בעצם אתה בא ואומר “זה גדול ממני, זו לא בחירה שלי - זו בחירה שהיא כבר טבועה ב-DNA שלי” . . . דיברנו מקודם על איך ללמוד ואיך להתפתח, ואתה אומר “היה לי מזל . . . . אני פשוט אוהב את זה, אז אני לומד”. וגם פה אתה בא ואומר “ניסיתי ניהול, ראיתי שאני פחות אוהב את זה - וחזרתי להיות מפתח מן השורה ופה אני פורח”. בעצם המסר שלך הוא בואו - תכירו את עצמכם, תבינו מה אתם אוהבים, תעשו את מה שאתם אוהבים - ואז גם תעשו את זה הרבה יותר טוב.<ul><li>(בנצי) קודם כל, כשאנשים צעירים שואלים אותי מה לעשות, אני אומר “תעשה משהו שאתה אוהב לעשות, כי אם לא אתה תסבול כל החיים” . . . </li><ul><li>רוב הזמן שלנו זה עבודה, אז כדאי שנהנה מזה  . . .</li></ul><li>אני מכיר אנשים שבאמת עשו מהפך - ומתכנות עברו ליצירת תכשיטים, וזה כיף להם</li><ul><li>אז זה מצויין, אם הם נהנים מזה.</li><li>אני נהנה מפיתוח אז  . . .</li></ul><li>ויש מנהלים - ואני מכיר מנהלים שהם טובים בניהול באמת - והם לא מתרגשים מזה, או מתרגשים פחות - אם זה לא עומד בלוח הזמנים.</li><ul><li>אם הם נכנסים לפאניקה אז הם כנראה מנהלים פחות טובים וכו’.</li></ul></ul><br />(רן) בנצי, היה לנו לעונג! ממש כיף לדבר איתך(אורי) ממש כיף, תודה שבאת!(רן) סיפור מאוד מעניין(בנצי) גם לי . . . צריך לשלם? על זה שנתתם לי במה? . . . (רן) בסוף . . . תודה רבה ולהתראות.<br /> האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    44 min
  • 435 Optibus Playback with Eitan Yanovsky
    [קישור לקובץ mp3]
    היום אנחנו מארחים באולפן בכרכור את איתן ינובסקי בשנית: איתן התארח בפודקאסט ב-2018 (Before Covid), אז דיברנו על כמה אתגרים טכנולוגיים מעניינים שיש בהחברה שלו - Optibus - והיום נדבר על עוד אתגרים. 
    ולפני שנצלול לאתגרים, איתן - ספר לנו קצת על עצמך ועל Optibus
    • (איתן) אז אני איתן, ה-CTO וה-Co-founder של Optibus; עוד רגע נושק לגיל 40, עבר זמן . . . 
    • אנחנו בונים פלטרפורמה לתכנון וניהול של תחבורה ציבורית ושל הסעות המונים, שממש אחראית על תכנון של איך אנחנו הולכים להסיע מיליונים של אנשים ברחבי העולם.
      • היום, בפועל, אנחנו פרושים כבר בלמעלה מ-30 מדינות ומתעסקים בהסעות של 2.5 מיליארד אנשים, ברמה שנתית.
    (אורי) פתאום, כשאתה מדבר על זה - כאילו בא לי לשאול אותך על הקורונה, אבל זה נראה לי . . . . היא עשתה לכם משהו בימים האלה, כשהתחבורה הציבורית הפסיקה?
    • (איתן) אז זו באמת שאלה מעניינת - כשהתחילה הקורונה אז כמו לכולם היו לנו קצת חששות, בפרט לגבי תחבורה ציבורית, אבל . . . 
    (רן) היא לא הפסיקה, רק השתנתה . . . זה באמת אתגר מאוד גדול למי שמתכנן . . . .
    • (איתן) בדיוק, כי במקום להפסיק . . . היו שבועות שזה ממש הפסיק, נגיד בסגר המוחלט בישראל, אבל אז זה הפך לגלים של “עכשיו אנחנו צריכים 50% או 20% או 80%”, ברמה ממש שבועית, וזה משתנה.
      • זה דווקא עשה אפקט הפוך - שפתאום הרגישו את הצורך במערכת כמו שלנו, 
        • במקומות שהשינויים הם יחסית איטיים - פעם בחצי שנה או שנה - ועכשיו אני צריך פתאום להגיב לדרישות של שינויים ברמה השבועית . . . .
    (רן) ניתן רק בשתי מילים, למי שלא זוכר את תקציר הפרק הקודם - בגדול, במקום לעבוד עם טבלה ונייר שבהם רושמים מי נוהג באיזה אוטובוס ואיזה קו הוא עושה, אז Optibus מתכננת את כל זה, ועוד הרבה יותר, מן הסתם - אבל עושה את זה באופן אוטומטי ויעיל. כך שתכנון לוחות הסעות וכל מה שקשור בזה - אם זה משתנה ברמה יומית אז זה כבר לא פרקטי לעשות בידי אדם, אבל Optibus יודעת לעשות את זה.
    • (איתן) נכון, ומאז גם התרחבנו הרבה יותר במה שאנחנו עושים, מרמת תכנון הרשת ואיך שזה מגיב לביקושים והלוחות זמנים
      • רכבים, נהגים . . . ברמה של תפעול יומיומי ואיך להגיב למה שקורה ביומיום וכו’.
      • דווקא בקורונה פתאום נוצר צורך הרבה יותר גדול במערכת - דווקא הייתה לנו את אחת השנים הטובות, שלאחריה הגיע גם ה-Round C שעשינו.
      • היום אנחנו Post Round C
    • היום אנחנו כבר באיזור ה-330 אנשים - אני חושב שבפעם האחרונה שדיברנו היינו באיזור ה-50-60, אני לא זוכר בדיוק את המספרים
    • ובסופו של דבר, כמו שאמרתי, אנחנו מסיעים מיליונים רבים בעולם - הלקוחות שלנו משתמשים במערכת כדי לתכנן איך להסיע את האנשים הללו בצורה מיטבית.
    (רן) אז הלקוחות זה חברות אוטובוסים דוגמת “אגד”, לא יודע אם כלקוח ספציפית שלכם אבל כדוגמתם, בעולם . . .
    • (איתן) נכון, אגד הם לקוח ספציפי שלנו, אפילו אחד הראשונים, אבל כן - חברות כאלו בעולם.
      • בנוסף - לא רק: גם חברות שבעצם . . . למשל בניו-יורק יש חברות שהן חצי-ממשלתיות שאחראיות על התחבורה
      • אבל גם חברות כמו Facebook ו-Apple שהן לקוחות שלנו, ל-Commute של ה-Employees’ Shuttle שלהם
      • זה צי של מאות אוטובוסים שיש להם שם.
    • אז בעצם כל התעסקות במסות גדולות של אנשים, שצריך לתכנן את זה מראש ולא רק להגיב on-the-fly - 
      • כי אתה צריך לבנות רשת שתיהיה יעילה, אחרת התפעול יהיה מאוד לא יעיל.
    (רן) מבחינת התפעול, לא הביצוע - הנהגים הם לא הנהגים שלכם, האוטובוסים לא שלכם . . . .
    • (איתן) נכון, אנחנו רק SaaS ו-Everything is on the Could - אנחנו לא מספקים שירותים מעבר לזה.

    (רן) כשעשינו את ההכנה לפודקאסט, ראינו שאחד האתגרים שצצים זה ש”אוקיי, אז מה קורה אם הוספתי פיצ’ר - תיקנתי באג, אני חושב שתיקנתי באג ואני לא רוצה שאותם 2 מיליארדים שמחר נוסעים בבוקר פתאום ימצאו את עצמם בלי אוטובוס . . . . “.אז איך עושים QA למערכת שכזו?
    • (איתן) בעצם אנחנו Mission Critical SaaS system, והמשמעות של רגרסיות - ה-Impact של זה בסוף משפיע על התפעול של התחבורה וגם יכול להגיע למצב שאי אפשר להוציא למחרת את התחבורה, או אפילו ב-Day-to-Day . . . 
    (אורי) עכשיו אתה חייב לתת דוגמא לבאג ומה שקרה . . . .(רן) “אז כשעברנו מהמערכת המטרית למערכת של המיילים, כל האוטובוסים עצרו שישה מייל לפני התחנה” . . . . [How NASA lost a 327 Million Dollar Mission to Mars]
    • (איתן) השוליים צרים מלהכיל את כל הבאגים שקרו לנו ואת הפאדיחות . . . 
    • אבל אתה יודע - יש את הרגעים האלה שמכניסים משהו וזה מקריס את ה-Production פתאום, וככל . . . 
      • בהתחלה, נגיד כשזה היה קורה לנו לפני חמש שנים, ה-Usage במערכת לא היה כזה גבוה ולפעמים היה לוקח אפילו 20 דקות עד שמישהו שם לב.
      • עכשיו זה תוך שלוש שניות - ה-Support מתחיל להפציץ אותנו בדברים שלא עובדים, אז אתה מבין את ה-Impact של כל  . . .
    (אורי) כי מתקשרים אליהם?
    • (איתן) גם יש Monitoring וגם כן - ה-Support שמתקשרים אלינו.
      • בסוף ה-User-ים של המערכת שלהם, זה מה שהם עושים ב-Day-to-Day - נכנסים לעבודה, פותחים Log-in ל-Optibus ומתחילים לעבוד
      • ואם משהו לא עובד אז . . . 
    (אורי) וזה “הסדרנים”?
    • (איתן) זה מתחיל מאנשים שמתכננים את רשת הקווים, עובד לאנשים שאחראים על שיבוץ תוכנית הרכבים והנהגים ובסוף . . . .
    • הסדרנים זה יותר ה-Day-to-Day - עכשיו אני צריך לתפעל את מה שקורה
    • ויש גם את האפיק של התכנון - מה עושים מחר ובעוד שבוע ובעוד חודש?
      • איך אני מגיב ל-FIFA, למשל - יש אירוע לתכנן . . . .
      • משתמשים בנו כדי לתכנן לקראת אירועי ספורט כמו אליפויות עולם וכו’.
      • אז כן - משתמשים מהסוג הזה.
    • הסדרן - זה כמובן הכי קריטי מבחינתו, כי הוא ממש עכשיו מטפל ברכבים שנמצאים על הכביש וצריך להתמודד עם מה שקורה שם, וכשהולכים שנה אחורה זה ניהיה . . .
    (אורי) אז רק כדי שנקבל את הסדר-גדול של מה שקורה כשיש באג משמעותי . . . .
    • (איתן) תחשוב על זה ש-60% מהתחבורה באנגליה מתוכננת באמצעות המערכת שלנו . . . אם הכנסנו משהו שבאמת, לצורך העניין, כל כך משמעותי שהוא באמת Crippling של כל המערכת, אז למחרת - או כרגע, תלוי באיזה רכיב אתה מקלקל במערכת - זה יכול ממש לדפוק את ה-60% . . . לגרום לבעיה בתחבורה, ש-60% מהנסועה . . .
    (אורי) אנשים לא יגיעו ל-Tea Time שלהם . . . 
    • (איתן) כן . . . .לא הגענו לסיטואציה כזו אף פעם, בדרך כלל אם אני אתקע אז זה על דברים של עוד כמה ימים, לא ממש ב-Real-time, זה קטסטרופלי.
      • אבל כן - צריך לדאוג שזה לא יקרה, ומן הסתם היו הרבה Crisis-ים ובכל פעם השתפרנו ובנינו דברים ויכולות כדי למנוע ושזה לא יקרה יותר, דברים כאלה.

    (רן) אז כמו שאתה אומר, יש פה שילוב של מערכת SaaS, זאת אומרת שזה Software as a Service וזה לא שאתה שולח דיסקים לחברת האוטובוסים - זה הכל נמצא שם בענן ואתה יכול לעדכן את זה בכל דקה, ואני מניח ש-Continuous Deployment זה כבר “חדשות דאשתקד”, מצד אחד. מצד שני, כמו שאמרת זה Mission Critical, וזה אומר שיש אנשים שתלויים באופן קריטי בזה שהמערכת תפעל - ותפעל נכון, לא רק תפעל . . . 
    • (איתן) נכון, ועוד דבר שמאפיין זה שאין הרבה משתמשים שונים במערכת
      • זה לא, נגיד, Facebook - כשיש לך עשרות מיליוני משתמשים ואתה יכול, אולי, לעשות נזק לאחוז מסויים.
      • מעבר לזה ש-Facebook הוא לא Mission Critical . . . אולי אפשר להתווכח על זה עם כל מיני אנשים, אבל במציאות . . . .
    (רן) תלוי במשטר . . . 
    • (איתן) תלוי במשטר . . . יחסית יותר קל להגיד “אוקיי, בואו נפרוש משהו לאחוז אחד מהאוכלוסיה”.
    • אצלנו, בסוף המשתמשים זה לא הנוסעים אלה אנשים האנשים שמתכננים את התחבורה.
      • אז זה מאות משתמשים - גג - בו-זמנית, ואחוז אחד זה כבר לא מספר Significant-י לעשות שום דבר
      • מעבר לזה - אפילו אם תדפוק לאחוז האחד הזה משהו שהוא קריטי, זה עדיין עלול לייצר בעיה במקום כמו אם האחוז הזה עכשיו אחראי על התחבורה בלונדון או משהו כזה, ואז אתה מייצר שם נזק.
    (רן) אני חושב, דרך אגב, אם אני לא טועה, ב-Waze הם אמרו שישראל זה כר-הניסוי שלהם . . . . סוג-של, כן - לא נוציא את הדברים מהקשרם [הנה הקשרם - 419 Navigation @Waze], אבל שפיצ’רים חדשים יוצאים קודם כל במדינה מסויימת, שיודעים ששם יש יותר רצון לקבל חדשנות, ורק אחר כך מעבירים את זה לשאר העולם.זה משהו שאתם עושים גם?
    • (איתן) אז אנחנו במתח . . . . עכשיו, ממש לאחרונה, התחלנו  והוספנו מערכת של Gradual Rollout.
    • בנינו אותה In-house, כי ה-Gradual Rollout של היום יותר בנוי ל-Use-case הזה, כמו שאמרתי, של Facebook - כשיש לך סגמנטציה ומלא משתמשים - ופחות למקרה שאני רוצה, ללקוח Enterprise מסויים, שהוא יהיה ב-Stage X ב-Deployment, כי אני יודע שהוא  פחות Tolerant לבעיות.
      • ואנחנו באמת פורשים בשלבים - כאשר אתה מתחיל יותר עם ה-Early Adapters - שאתה גם מסכם איתם שהם יחשפו ראשונים והם רוצים לקבל את הדברים כמה שיותר מהר
      • ומגדילים את החשיפה כשאנחנו פוגשים, נגיד, את ה-Enterprise, טיפה יותר מאוחר - וגם אצלם מחליטים מי יהיה ה-Early Adapter בתוך ה-Enterprise, כי אנחנו יודעים גם בתוכו לעשות את ה-Gradual Rollout.
    • וזה ממש משהו שהכנסנו, יחסית, בחצי שנה האחרונה - וממשיכים לשפר ולנטר את זה.

    (רן) אוקיי, אז אלו פתרונות יחסית מוצריים, או “Biz-Dev-יים” נקרא לזה - אבל בוא נדבר רגע על פתרונות טכנולוגיים.הקמתם, בעצם, מערכת פנימית שקראתם לה . . . .
    • (איתן) Playback
    (רן) אז בוא - ספר לנו עליה.
    • (איתן) אז אני אספר רגע על המוטיבציה - אנחנו מאמינים מאוד ב-TDD, הרבה Coverage בטסטים
      • אבל בסופו של דבר אתה עדיין מוצא את עצמך עם רגרסיות ב-Production ו-Crisis-ים . . .
      • והתחלנו לתחקר למה זה קורה.
    • עברנו ממש על  . . . אמרנו “בואו נסתכל על השלושה חודשים האחרונים”, על כל הבאגים שהוגדרו כ-On-call, זאת אומרת שהגיעו ב-Production ויצרו Stop the work וצריך עכשיו לתקן אותם . . . .
    (אורי) אז זה קרה כי הרגשתם שיש תקופה שבה זה קורה יותר?
    • (איתן) כן - וגם כי כמות ה-User-ים שלנו גדלה פי-2 כל שנה - אז כשיש לך 5-10 User-ים ה-On-call פחות חווה את המשמעות של שלושה אנשים שמתקשרים.
      • כשפתאום 50 אנשים מתקשרים שהם לא מצליחים לעבוד, ואז 100 אנשים בו-זמנית - אז גם העוצמה  של ה-On-call הופכת להיות . . . .
      • בעצם, ההגדרה של ה-On-call לא הייתה קיימת בשנתיים-שלוש הראשונות שלנו - זה התחיל רק כשבאמת הגענו למצב שאתה אומר . . . On-call אומר שמישהו צריך לעצור ולהסתכל על זה, כי זה מונע ממישהו לעשות את העבודה שלו, או יותר ממישהו (אחד)
        • אבל אפילו מישהו אחד אצלנו זה מספיק.
    • עשינו תחקור, ראינו שהיו קצת Crisis-ים, ראינו שזה קרה יותר מדי ואמרנו “בואו ננסה להבין למה”.
      • אנחנו עובדים Data-Driven בחשיבה.
    (רן) אז אמרתם ללקוח “אבל הכל טסטים ירוקים! מה אתה רוצה ממני?”(אורי) “אצלי זה עובד!”
    • (איתן) בדיוק . . . .
    • אז ממש עשינו קטיגוריות לסיבות של למה זה קרה - לפעמים זה Missing Test, לפעמים  זה ש-QA שפספס, לפעמים זה . . . לא יודע, סתם “צעירות”, נקרא לזה.
    • אבל ראינו שאחת מהסיבות שחוזרות על עצמן זה  . . . .
    (אורי) “QA פספס” זו הסיבה הכי  . . . . זה ה”עלה תאנה” הכי גדול שיש
    • (איתן) זה גם מעט מאוד ממה שאתה מחשיב, מהסיבות . . . .
    (אורי) כן, אבל כאילו . . . .(רן) אורי אומר שכשיש ש.ג. שמולו עומד טנק - ואם הוא נותן לו להכנס אז אתה אומר “פאשלה של הש.ג.!” . . . .
    • (איתן) נכון, אז כשאמרנו “QA שפספס” זה היה באמת במעט מאוד מהמקרים, לא בסיטואציות של כסת”ח אלא יותר “שמע, זה היה טריוויאלי, היית אמור לגלות”, אבל זו לא הנקודה.
    • מה שראינו זה שהרבה מאוד מהמקרים היו תחת קטיגוריה של “Edge case” . . . .
      • זאת אומרת שלחשוב לבנות טסט שבודק בדיוק את הקומבינציה של כל המקרים ב-TDD זה לא ריאלי, כי לא עובדים ככה ב-TDD
        • אתה כל פעם מוסיף קצת טסט וקצת קוד
    • וראינו שבסוף יש לנו כל כך הרבה משתמשים במערכת שמגיעים למצבים שונים - כי המערכת היא מאוד עשירה ביכולות שלה, ומה שאפשר לעשות איתה . . . .
      • ולכל לקוח יש את החוקים והדברים ה-Local-יים - ובסוף, הקומבינציה של מה שהוא עושה היא Edge-case
    • אז אמרנו “אוקיי - איך אפשר להתמודד עם Edge Case-ים?” צריך לנסות לקחת את מה שקורה ב-Production וממש להריץ אותו על מה שקורה לנו  . . . .
    (רן) זאת אומרת - להקליט . . . . להקליט, ולהריץ בחושך . . . (אורי) כשאתה לא יכול לעשות  . . . נכון? אתה Mission-Critical . . . . אנחנו ב-Outbrain, יכולים לקחת חלק מתנועת ה-Production, להריץ אותה מול גרסא חדשה, לראות שהכל בסדר - ולא יקרה כלום אם נגלה את הבאג בזה. אבל פה, הבריטי לא יגיע לפאב . . . 
    • (איתן) בדיוק, זה מה שהתחלתי להגיד . . .
    (רן) אז אתה אומר שחלק מתנועת ה-Production אפשר להסיט, אבל חלק מתנועת הרכבות אי אפשר להסיט . . . .
    • (איתן) אז אתה גם, בעצם ב-Canary Deployment, כשאתה מתחיל להכווין חלק או אחוז מה-Traffic שלך ואז לנטר בעיות ולזהות את זה לפני ולעשות Rollback ולהחזיר - זה הסטנדרט, יחסית, שעושים היום בתעשייה.
      • אבל כמו שאמרתי - אצלנו (א) אין מספיק משתמשים לזה, כי אם אני אפנה User אחד או שניים, זה לא יגיע לך ל-Edge cases
      • ואני Mission Critical, שזה בכלל מקשה עלי לעשות את זה.
      • והשילוב של שני הדברים האלה  . . . 
    • (רן) וגם אם תיהיה לו בעיה - אז אתה בבעיה . . . 
    • (איתן) . . . . כן, אחד הדברים שעשינו בתחקור היה להגיד “בואו נגיד שהיה לנו Canary Deployment - איזה מה מה - On-call-ים האלה זה היה פותר?”
      • וראינו ש-5% בערך מה-On-call-ים זה היה פותר . . . אז אמרנו “אוקיי, זה לא הפתרון”.
      • אנחנו צריכים ממש לקחת את מה שקורה ב-Production ולהריץ את זה לפני שזה מגיע ל-Production
      • הנקודה היא שאתה לא רק בודק - לבדוק האם עשית רגרסיה, בדר”כ בשיטות כאלה אתה מסתכל על Error Codes ומנטר משהו מלמעלה, יש “יותר 502 Errors נזרקים” או ש”ה-Performance ניהיה איטי”
    • אצלנו, לפעמים ברגרסיה הפעולה מצליחה - היא פשוט מחזירה תוצאה שהיא קצת שונה . . . .
    (אורי) זה אותו הדבר, במקרים כאלה אתה פשוט מסתכל על מטריקות Business-יות כדי לראות . . . 
    • (איתן) אבל פה אין מטריקה . . .  התוצאה היא למשל, סתם דוגמא בסיסית: יש לנו Manual edit, וה-User מזיז משהו מפה לפה במערכת.
      • התוצאה של איך שה-Manual Edit נראה היא JSON- של ממש דאטה של לפני ואחרי
      • אם שיניתי משהו בקוד בטעות ופתאום המ-Manual edit נראה אחרת והוא פתאום עשה Outcome אחר ויצר תוצאה אחרת, אז זה ממש להשוות את התוכן של ה-JSON ולעשות ממש השוואה ברמת הדאטה
      • זה כבר משהו שהוא לא מטריקות כל כך שאתה יכול לנטר - וזה הרבה מהבעיות שהיו לנו.
        • שמישהו הכניס איזשהו שינוי בקוד והתוצאה הייתה שה-APIs התנהגו שונה . . . .
        • אז אני ממש רוצה לבדוק את את ה-APIs
      • כך שהבדיקה היא לא Bit-wise או Stream-wise, כי יש לנו Unique IDs שנוצרים אז מן הסתם אלו דברים שונים, והשוואה היא בעצמה פונקציה שצריך ממש לכתוב אותה כדי להתאים אותה לסוג האופרציה שאתה רוצה להשוות.
    • (אורי) השוואה של התוצאות . . .
      • (איתן) כן
    (רן) זה קצת מזכיר את הנושא של בדיקות של UI - אתה רוצה לעדכן איזשהו מסך ב-Web או מסך באפליקציה ועכשיו אתה רוצה לבדוק: יכול להיות שהגרסא החדשה היא שונה במשהו מהגרסא הקודמת . . . . זה לא אומר שזה באג: שינית גוון או ששינית קצת את המיקום של הכפתור, אבל הכל בסדר. אבל אם באמת תשווה את זה Pixel-by-Pixel אז כמובן שתגלה “שגיאה”, וזה יכול לייצר הרבה מאוד רעש.
    • (איתן) נכון, אני חושב שכאן זה באמת דומה יותר לבדיקות של APIs - אתה רוצה להשוות API, אבל כן מותר לך לשנות, ה-API לא מחזיר בדיוק את אותו ה-JSON, יש אלמנטים שהם שונים כי הם Generated כחלק מה . . .
    (אורי) ברמת השדות שחוזרים?
    • (איתן) למשל, או שאם הוספתי מטריקה או סטטיסטיקה חדשה, שלא הייתה קיימת, וכחלק מהפעולה גם חוזרות סטטיסטיקות.
      • אז במה שהוקלט ב-Production אין את הסטטיסטיקה החדשה הזו שעכשיו הוספתי, ועכשיו הוספתי חדשה - אני צריך לדעת להשוות ולהבין שיש דברים שהם New וזה בסדר, לעומת רגרסיה.
      • בסוף, חשוב לזהות פה את הרגרסיות.
    • אז המוטיבציה הייתה שאנחנו בעצם מקליטים את מה שקורה ב-Production - אני עוד מעט אסביר איך - ואז אנחנו יכולים “לנגן” את הכל על הקוד, לוקאלית אצל מפתח על המחשב, לנגן את זה ב-Jenkins כחלק מה-CI, ולקבל ממש טבלת Regression שהוא נותן לכל הקלטה, עם Diff כזה של “הכל בסדר” או אם יש רגרסיה או Exception או Whatever שהשתנה.
    (אורי) ועל זה צריך לעבור בנאדם? או שהוא אומר לך בסוף תוצאה?
    • (איתן) בסוף הוא אומר לך, מן הסתם, “טוב” או “לא טוב”, כלומר Equal או Different . . . .
      • אם זה Equal אז הכל טוב, אם זה Different אז בנאדם צריך להסתכל על ההבדלים ולהגיד “זה בסדר, כי זה בדיוק מה שעכשיו הכנסתי, זה ה-Difference שאני מצפה לראות”.
      • כי בסוף אנחנו מכניסים שינויים אז יהיו לנו שוני לעומת מה שהוקלט ב-Production.
      • אבל אם הוא לא עשה שינוי ופתאום הוא רואה שההקלטות משתנות לו במקום אחר אז הוא . . . מן הסתם הוא יבין שזה לא בסדר.

    (אורי) אז להבדיל מ-TDD, שבו אנחנו כותבים את התוצאה המצופה בטסט שלנו עוד לפני שאנחנו לפעמים בכלל כותבים את הקוד, אנחנו קודם כותבים התוצאה המצופה . . . .(רן) הצדיקים שבינינו . . . .
    • (איתן) אני אחד מהצדיקים, כן . . . .
    (אורי) . . . אבל פה, אין לך את היכולת ממש להגיד מה הולכת להיות התוצאה המצופה - אתה תמיד תצטרך להסתכל על התוצאות וואז להגיד “אוקיי, זה בסדר וזה בסדר . . . . זה מה שציפיתי” . . . .
    • (איתן) לא בדיוק - מבחינתי, הנחת היסוד פה היא ש-Production הוא בסדר, ולכן התוצאה שהוקלטה ב-Production זה מה שאני מצפה שיקרה . . . .
    (אורי) אבל עכשיו אתה מכניס גרסא חדשה . . .
    • (איתן) אז כן - אם עשיתי שינוי והוא לא כזה “Behind the scenes” ולא באמת אמור לשנות את ה-API עצמו
      • ברוב השינויים שאנחנו עושים אנחנו לא משנים את ה-API אלא אני מוסיף יכולת חדשה, וכתוצאה מזה נוגע קצת בקוד פה, עושה קצת Refactor פה, דברים כאלה . . . 
    (אורי) אבל עכשיו, כשתצא מה-Replay - יהיה Diff?
    • (איתן) רק אם תכננתי שיהיה Diff . . . 
    (אורי) אבל אם תכננת את זה, המערכת טסטים לא יודעת שתיכננת את זה . . . . להבדיל מ-TDD, שבו אתה משנה את מערכת הטסט עוד לפני.
    • (איתן) נכון, אז פה אתה תראה את ה-Diff הזה, המערכת תודיע לך שיש Diff-ים, ממש תראה לך איפה יש הבדלים
    • ואז אתה צריך להסתכל על זה ולראות האם זה Diff שהתכוונת אליו או לא התכוונת אליו.
    (אורי) וכמה פעמים יש באג - זאת אומרת, טעות אנוש - מישהו אומר “כן, זה מה שהיה צריך להיות” ודה-פקטו זה לא היה צריך להיות? כי זו טעות-אנוש . . . .
    • (איתן) אתה מתכוון שהוא ראה את ההבדל ו . . . .
    (אורי) הוא ראה את ההבדל, המערכת הציפה את ההבדל - ובנאדם, בעין שלו, הסתכל על זה, ראה שיש 15 הבדלים ואולי לא מתעמק בכל אחד, ובשביעי הוא אמר שככה זה צריך להיות . . . .(רן) בסדר, כל עוד אתה שם לו את זה מול העיניים . . .
    • (איתן) אין לי סטטיסטיקה לזה. 
    • אני יכול להגיד הפוך - אני יכול להגיד ולראות בכמה הורדנו את הרגרסיות כתוצאה מהדברים האלה.
      • כמה פעמים אנשים באו אלי, אחרי ששחררנו את זה, ואמרו “וואו, איך זה שינה לי את העולם, זה פשוט גילה לי את הבעיות שברור שהן היו הופכות להיות On-call” 
      • כי הכל עובר עם הטסטים וזה טוב ויפה - אבל הנה, יצרתי פה רגרסיה שבכלל לא . . .
    (רן) במידה מסויימת, כשיש פחות False-Positive אז אתה פחות תקבל את הדברים האלה . . . אם על כל דבר המערכת מתריעה, אז בסופו של דבר אנשים כבר, אתה יודע, “זאב-זאב” . . .  הם כבר לא ישימו לב לזה. אם במערכת, רמת הרגישות שלה היא נמוכה יותר, ובאמת מתריעה בדר”כ על דברים שהם נכונים, מן הסתם תקבל פחות . . . 
    • (איתן) אנחנו מתייחסים לזה היום . . . אם יש התרעה אז אין כזה דבר להכניס בלי להסביר למה זה, למה אתה מכניס.
    • אתה חייב לעבור על זה, וכמעט תמיד זה מגלה באמת בעיה.

    (רן) אני חושב על בעיות דומות בעולם של Data - כשאתה רוצה, למשל, לשנות משהו בסכמה של Database או באיזשהו Pipeline או איזשהו Processing של Data - הרבה פעמים לבעיות האלה, מאוד קשה לעשות להן Revert, אם יש לך באג, מאוד קשה לעשות Revert לסיפור הזה . . . אתה יודע, זה לא כמו קוד שאתה פורש ואז גילית באג אז אתה עושה Roll-back או Roll-forward אבל זה מהר מסתדר - לא, פתאום גילית שכבר יומיים יש לך Data לא נכון . . . .מה תעשה? עכשיו אתה צריך לתקן את ה-Data.אז באגים ב-Data זה הרבה פעמים באגים שהם מאוד קשים להתמודדות - וגישה כזאת, אני גם ראיתי אותה קוראת שם, של לבוא ולעשות איזשהו מנגנון של “הקלטה והשמעה מחדש”. אבל שם יש בעיה של, זאת אומרת, שה-Scale הוא לא טריוויאלי . . .  יש בדר”כ עלויות מאוד גבוהות, להקים Infrastructure, להקים Cluster נוסף של Spark של אלף או אלפיים Node-ים זה יקר . . . . אם אתה עושה את זה רק לצורך הטסטים אז זה לא כל כך פרקטי.אז שם, תיאורטית, למרות שזה נשמע לכאורה מאוד פשוט - פרקטית, הגישה הזאת מאוד מאוד יקרה.
    • (איתן) עכשיו, מה שבכל זאת ייחודי באיך שבנינו את זה זה שיש הרבה יכולות להקליט דברים, אבל יש פחות יכולות “לנגן” דברים
    • כי בסוף, כשאתה מנגן משהו אז אתה תלוי ב-State קיצוני של מה שקורה - ה-End-point  הזה יכול לקרוא ל-End-point אחרים ויכול לקרוא ל-Database ויכול לקרוא בכלל ל-URL-ים באינטרנט . . . 
    • וכשאתה מנגן את זה לוקאלית, אתה רוצה לוודא שאתה חי באותם “תנאי מגרש” . . . . אין לי את ה-Database באותו State וכל הדברים האלה.
    • אז קצת חיפשתי באינטרנט, ולא מצאתי פתרונות קיימים - רוב הפתרונות זה ”בוא נקליט את ה-Traffic ונדע לשלוח לך את זה לסביבה אחרת”
      • אבל, ברגע שזה ככה, ה- State הולך לאיבוד, של מה שקורה מסביבך.
    (אורי) בעניין הזה, רציתי לשאול - כל כמה זמן אתם מקליטים?
    • (איתן) אנחנו מקליטים כל פעולה . . . 
    • יש פעולות שעכשיו הן Sampling, כי נגיד שזה קורה בתדירות מאוד גבוהה, אבל אם הן זרקו שגיאה אז אנחנו אוטומטית מדליקים אחד והופכים אותו להיות חלק מה-Sample.
    • מה שאנחנו עושים בהקלטה - בעצם בנינו Open Source Framework ב-Python, אנחנו עכשיו בדיוק ב-TS,JS port שלו, שעושים סוג של אינסטרומנטציה, 
      • ממש צריך לסמן בקוד, באמצעות Decorator-ים ב-Python, מה מבחינתך זה Input-ים ומה זה Output-ים של הפעולה.
      • ומה שקורה זה שכשאנחנו ב-Production, אנחנו עושים Intercept ל-Input-ים ומקליטים אותם - זאת אומרת, נניח שיש לי קריאה ל-Database . . . .
    (רן) רגע - מה זאת אומרת “מה זה Input-ים”? ה-Input זה הפרמטר לפונקציה וה-Output זה מה שהיא מחזירה . . .
    • (איתן) כן, אבל אם האופרציה עצמה קוראת לדברים באמצע?
      • כמו שאמרתי - אם היא פונה ל-Database, אם היא פונה לדברים חיצוניים, אז עכשיו תקבל Input-ים שאם תנגן את הקוד מחדש, תראה שמישהו מנסה לפנות ל-Database - ואין לך את ה-Database הזה, אז אתה צריך  . . .
    (רן) אתה מנסה למדל גם את ה-Side effects וגם את התלויות ה-Implicit . . . .
    • (איתן) נכון, בסוף זה Sandbox  . . . אתה מריץ את ההקלטה, וזה רץ על המחשב שלי, לוקאלית, ולא תלוי בשום גורם חיצוני, וזה משחזר בדיוק את מה שקרה ב-Production.
    (אורי) אבל אתה תריץ את מה שרץ לפני חמש דקות - או משהו שהוקלט לפני יומיים?
    • (איתן) אז בדר”כ אנחנו מריצים Random-ית מהשבועיים האחרונים, אז אתה יכול איך שאתה רוצה.
    • למשל, אחד השימושים הנוספים זה שבכל פעם שעף לנו Error ב-Production, וזה מגיע ל-SENTRY, אנחנו מוסיפים ל-SENTRY את ה-Recording ID.
      • זה היה Side-effect שלא תכננו אותו בכלל, אבל עכשיו כשיש שגיאה אז זה לא “לך תביא לי שחזור”, “לך תעשה לי .  .” - זה Copy-Paste של ה-ID הזה וזה מריץ את זה לוקאלית.
      • זה אחד הדברים ששיפרו את הפרודוקטיביות של המפתחים בטירוף
      • וזה עדיין - כל כמה ימים מישהו בא אלי ואומר “פעם הייתי צריך לבקש שחזור ולחפש - עכשיו אני עושה Play Recording וזהו”, פותר שלושה באגים ביום במקום אחד בחמישה ימים עד שאני מצליח לשחזר אותו.
    (אורי) מתי יש לו זמן לכתוב באגים? . . . .
    • (איתן) זה תמיד יש . . . אתה מפנה לו זמן לכתוב באגים.
    • אבל כשאנחנו עושים Interception, אנחנו ממש מסמנים על הפונקציה - יש לי פונקציה שניגשת ל-Database, אז אני אסמן עליה שהיא Input
      • ומה שקורה זה שאנחנו נקליט את הפרמטרים שפנו, בתור Query - זה ה-Key.
      • וה-Result זה ה-Value.
    • ואז בתוך ההקלטה, זה ממש מכיל Dictionary של Keys כאלה, של פניות לכל מיני Input-ים ואת ה-Values שחזרו.
      • ואז כשאתה מריץ את זה לוקאלית, אז הקוד שלך אמור לייצר את אותו ה-Query ל-Database, ולכן להחזיר את אותו הדבר.
      • ואם הוא לא - אז פתאום יעוף Exception ב-Recording . . . אם שינית משהו, למשל, ולא התווכנת, אז פתאום ב-Recording לא יהיה איך לשלוף את ה-Data שהיה ב-Production  ותקבל No such Key Error, או Whatever.
    • החסרון הוא שאם באמת שינית בכוונה ואתה באמת רוצה לעשות Query חדש, אז ההקלטה כבר לא כל כך רלוונטית, כשתעשה מניפולציה בזמן ההקלטה.

    (רן) אז באמת רציתי לשאול על המודולריות של מערכת כזאת, כי זה נשמע כאילו יש לך איזושהי קופסא שחורה ואתה מקליט את כולה - אם כשמשתנה רכיב אחד קטן בתוך הקופסא הזאת, האם זה עושה מיד invalidation לכל מה שהקלטת? . . .
    • (איתן) תראה, Input-ים זו פנייה לעולם החיצון, הפניות שלך לעולם החיצון שמחוץ ל-Service . . .
    • כשאתה עושה שינוי, אתה לא נוטה לשנות את העולם החיצון, כי בעולם החיצון . . . אתה לא נגעת בו עכשיו, בחלק מהדברים האלה.
    • אז רוב הדברים האלה הם בסוף לוקאליים ל-Service, והם גם לא צריכים עכשיו סביבה שלמה של כל ה-Service-ים כדי לנגן את ההקלטה
      • כל Service אוטונומית נבדק . . . .
    (רן) הבנתי - זאת אומרת שלכל Service יש הקלטות משלו?
    • (איתן) נכון, ממש כל End-point מוקלט והוא Encapsulated, ועכשיו אני יכול להריץ אותו
      • אני מריץ 500  הקלטות של ה-End-point הזה, ולא צריך שום Data חיצוני ושם דבר.
    • כמובן שאני צריך לשים את ה-Interceptor-ים במקום הנכון ולא לפספס דברים.
      • למשל - יש לנו התנהגות שתלויה ב-Environment variables ושכחנו לעשות Interception לזה והרצתי לוקאלית, וה-Enviroment שלי על המחשב לא כמו ב-Production, אז הקוד שם של ה-If . . . .
      • לא הבנתי למה אצלי זה מתנהג כמו X ו-Y ו . . . 
    (רן) רגע, יש יותר כייפי - תלוי בכמה מקום יש על הדיסק, תלוי באילו עוד תהליכים יש, יש כל מיני דברים כאלה . . . 
    • (איתן) נכון, לכן אתה מגדיר את ה-Environment variable גם כ- Input שאתה צריך לעשות לו Interception, למשל בדוגמא הזאת.

    (רן) יש לזה עלות משמעותית? להקלטות, לעלות בזמן פיתוח, לכל מיני עלויות נוספות שאולי לא לקחנו אותן בחשבון? או שאולי  . . . 
    • (איתן) עלות הפיתוח זו בניית התשתית - זו עלות . . .
    (רן) כן, זו עלות הפיתוח - האנוטציות (Annotations), אולי יש באג, צריך לחשוב ולתקן . . . .
    • (איתן) בהתחלה היה יותר . . . . בחודשיים הראשונים, הזמן שאתה צריך לעשות את האינטרציה.
      • נגיד, אחרי שבנינו את ה-Framework עצמו - להתחיל לעשות לו אינטרציה
    • אז בהתחלה יש הרבה נפילות False כאלה, שהוא לא מצליח לשחזר בדיוק את ההרצה ויש כל מיני דברים עד שאתה מזהה בדיוק את כל המקומות שפספסת ב-Interception.
    • אבל ב-Day-to-day אנחנו לא  . . .אתה לא מוסיף יותר מדי Inputs חדשים, זה קורה אחת-לחודש, שפתאום מישהו שאל שאלה . . . .
      • אז בהקשר הזה - לא.
    • העלויות הן יחסית זניחות, אנחנו שומרים את הכל ב-S3 עם Life cycle של שלושה חודשים . . .
      • וזה שטויות, זה זניח
    • גם התשתית בעצם שומרת את זה ל-S3 באופן א-סינכרוני, כדי שזה לא יפגע ה-Latency של הפעולה, אז זה מקליט וברקע זה ב-Thread-ים, שולח את זה ל-S3.
      • ואתה יודע - S3 זה לא באמת עולה הרבה
      • כמובן שזה לא מתאים ל-Scale - להקליט כל דבר ב-Scale של מיליון פעולות בשנייה - שם צריך להגדיר Sampling, אז אתה תומך ב-Sampling.
    • יש לזה הרבה דברים מובנים כדי לתמוך בכל מני סוגים שונים של Interception-ים של Input-ים שונים.
    • ובסוף זה הכל Open source ב-Python . . . .

    (רן) אני גם יכול לראות איך זה, מעבר ללמצוא רגרסיות ומעבר ללמצוא באגים - איך זה יכול לעזור לך לשפר את הקוד, במובן הזה שאתה עולה ככה על Smell-ים, אתה עולה ככה על פונקציה שיש לה הרבה מאוד תלויות ואתה מבין שיש פה איזושהי בעיתיות, יש פה איזושהי פונקציה שעושה יותר מדי דברים, ואולי נכון יותר לפרק את זה ולעשות איזושהי מודולורזציה. אם אתה רואה שיש הרבה פונקציות שתלויות באותו הדבר, אז יכול להיות שיש פה מקום לייצר איזשהו Service . . . . זה מציף הרבה דברים שאולי קודם הם היו Implicit ומי שמכיר ממש טוב את הקוד יודע אתה זה, אבל בנאדם חדש שנכנס פנימה, עם עיניים חדשות שנכנסות פנימה, הוא לא היה מכיר את זה - אבל עכשיו, כשאתה רק מסתכל על האנוטציות אז אתה יכול מיד לראות את זה.
    • (איתן) כן, זו נקודה מעניינת
    • אחד הדברים, עוד Side-effect שראינו, הוא שבעצם נקטנו בגישה פרו-אקטיבית של תיקון בעיות - 
      • להסתכל על SENTRY בלי שפותחים לנו Support cases, ולהתחיל לזהות את ה-Issue-יים ה-Repetitive-יים ולהתחיל לפתור אותם.
      • אז עכשיו יש לנו Recording ID ואני יכול להריץ את זה - אני רואה “הנה הבעיה!” ואני מתקן
        • אבל אז אני אומר “רגע - בעצם, אולי יש לי עוד דוגמאות של הבעיה הזאת, בואו נבדוק שתיקנתי את כולן”.
      • אז מה שאנחנו עושים זה שאנחנו מוסיפים להקלטה גם מטה-דאטה, שמאפשר לבקש “תביא לי את כל ההקלטות שיש להן את הפילטר המסויים על המטה-דאטה”
        • אז למשל זרקנו איזושהי שגיאה, אנחנו שמים את ה-Description של השגיאה כחלק מהמטה-דאטה - ואז זה ממש מסווג את זה
        • “תביא לי את כל ההקלטות שבהן עפה השגיאה הזאת, תריץ לי אותן עכשיו, אחרי שתיקנתי” - ופתאום אתה רואה שהופ! יש פה עוד 50% מה-Case-ים שלא גיליתי בתיקון הזה, ספציפית . . .
        • (אורי) זה לא תפס בתיקון . . . . בעצם לא תיקנתי.
        • (איתן) נכון - ואז אתה יכול לתקן אותם
      • ואתה יכול להוציא מטריקות, לראות כמה כשלונות יש יש לי בכל End-point, וכל מיני מידעים לפי איזה סוג וכל מיני דברים.
    • אבל מטה-דאטה משמש לא רק כדי לפלטר שגיאות - לפעמים אני אומר אוקיי, אני עכשיו יודע שאתה יכול לפלטר על לקוח מסויים, אתה יכול לפלטר על ממש Properties שהועברו ל-End-point הזה
      • אז אתה אומר, נגיד, שאסטרטגיה מסויימת שהופעלה ב-End-point הזה - אז אני שומר במטה-דאטה איזו אסטרטגיה הופעלה
      • ואז אני יכול להגיד “תביא לי את כל ההקלטות של של האסטרטגיה הזאת” - כי עכשיו נגעתי בקוד של האסטרטגיה הזאת.
      • אז זה לא רק ברמת ה-End-points אלא גם ברמת ה-Properties של הפעולה.
    • כמובן שהכל צריך להיות Light-weight, כי זה לא כל ה-Payload של הפעולה - זה צריך להיות שדות Natives כאלה, שפשוטים לפילטור.

    (רן) Tracing אתם עושים גם? [להרחבה - 433 Breaking Down Observability with Nitay Milner]
    • (איתן) כן, אנחנו עושים Tracing . . . .
    (רן) זה מתחבר איכשהו, שתי המערכות האלה? . . . .
    • (איתן) לא ממש . . . כלומר, הנקודה היחידה היא באמת ה-Recording ID הזה, שמופיע לנו ב-SENTRY וכו’.
      • זה השימוש המרכזי, הייתי אומר.
    (רן) כי אני מניח . . . אני מנחש שלפעמים יש באגים של תזמון. זאת אומרת, כשהכל מהר ואין עומס אז זה עובד טוב, אבל כשיש עומס על איזשהו Service ופתאום זמן התגובה שלו יותר איטי, אז פתאום אתה רואה את הבאג - ולצורך זה Tracing יכול לעזור.
    • (איתן) כן, אצלנו זה פחות ה-Use case. אני יכול להבין למה במערכות אחרות . . . 
    • אבל אין ספק שאפשר יהיה להוסיף ל-Tracing - להביא את כל ה-Recording IDs של כל ה-Service-ים לאורך השרשרת, שכרגע קרו
      • ואז להתחיל לנגן נקודה-נקודה
    • עכשיו, במערכת החדשה שאנחנו משחררים, שהיא כולה Serverless-ית, אז היא גם כתובה ב-TypeScript, אז אנחנו עושים Port במערכת הזאת ל-TypeScript
      • כי ראינו כמה זה אפקטיבי, באמת - המערכת היא עוד יותר Mission-Critical, אז אנחנו עוד יותר From Day 1 רוצים לצאת מוכנים עם הכלים
      • ושם באמת יש הרבה Lambda-ות שמפעילות Lambda-ות שמפעילות Lambda-ות . . . . ועוברות דרך SQS וכו’
      • אז שם זה באמת  . . . .

    (אורי) והרבה פעמים, בגלל שזה SQS, אז דברים יהיו א-סינכרוניים, מן הסתם?
    • (איתן) כן
    (אורי) וזה מקשה על Tracing . . . 
    • (איתן) נכון, אבל בסופו של דבר אותנו מעניין ממש הכניסה הסינכרונית לפונקציה והיציאה ממנה
      • אם היא קראה לדברים א-סינכרוניים ובסוף חזרה מהם עם איזשהו Input, אז זה יהיה חלק מה-Interception של אותו הדבר, אז . . . .
    (רן) אבל אם אתה מקליט רק ברמה . . . נחזור לרגע כמה דקות קודם - אם אתה מקליט ברמה של Service, אז בעצם אתה מפסיד את האינטגרציה . . . זאת אומרת, בדר”כ דברים מעניינים או שגיאות מעניינות מתרחשות כש-Service אחד קורא ל-Service אחר, והוא קורא ל-Service שלישי וכו’.אז את זה אתה לא מפסיד?
    • (איתן) הרבה פעמים, הבעיה היא בסוף ב-Service השלישי, והוא זה שזורק לי Exception ל-SENTRY שמשהו קרה לא בסדר
      • ולא כל כך מעניין אותי איך הגענו לשם - מעניין אותי מה שבור בקוד הזה.
    • אז נכון - זה לא מרים סביבה מלאה ואז מנגן, כי אז אתה נכנס עוד פעם לאותה הבעיה של איך אתה משחזר את כל הדאטה ומריץ על 10,000 דגימות שונות Random-יות . . . .
    (רן) אבל תראה, Scenario שהייתי רואה לא מעט זה שאותו Service שלישי - ה-Maintainer שלו שינה משהו ב-API, ומבחינתו הכל בסדר. הוא עשה והריץ וראה שיש Diff ואמר “אוקיי, זה בדיוק מה שהתכוונתי”. מחר בבוקר, כשמישהו אחר גם ישתמש ב-API שלו ואולי לא מודע לשינוי הזה - לפעמים זה שינוי בסכמה, לפעמים זה שינוי סמנטי שאתה לא יכול לתפוס - פתאום דברים נשברים.
    • (איתן) נכון, זה לא מיועד לזה.
      • זה מיועד לרמת ה-Service שלך, לבדוק שאתה לא יצרת Regression.
      • אז מי שהריץ את ההקלטות והחליט “לא, זה בסדר השינויים האלה” - אז היה צריך לעשות את זה בידיעה.
    • זה לא מבטל את הצורך לעשות ממש טסטים בסביבה שלמה, אבל מאוד מאוד קשה לעשות בכזה Scale וכזו כמות . . .
      • כשאתה מדבר על סביבה אחרת ויש לך הרבה - נגיד Database חיצוני ו-State שאתה תלוי בו - אני בכלל לא חושב שזה אפשרי לעשות את זה ממש טוב.
      • לקחת, נגיד, 10,000 דגימות של לקוחות שונים מפוזרים Random-ית על המרחב ולהריץ את זה איכשהו בסביבה צדדית שהיא . . . כשה-Database כלל לא שומר על התמונה . . .

    (רן) אז אני שומע שאתם עכשיו עובדים על קוד פתוח של אותו רכיב . . . .
    • (איתן) כבר עכשיו זה די ב-Open Source . . .
    (רן) חוץ מכם יש עוד משתמשים?(אורי) איך הוא נקרא?
    • (איתן) Playback, ה-Studio, ממש כל ה-Class-ים שם - יש לך TapeRecorder, TapeCassette ו-Equalizer . . . עם ה-Playback הלכתי על ה . . . . 
    (רן) Equalizer זה מעניין . . . מה עושה Equalizer? יש סראונד? . . .
    • (איתן) אז בעצם, כשאתה מנגן מחדש, אתה צריך, כדי לבצע את ההשואות, צריך איזשהו Plug-in שאומר איך אני משווה דברים.
    • אז ה-Equalizer אחראי על איזה שלושה-ארבעה Plug-ins שאתה צריך לממש כדי לבצע את הניגון ולבצע את ההשוואה.
    (רן)  . . . על מנת לעשות את התמרות הפורייה הנדרשות כדי להוריד את הטונים . . . 
    • (איתן) נכון 
    (רן) מעניין . . . 
    • (איתן) כן . . .  אז בסוף, בשונה מהרבה גישות היום שהן מאוד דומות - שלא מתערבים לך בקוד, אני עושה הכל מבחוץ ואתה רק עושה פה איזה Import - פה זה לא המצב.
      • המצב פה הוא שאתה צריך לשים Decorator-ים במקומות הנכונים
      • ואתה צריך לכתוב Plug-In אם ההשוואה היא לא סופר-טריוויאלית - אז ה-Plug-In-ים שלך יכולים להיות יותר ויותר מורכבים.
      • יש לזה ידע אינטימי . . . מי שכותב את זה - צריך שיהיה לו ידע אינטימי עם ה-Service
      • והרבה פעמים, ה-Service-ם - יש להם כזה Base-class שאתה משתף . . . יש לך איזושהי תבנית חוזרת בהרבה מאוד מה-End-Points שלך.
    • אז אצלנו, נגיד - בסוף יש לנו שני סוגי End-Point - או שזה celery-based או שזה HTTP-Based - והיה מאוד קל לעשות את ה-Interception בצורה שהוא . . . .
    (רן) אבל זה לא Black-box, זאת אומרת . . . זה לא Black-box, אתה כן צריך להכיר את ה-Server-ים שלך; מצד שני - זה לא Unit Test - זה לא בודק פונקציות יחידות, זה בודק איזושהי יחידה - קראת לזה “Service”, למרות שאתה תכל’ס יכול גם לבדוק יותר מ-Service אחד, נכון?
    • (איתן) אתה יכול בסוף להחליט לשים Decorator של איפה מתחילה אופרציה בכל מקום בקוד
    • אפשר להגיד שקריאה אחת  . . . תיאורטית אתה יכול לעשות את זה ברמת הפונקציה, אבל זו לא המטרה . . . 
    • המטרה היא לנגן משהו שהוא יותר גדול.

    (רן) טוב, מעניין . . . .  שיהי לכם בהצלחה עם הפונקציות Lambda בכל הסיפור הזה, כי שם זה נשמע לי יותר מורכב . . . לבדוק פונקציה לכשלעצמה זה יחסית קל, אבל ברגע שיש לך כמה מאות שעובדות  אחת עם השנייה דרך SQS-ים ודברים א-סינכרוניים, זה ניהיה כבר הרבה יותר מורכב. אני מניח ששם זה כבר לא יהיה רק על פונקציה בודדת?
    • (איתן) לא, התשתית הזאת כן תיהיה ברמת הפונקציה הבודדת - יהיו . . . 
    • כמובן, יש לנו את הדרכים להרים סביבה שלמה ולהזרים אליה Traffic וכו’ - אבל תמיד ה-Coverage של ה-Edge cases יהיה הרבה יותר קטן בסיפור הזה.
      • ושם גם יש את הטריק של Lambda-ות - מכיוון שאנחנו לא רוצים להתערב עם ה-Latency של הפעולה, ו-Lambda מתחילה ומתה, ואני בסוף צריך לאסוף את כל הדברים בדרך - אז יש פה טריקים של איך אתה בכל זאת שולח את ההקלטה.
        • אנחנו עכשיו עובדים עם Lambda Extensions בשביל זה.
      • יש עבודה שצריך במימושים של ה-Abstract Classes האלה, כדי להתאים אותם לסביבה של Lambda-ות, לעומת Flask, לעומת celery, וכו’.
    • יש לנו גם קצת Contributors מבחוץ, ואנחנו מאוד נשמח שאנשים יתרמו וישתמשו בזה ויפיקו את הערך . . . אנחנו באמת מפיקים מזה ערך.

    (רן) אני חושב שהאתגרים קיימים בעולם ה-Tracing - אם תסתכל על Design של Jaeger או של של מערכות A-sync אחרות, אתה תראה שהן באו לפתור אתגרים מאוד דומים, של איך לשלוח נגיד, את ה-Trace לפני שה-Service מסיים את החיים שלו, ויש לזה כל מיני סוגים של פתרונות, בין אם זה לשלוח מקומית דרך UDP ואחר כך לאסוף את זה, או כל מיני פתרונות מסוגים אחרים.(אורי) אני יודע שב-Outbrain עשו Cross-Service Tracing וכו’ . . . הדבר שדומה אולי, קצת, ל-Lambda-ות זה שעשינו  את זה גם על עבודות א-סינכרוניות, על קריאות א-סינכרוניות בין ה-Service-ים.(רן) אתה מוסיף איזושהי Envelope ל-Message, כדי לדעת מה ה-Trace ID.
    • (איתן) אנחנו משתמשים ב-New Relic וכל מיני . . . Lumigo ודברים כאלה
    • אבל בסוף זה בא להראות לך דברים - זה לא נותן לך את היכולת הזאת, של להריץ מחדש, לקבל שחזורים - שזה ה-Added-value פה, זה מה שהתשתית הזו בעצם מיועדת עבורו.
    (רן) עכשיו כשאתה אומר, זה נשמע כאילו הגיוני שהם  גם יעשו את זה, אבל בסדר . . .
    • (איתן) היו כבר כמה פניות, בעקבות . . . ששמעו אותי מדבר על זה, אז יזמים שרוצים לבנות ממש חברה סביב הנושא
      • אני חושב שאפשר ממש לבנות  חברה סביב הסיפור הזה, בסוף אבל צריך . . .
      • אני חושב שזה לא יעבוד בלי הגישה של . . . המפתח צריך לדעת איך להשתמש ב-Framework הזה - ולהשתמש בו, לשים את ה-Interception במקום הנכון.
      • כמובן שאפשר לבוא עם ה-Out-of-the-Box Interception כבר מוכן וכל מיני דברים כאלה, אבל יש דברים אינטימיים שאתה חייב לדעת כדי שזה באמת יצליח לנגן את זה נכון.
    (אורי) אם היה לי שקל על כל סטארטאפ שבא ואומר “כן, יש לנו איזשהו פתרון לבעיה בעולם ה-Production” או בעולם כזה או אחר, וכן, בסדר - פתרנו את זה לפני שלוש שנים, או לפני  . . . .
    (רן) טוב, איתן - אז זה נשמע סופר-מעניין וגם מאתגר. נוסיף את הקישור ל-GitHub, אני מניח, בפודקאסט עצמו [כן]. אני גם מנחש שאתם מחפשים מהנדסים, פה ושם? . . . .
    •  (איתן) כן . . . .  כמובן, אנחנו צריכים לגייס עוד לפחות איזה 150 איש השנה, שכוללים  . . .
    (רן) אז ספר קצת על ה-Stack הטכנולוגי - הזכרת ככה קצת, אבל איך בגדול . . . מה עושים בחברה? באילו טכנולוגיות עובדים?
    • אז אנחנו מערכת שכולה Deployed ב-AWS - הכל Cloud-based, אין שום דבר On-Premise.
    • אנחנו באמת עובדים עם מכוון רחב של דברים - מבחינת שפות זה מ-Python ו-TypeScript ו-JavaScript ו-Node.js וכו’.
    • אנחנו עובדים הרבה מאוד עם Lambda-ות וכמובן Kubernetes והכל - זה או Kubernetes או Lambda-ות
    • וכל צוות, או כל מודול - אנחנו עובדים ב-Product teams - יש לו Stack טכנולוגי שרלוונטי אליו
      • יש צוותים שעובדים Pure-Serverless, יש צוותים שעובדים Mix & Match ביניהם, יש צוותים שבעיקר על Kubernetes Pods - הכל תלוי ב- Use case ,כמובן.
    • ובאמת מחפשים אנשים שרוצים מצד אחד לעבוד במשהו שבאמת עושה טוב לעולם - לא כקלישאה אלא באמת לשפר את התחבורה הציבורית והאימפקט של זה, גם על איכות הסביבה, הוא מאוד גדול
      • אני לא זוכר אפילו את המספרים, כמה מאות-מיליונים של Emissions ירדו כתוצאה מהשימוש במערכת שלנו, שמתכננת גם רכבים חשמליים
        • זה אחד האתגרים היום, שאוטובוסים חשמליים הם הרבה יותר קשים לתפעול, וצריך מערכת חכמה לתכנן אותם כדי להיות מסוגל להשתמש בהם בכלל
        • איך אתה טוען אותם, מתי אתה טוען אותם . . . .
      • (רן) בגלל הפסקות הטעינה שנדרשות . . .
        • (איתן) כן - מתי לטעון וכמה Capacity יש לך ואיזה סוג מטען . . . . מלא שאלות שצריך לעשות, שבדיזל אתה פשוט מתדלק ובסוף היום רואה את האוטובוס שוב פעם בתחנת דלק
    • אז יש הרבה אתגרים - גם אלגוריתמיים וגם לבנות מערכת, כמו שאמרנו, Mission-Critical SaaS Platform
    • והאנשים אצלנו עם מוטיבציה גבוהה להפעיל את היכולות שלהם ובאמת לנסות להשפיע על היומיום של כל האנשים ולהעביר אותם לתחבורה ציבורית.
    (אורי) איזה קו מגיע אליכם?(רן) איפה בישראל?
    • (איתן) אנחנו יושבים ממש במרכז, היום בבניין ToHa, ממש שם בשלום . . . .
    • אני, למשל, מכרתי את האוטו שלי - יש לי אוטובוס מהבית בכפר סבא ממש עד למשרד.
      • מבטיח שלא נגעתי במערכת ודאגתי שזה מה שיקרה אלא גיליתי את זה במקרה . . .
      • אנחנו ממש ב-Hub של תחבורה ציבורית ומעודדים את כולם לבוא עם תחבורה ציבורית ומאוד לא נוטים לבוא במכוניות לעבודה.

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

     האזנה נעימה ותודה רבה לעופר פורר על התמלול!
    46 min

About רברס עם פלטפורמה

From the publisher's feed

פודקאסט על תוכנה, מוצר, ותשתיות — בעברית.

More shows like רברס עם פלטפורמה

גיקונומי by ראם שרמן ודורון ניר

גיקונומי

93 Listeners

עושים היסטוריה עם ערן ניצן Osim Historia by רשת עושים היסטוריה

עושים היסטוריה עם ערן ניצן Osim Historia

160 Listeners

חיות כיס Hayot Kiss by כאן | Kan

חיות כיס Hayot Kiss

139 Listeners

שיר אחד One Song by כאן | Kan

שיר אחד One Song

162 Listeners

מפתחים חסרי תרבות by מפתחים חסרי תרבות

מפתחים חסרי תרבות

10 Listeners

מנועי הכסף by כלכליסט

מנועי הכסף

37 Listeners

עושים תוכנה Osim Tochna by רשת עושים היסטוריה

עושים תוכנה Osim Tochna

9 Listeners

Startup for Startup by Powered by monday.com

Startup for Startup

22 Listeners

בזמן שעבדתם by mako מאקו

בזמן שעבדתם

98 Listeners

אחד ביום by N12

אחד ביום

311 Listeners

מפלגת המחשבות by Beit Avi Chai

מפלגת המחשבות

99 Listeners

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

השקעות לעצלנים - פודקאסט על כסף, השקעות והחיים עצמם

27 Listeners

מפתחים מחוץ לקופסה by שחר פולק ודותן טליתמן

מפתחים מחוץ לקופסה

1 Listeners

LangTalks by Lee Twito, Gal Peretz

LangTalks

0 Listeners

הקרנף - עם יואב רבינוביץ׳ by בית הפודיום

הקרנף - עם יואב רבינוביץ׳

23 Listeners