כמה מילים על מחירי פרילאנס בישראל

3367543094_470e356692_bאם יש משהו שצץ אחת לתקופה אצלי – זו ההרגשה שמשתקפת מלקוח פוטנציאלי כאילו הצעת המחיר שאני מגיש לו – באה "לשדוד" אותו. לפעמים זה יכול להגיע בצורת הערה על המחיר שהוא "גבוה" (בהשוואה למתחרים – המחיר שלי יושב די באמצע) או הערות שבשוק העולמי המחיר הרבה הרבה יותר נמוך.

אז תרשו לי לאמר כמה מילים על כך…

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

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

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

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

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

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

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

עבודה כ-Devops

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

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

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

שני הדברים שהכי קובעים בקבלת מועמד לעבודה הם ידע ונסיון. כשאדם לומד מ-ספר או קורס, יהיה עדיין חסר לו בין 50-90% מהידע שחברה צריכה. כך לדוגמא מבחינת Troubleshooting – רוב הקורסים בקושי נוגעים בנושא (וברוב עבודות הסיסטם הזמן שנשרף הוא על תקלות, בין אם זה AD שעושה צרות, SQL שעובד לאט, תקשורת איטית, תקלות ב-1001 שרותים ואפליקציות וכו' – ובלינוקס זה יכול להיות תקלות של ביצועי שרותים, שרת שלא עולה, הרשאות לא נכונות, Segfault של אפליקציות ועוד המון המון סוגי תקלות). בקורסים אולי מלמדים אותך איך להקים מערכות ושירותים – אבל בקושי נוגעים ב-Troubleshooting, ולכן חשוב לבדוק כמה שנות נסיון אמיתיות יש למועמד.

בתחום הסיסטם תמיד כדאי שיהיה לך נסיון בשפת סקריפטים כלשהי. בעולם המיקרוסופט כדאי מאוד שיהיה לך נסיון ב-Powershell וגם ב-Batch. בלינוקס – כדאי מאוד שיהיה לך נסיון לפחות ב-BASH ועדיף גם נסיון ב-Python או PHP, כלומר ידע ונסיון בשפת סקריפטים – חובה. ידע בשפת תכנות אחרות – זה פלוס.

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

כמה רחבה? בניגוד לאיש סיסטם, איש Devops הוא בעצם ה"מכתיב" בכל התחומים שקשורים החל משרתים ועד לפיתוח. כך לדוגמא אם איש סיסטם הכיר Puppet לאוטומציה, איש Devops טוב יצטרך להכיר גם Chef וגם Ansible. הוא לא חייב להכיר אותם עד רמת הבורג, אבל צריך שיהיה לו ידע בהרמה לדוגמא של 2 שרתים, "חיבור" למערכת אוטומציה והתקנת שרות כלשהו, לדוגמא. עניין אחר הוא בשינוי מתודת פיתוח אפליקציות של החברה (במיוחד של חברות שנותנות שרותי SaaS לדוגמא) – בעבר חברות היו מפתחות גירסה 1 ואחר כך היו מתחילים לעבוד על גירסה 1.1 או 2. כיום חברות רבות עוברות לשיטה שבה הפיתוח הוא מתמשך ו"נזרק" מיד לפרודקשן לאחר שהוא מתקמפל ועובר סט בדיקות אוטומטי (מה שנקרא CI או Continuous Integration) ובשביל זה קיימים כלים כמו Jenkins. מי שצריך להרים מערכת CI, לכתוב לה סקריפטים, לכתוב בדיקות וכו' – הוא איש ה-Devops.

עדכון: להלן כמה דברים שאנשי Devops כותבים לגבי הנושא:

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

עמוס שפירא כותב: "…בכלל מזה "איש DevOps"? הרי DevOps זה צורת מבט על כל תהליך הפיתוח (Dev) והרצת שרתים (Ops) כשלבים מאד קשורים אחד לשני, לעומת המודלים הקודמים שבהם אנשי הפיתוח לא יודעים כלום ולא מעניין אותם איך הקוד שלהם רץ בשטח והתפקיד שלהם נגמר כשהם " זורקים את הקוד מעבר לגדר" ("chuck over the fence").
מבחינת אנשי סיסטם (ואני לא בטוח כמה זה קשור ספציפית ל-Devops), איש סיסטם עדכני צריך להבין את החלק שלו בכל התהליך מהגדרת המוצר וכתיבת התוכנה (ששם הוא יכול לתרום בהסבר מראש מה הוא צריך כדי לעשות את החלק שלו) וכן לממש "infrastructure as code", אוטומציה של תהליכים, תמיכה בשרשרת הבניה והבדיקות של התוכנה וכו'." (למעוניינים, ישנו שרשור של אנשי Devops המתייחסים לפוסט זה ואנשי Devops מסבירים מה הוא המקצוע)

איש ה-Devops ברמת המאקרו צריך להכיר המון טכנולוגיות חדשות ועדיף שיהיה לו מבחינת שפות ידע ב-Python, JAVA ואם אפשר – גם RUBY (ולאחרונה מה שנהיה פופולרי – שפת Go של גוגל), אך כאן זה לא נעצר – איש Devops חייב להמשיך להכיר טכנולוגיות חדשות בזמן  העבודה או מחוץ לעבודה. מכיר קונטיינרים? אם לא – תכיר. אתה צריך להרים מכונות VM בצורה אוטומטית? תכיר את Vagrant והרשימה ארוכה ומתארכת כמעט כל יום או כל שבוע. כך לדוגמא בעבר אם היה לך נסיון ב-RDBMS כלשהו (החל מ-MySQL או SQL server של מיקרוסופט או Oracle DB) – כיום חברות רבות מחפשות ידע בשרותי DB שמבוססים NoSQL (כמו MongoDB ואחרים).

ואחד הנושאים הכי חשובים שאיש Devops צריך להכיר ברמה מעולה – הם העננים הציבוריים. פחות ESXI/Xen ויותר אמזון AWS, מיקרוסופט Azure, או גוגל Cloud Computing. כל אחד מהעננים הציבוריים מציע עשרות (ובמקרה של אמזון מאות) שרותים שונים ורוב מוחלט של חברות שמציעים שרותים באינטרנט – מארחות בענן ואותם שרותים שמציעים העננים הציבוריים נגישים דרך API או SDK (ומי ש"בונה" על ממשק GUI של ספק הענן – שיקח בחשבון שבמקרים רבים ה-GUI מספק פונקציונאליות פחותה מה-API) ובשביל להשתמש ב-API או SDK – יש צורך בידע בשפות כמו Python או JAVA ובמקרים מסויימים Javascript וידע ב-JSON לדוגמא.

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

ולאלו שמתעניינים במיוחד בשורה התחתונה של "כמה מקבלים" – באופן עקרוני, איש Devops מקבל יותר מאיש סיסטם, אבל שוב – תלוי כמה נסיון יש. אפשר להגיע ל-30K+ אם יש לך נסיון עשיר ב-Devops, Linux ונסיון טוב עם שרותי ענן של אמזון לדוגמא.

(גילוי נאות: כותב שרות אלו מציע שרותי Devops כפרילאנסר)