OutSource זו מזמן לא מילה גסה בסצנת ההיי-טק חסרת כח האדם המיומן. הנה כל מה שאתם צריכים לדעת.
כבר כמעט עשור שאני עובד עם מתכנתים OutSource, ואני תמיד נשאל על כך הרבה שאלות. לכן רציתי לרכז מדריך קצר של ״עשה ואל תעשה״ עם עובדים במיקור חוץ.
בתי תוכנה
כיום ישנם בתי תוכנה מדהימים בארץ ובחו״ל ובקלות אני יכול להמליץ על כמה כאלה, אך לרוב המתכנתים הטובים כבר במהלך הלימודים בסוף השנה הראשונה או השנייה יבחרו בפינצטה ע״י ענקיות הטכנולוגיה או ע״י סטארטאפים מגניבים ששם יציעו להם תנאים עדיפים מאשר בתי תוכנה יוכלו להציע למתכנתים. לכן, קחו בחשבון שלרוב (יש יוצאים מן הכלל!) המתכנתים שתקבלו הם לא (תמיד) ה-Top of the class, וזה בסדר. את המתכנתים הטובים באמת בתי התוכנה יכוונו לחברות הענק שעובדות איתם.
לכן, אמליץ להשתמש בבתי תוכנה לשלבים הראשונים או לעבודות שוטפות ולא לאלגוריתמיקה מורכבת. זה כבר צריך להיות הבסיס של העסק שלכם ואי אפשר לעשות OutSource לאלגוריתם שעליו מבוסס העסק שלכם.
לסיכום:
בתי תוכנה לעולם לא יחליפו את הצוות שלכם ובטח לא יהיו תחליף ל-CTO, זה בדיוק ההבדל בין מנה חמה למרק קובה מנחם. בירושלים אומרים שהמרק קובה טעים כי הוא ביתי ומתבשל בבית.
המחיר
כאן נמצא הבונוס הגדול. לדוגמא: ניקח מפתח Back End עם ניסיון שנע בין 2-4 שנים.
לפי טבלאת שכר All Jobs, מפתח בישראל יעלה משהו בין $6,000 עד $9,000 בחודש ברוטו (לא חישבתי את עלויות המעביד) בעוד שאותו מפתח בחו״ל יעלה בטווח שבין $3,000 עד $5,000 דולר כולל עלות מעביד. זה כבר פער משמעותי!
עוד נקודה שהייתי שם לב אליה:
עם התחזקות השקל מול הדולר נוצרו מספר תוצרי לוואי. נניח וההכנסות שלכם בדולרים, לכן 1,000 דולר של היום שווה פחות מ - 1,000 דולר של לפני כמה שנים והעסקת ישראלים פתאום הפכה ליקרה יותר (מבחינת המרת המט״ח). בעוד שעבודה מול חו״ל, כאשר התשלום לעובדים בדולרים וההכנסות שלכם בדולרים, אתם בעצם מורידים את החשיפה של תנודות השער.
יש כאלו שיטענו כי אין תחליף לניסיון הישראלי, אבל זה כבר מקום לפוסט אחר.
העסקה ישירה
כאמור, מתכנת Java עם 4 שנות ניסיון באוקראינה בהעסקה ישירה (בלי מתווך באמצע) יעלה בטווח של בין 3k-$5k$ (ניתן לראות מחירים באתר GlassDoor). במידה ותשתמשו בהשמה של בית תוכנה תשלמו בסביבות ה-$5K-$6K אבל תקבלו גם את המעטפת של העסקת העובד (מיון וסינון, משרד, ציוד משרדי וכדומה) ולרוב בתי התוכנה המובילים גם יספקו מנהל פרויקט - שזה חשוב!
בשלבים הראשונים, אני לא ממליץ לעבוד עם העסקה ישירה של עובדים מחו״ל (לפי החוק בישראל, אם 80% מהמשכורת החודשית של אותו עובד מגיע ממעסיק אחד אזי יש לכם יחסי עובד מעביד גם אם אתם עובדים על חשבוניות). לכן בשלב הראשון עד שאתם לא מעסיקים מסה קריטית של עובדים, מוטב לעבוד דרך ספק שלישי.
ברגע שתגדלו, ניתן לבחון העסקה ישירה, כמובן שימו לב שבחוזה שלכם מול בית התוכנה קיים סעיף שמותר לכם בעתיד להעסיק את העובדים בעסקה ישירה, כמובן בסכום אשר הוסכם מראש.
שמירת ה IP וכמובן Open Source
חשוב לוודא כי ה-IP הוא שלכם. לרוב זה מגיע כחלק מהחוזה מול חברות התוכנה שתעבדו מולן וכמובן חשוב לוודא שאתם לא משתמשים ב-Open Source מבלי שאתם עברתם על החוזה של תנאי השימוש של הקוד!
אציין כי במהלך הבדיקת נאותות שתבצעו מול כל קרן מקצועית, אתם תדרשו לספק את תנאי השימוש של כל ה-Open Source במוצר ואם חלילה אתם תפרו את התנאים תאלצו או לתקן את זה (הרבה זמן וכסף) או שתגידו להתראות להשקעה.
עוד מקרה שקרה לי: במהלך שיחה שגרתית עם אחד המפתחים, בטעות ״נפלט״ לו שחלק מהקוד שהוא פיתח עבורנו התגלגל כסוג של Copy-Paste גם לפרויקט אחר. בתחילה זה היה נשמע לי הגיוני כי לא צריך להמציא את הגלגל מחדש, אבל מבחינה משפטית יש כאן אתגר לא פשוט, שימו לב לכך שהקוד שלכם לא מתגלגל למקומות אחרים מבלי שעברתם עליו.
איכות הקוד ותיעוד הקוד.
על מבחן האוטובוס שמעתם? נגיד ויש לכם מתכנת גורו שהוא יודע בדיוק איך כל המוצר עובד אך הוא לא הכשיר מישהו אחר (או רשם תיעוד ברור) ואין איש נוסף שמכיר את הקוד וחלילה פגע בו אוטובוס, האם הפרויקט שלכם נמצא איתו ביחד מתחת לגלגלי האוטובוס? או שיש לכם יתירות - כלומר עוד זוג עיניים שיכולים להיכנס לקוד בן רגע? זה נורא חשוב שיהיה לכם תיעוד וכמובן שהקוד יהיה איכותי.
בדיקות עומסים
לא פעם ולא פעמיים קיבלתי קוד שנראה טוב ועובד מדהים. אבל מה קורה שיש מעל ל-1000 לקוחות בזמן נתון? חשוב מאוד לוודא שהקוד יודע לעבוד גם ב-Stress Test וכמובן אם אפשר גם ב-Penetration test.
מפקח
חשוב שיהיה לכם מישהו מהצוות שלכם שיודע לפקח על התהליך. ישנן הרבה נקודות לשים לב אליהן:
- שפת קוד - חשוב לוודא שאתם עובדים עם השפה הנכונה. לפעמים ההבדל בין בחירת שפת התכנות הוא כל כך קריטי. אתם לא רוצים לעבוד בשפה שהיא לא מותאמת למוצר שלכם או שאין לה קהילת מפתחים מתאימה, רק בגלל שהמפתח הספציפי נוח ורגיל לשפה אחרת. בעבר קיבלתי המלצות לעבוד בשפת תכנות מסוימת למרות שהיא כלל לא התאימה למוצר שלנו (בגלל זמינות של מפתח ספציפי באותו הזמן). בסופו של דבר זה גרם לבאגים בחומרה גבוהה ולעלויות כבדות בשביל לשכתב את הקוד.
- שירותי ענן - אותו דבר תקף גם לבחירת שירותי הענן שאתם עובדים איתם. אל תקשיבו לאנשי מכירות של שירותי ענן זה או אחר, אלא תבדקו מה שבאמת אתם צריכים ולוודא גם על הדרך כמה קל להעסיק מישהו עם ניסיון בשירותי הענן הספציפיים הללו.
- עלויות - תוודאו שאתם מפתחים בשפת תכנות שיש לה ביקוש וגם קל לגייס עבורה מתכנתים. למשל, אם תביאו מפתח מומחה ב-Bash זה יעלה הרבה יותר ממפתח Java. ממליץ לכם לחשוב על העלויות וזמינות של המפתחים בהקשר של ארכיטקטורת המוצר.
אם זה PoC שהולכים להשמיד - עדיף עלויות. אם זה מוצר שהולך להשאר איתנו כ-Legacy עדיף התאמה.
בדיקות ATP
זה טיפ למיטיבי לכת. אם אתם יכולים להכין מסמך בדיקות לפני שהעבודה על הקוד התחילה אז אתם במצב טוב חשוב לוודא שכשאתם מקבלים את הגרסה הראשונה, כל הבדיקות אכן עברו ואושרו על ידכם.
עוד יתרון של בית תוכנה: אם אתם למשל מפתחים מוצר במובייל, יש להם בדרך כלל סט של מכשירים שאפשר לעבור ולבדוק איתם ואז אתם לא צריכים להתעסק ברכישת מכשירי מובייל ותחזוקה שלהם (זה נורא יקר שמסך נשבר, עכשיו תכפילו את זה בעשרה מסכים שנשברים).
שיק או שוק?
תמיד יש את הדילמה של האם עדיף לעבוד עם בית תוכנה גדול שיש לו הרבה לקוחות ואז אם אתם סטארטאפ קטן שצורך 3-4 עובדים במקרה הטוב, האם אתם מעניינים את הלקוח או שאתם Overhead עבורם, או האם עדיף לגשת לבית תוכנה בוטיק שבו אתם הלקוח המרכזי.
האמת? זה עניין של מזל, זמינות וכמה פרויקטים יש לאותו בית תוכנה בזמן נתון. אי אפשר באמת לחזות את העומס שלהם אבל מה שאני ממליץ זה לשלוח להם Spec של המוצר שלכם ממש כמו בליל הסדר לפי השאלות שלהם תוכלו לדעת מי החכם ומי הוא זה שאינו יודע לשאול.
לסיכום
אם יש לכם שאלות ספציפיות או שתרצו להתייעץ אז אשמח לעזור! ישנן הרבה בתי תוכנה מומלצים! כולם יפים, כולם חכמים וכולם יודעים את התורה! השאלה מי נכון עבורכם! מוזמנים להתייעץ.
[email protected]