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

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

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


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

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

בצבא זכיתי לשרת בשירות טכנולוגי בחיל מודיעין לאורך כמעט שבע שנים. במסגרת זו התעסקתי במחקר ובפיתוח, פיקדתי על הכשרה טכנולוגית, והייתי גם ראש צוות מחקר. לאחר הצבא למדתי בתוכנית לאוטמן באוניברסיטת תל אביב ובמסגרתה השלמתי תואר שני. במקביל עסקתי בהדרכה ולימדתי במספר מסגרות. עזרתי להקים את תכנית גבהים ללימוד סייבר בבתי ספר, ובפרט כתבתי את ספר הלימוד בנושא רשתות מחשבים. הקמתי את מסלול הסייבר ב-Israel Tech Challenge, ואת הכשרת Check Point Security Academy. את Swimm הקמתי בסוף 2019 יחד עם שלושה שותפים וחברים נפלאים שאני זוכה ללמוד מהם מידי יום".

ספר לנו קצת על המוצר שאתם מפתחים ב-Swimm

"ב-Swimm אנחנו מפתחים כלי למפתחים, פלטפורמה עבור ריכוז ידע על הקוד באמצעות Continuous Documentation. אנחנו מאפשרים לצוותי פיתוח לכתוב בקלות דוקומנטציה שמוצמדת לקוד של החברה, בצורה מועילה ופרקטית שמאפשרת לידע המתועד להישאר עדכני גם כשהקוד משתנה. אנחנו הופכים את התיעוד לחלק אינטגראלי מתהליך הפיתוח. המטרה היא לעזור למפתחים לשתף ידע על הקוד שלהם, ולהכיר בקלות אזור קוד שהם עוד לא מכירים – דבר שקורה המון, בין אם בכניסה לצוות חדש או פרויקט חדש, או פשוט כשעוברים על קוד שחבר או חברת צוות אחרים כתבו. חלק אחד משמעותי בפלטפורמה של Swimm הוא ה-WebApp שלנו, שמאפשר לכתוב מסמכים שמקושרים לקוד. המסמכים האלו כוללים גם טקסט, וגם רפרנסים לחלקים בקוד – בין אם snippets (מקטעי קוד), שמות של משתנים או פונקציות, ערכים, או שמות ו-pathים של קבצים ותיקיות. התוצאה היא מסמך שנותן את ההרגשה שהמפתח/ת שכתב/ה את הקוד עובר/ת איתך על הקוד, ומסביר/ה לך מה קורה בכל שלב. לכן אנחנו קוראים למסמכים האלו Walkthrough Documentation. ב-WebApp ניתן כמובן גם לקרוא ולחפש מסמכים, ליצור רשימות של מסמכים, לייצר מסמכים מתוך Pull Requests ועוד. את המסמכים עצמם אנחנו שומרים בפורמט sw.md – כלומר קבצי Markdown שנשמרים ב-repository לצד הקוד, ויש להם תוספות שקשורות ל-Swimm.

צילום: יורם רשף

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

האלגוריתם עוקב אחר מקטעי הקוד לאורך השינויים שקורים, ומבין האם אלו שינויים מינוריים שלא משפיעים על התיעוד, ואז מציע עדכון אוטומטי לדוקומטנציה, או שמדובר בשינוי מהותי שדורש התערבות אנושית ועדכון של הדוקומנטציה. המטרה היא שהקוד והתיעוד יהיו תמיד מסונכרנים, כמו שאומרים אצלנו – "Make Docs Like Code". כך, כשמפתחים יוצרים Pull Request חדש, הם יכולים לדעת שכל התיעוד שלהם עדיין עדכני, או לקבל התראה שעליהם לשנות חלק מסוים בתיעוד, עם הכוונה לגבי החלקים שדורשים עדכון, ואילו שיכולים להיות מעודכנים בצורה אוטומטית.

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

תמונה: Swimm

בוא נדבר רגע על תרבות הפיתוח ושיטות העבודה שלכם, איך אתם עובדים בחברה?

"אנחנו עוסקים בפיתוח כלים עבור מפתחות ומפתחים, ומכאן שלצוות הפיתוח שלנו בעצמו יש השפעה רבה מאוד על המוצר. זה מתבטא בתהליכים קבועים וגם בהתנהלות היומיומית. אנחנו משתמשים במוצר של עצמנו על בסיס יומי (החל מהמפתח הראשון שהצטרף, ונכנס לקוד של Swimm באמצעות שימוש ב-Swimm). יש לנו סשנים קבועים של דיונים פתוחים על המוצר, בהם חברי ה-Squads השונים מעלים הצעות או תהיות שקשורות במוצר – הן בשימוש בו והן בפיתוח שלו. אני מאמין שזה Super-power של חברה שמפתחת כלי פיתוח – העובדה שהמפתחות והמפתחים שלנו גם משתמשים במוצר ויכולים להשפיע עליו כל כך. לעתים אנחנו גם בודקים היתכנות של פיצ'רים על ידי התנסות בהם בתוך צוותי הפיתוח, כדי לראות איך המפתחות והמפתחים שלנו חווים את השימוש בהם. ארגון הפיתוח והמוצר מורכב מ-Squads, שלכל אחד מהם יש Engineering Manager וכן Product Manager ו-UX. לכל Squad יש אחריות על הדומיין שלו ויכולת השפעה רבה בתוכו. לאחרונה גם הקמנו צוות Labs אותו אני מוביל ושנועד לחקור כיוונים חדשים שייכנסו בהמשך לפיתוח המוצר.

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

איזו פריצת דרך או פיתוח מעניינים ומשמעותיים בהובלתך גורמים לך להיות גאה?

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

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

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

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

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

"יש לי ערוץ יוטיוב, שבו אני משתף סרטונים קצרים שאני מייצר, בעיקר על git מאחורי הקלעים, ורשתות תקשורת – איך עובד האינטרנט. מוזמנים".

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

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

פודקאסט או ספר מומלץ?

"ספר – The Power of Habit. הוא מדבר על הרגלים בכלל, ואפשר להסיק ממנו גם על הרגלים אישיים, גם על הרגלים שקשורים לעבודה, גם לדרך העבודה של מוצר שמשלב הרגלים של משתמשים, וגם הרגלים של ארגונים. פודקאסט – אני אולי מוטה, אבל Swimm Upstream משלב אנשים נהדרים עם המון תובנות על התעשיה שלנו".

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

"אני מעדיף שקט בזמן העבודה…"

מקור: Picopresso

איזה גאדג'ט או גאדג'טים הם מאסט בשבילך?

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

דבר ראשון שאני עושה אחרי האקזיט הוא:

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

והכי חשוב: טאבים או רווחים?

"רווחים, בשביל שאלות כאלו יש את PEP8 :) "

 

 

 


רוצה גם להופיע במדור? קליק כאן

מערכת גיקטיים

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

הגב

15 תגובות על "הילד שהתלהב מפסקל ביסודי הופך עכשיו את התיעוד לקצת יותר נסבל לצוותי הפיתוח"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
רועי
Guest

הmailto בסוף גאוני :))

ברי
Guest

אחלה צוות ואחלה של CTO.

אחד שיודע
Guest

עומרר כוכב!!! מקצוען בטירוף, מנהל מצוין, ומורה מדהים מדהים מדהים תצליחו!

שרון
Guest

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

אסף וויז
Guest

תתחדשו על המדור גיקטיים

אסף וויז
Guest

תתחדשו על המדור גיקטיים

Da Mike
Guest

נישמע כמו מוצר מצויין ל95% מהמתכנתים
ומיותר לגמרי ל5% שבאמת יודעים לכתוב clean code.

nope@nope.com
Guest

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

סטארטאפיסט
Guest

הכלי נשמע נחמד. נכנסתי וחשבתי לנסות אבל אז ראיתי את המחיר. כנראה בגלל שזה נמכר ל"הייטקס" אז מרשים לעצמם. זה utility קטן, סוג של tool וכמוהו יש מלא פלאגאינים אופן סורס ברמה כזו או אחרת.
אין לי בעיה לשלם, אבל $30 לחודש למשתמש? לצורך ההשוואה זה לא רחוק מעלות של IntelliJ למשל. באיזה עולם אפשר להשוות בין המוצרים? זה כמו להשוות קורקינט למכונית.
תכף יגידו "זה חוסך לכם כסף". לא זה לא. אני יכול לתעד יפה גם במליון כלים אחרים. זה nice to have והמחיר צריך להיות מותאם.

צדוק
Guest

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

סטארטאפיסט
Guest

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

ספיר
Guest

כתבה מעולה!! אין עליך עומר

ולדי
Guest

איזה טאבים או רווחים. זה כזה גוניור. פשוט תעשה CTRL SHIFT F בECLIPSE מסדר לך הכול בשניה.

נורמטיביון
Guest

רווחים במקום ערבים זה סוטה

יואל
Guest

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

wpDiscuz

תגיות לכתבה: