על שני פרויקטים מוצלחים – ולקחים

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

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

להלן כמה נקודות שכדאי לחשוב עליהן לקראת פרויקטים עתידיים, ולא רק פרויקטים שקשורים ל-DB זה או אחר.

  • מיישם הפרויקט – צריך להשתתף בפרויקט עוד בשלבים המוקדמים: במקרים רבים מתבצעת התקשרות עם איש מקצוע להקמת תשתית/פתרון אחרי שנבחרה חומרה שתריץ את הדברים. ההחלטות לגבי החומרה מתקבלות ע"י האיש המקצועי בחברה או שמוגשות המלצות ע"י אנשי השיווק של יצרן החומרה ואז אחד הקודקודים בחברה מחליט אם לרכוש או לא ומה לשנות (פקטור של מחיר וכו'). אני מבין את התהליך, אולם לעיתים יש דברים שניתן לשנות מבלי להרים את תקרת המחיר – שנותנים ביצועים יותר גבוהים או שרידות גבוהה, ולכן כדאי לשכור את האיש מקצוע לפני קבלת ההחלטות לגבי הברזלים.
  • תוכנות בקוד פתוח מסחרי או רגיל: אחת הנקודות שחשוב לתת עליה את הדעת עוד בשלב החישובים הכספיים, היא ההחלטה אם במערכת החדשה יוטמע פתרון מבוסס קוד פתוח חינמי שמורידים מהאינטרנט, או שרוכשים פתרון קוד פתוח עם תמיכה מסחרית מיצרן התוכנה. דוגמאות לכך לא חסר: OpenStack, Ceph, GlusterFS, RHV ועוד ועוד. אפשר כמובן להוריד מהאינטרנט ולהתקין בלי לשלם שקל, אולם מה קורה כאשר המערכת הזו תהיה פרודקשן ויש תקלה באפליקציה המרכזית? במקרים כמו OpenStack או Ceph לדוגמא, כמות האנשים בארץ שיכולים "לחטט" בקוד ולתקן באגים מאוד קטנה וללא תמיכה מסחרית רשמית – מערכת פרודקשן כזו יכולה להיות מושבתת למשך ימים, ולכן אם מדובר במערכת פרודקשן שתיצור הכנסות – מומלץ לבחור בדרך המסחרית. זה יותר יקר מבחינה כספית – אבל זה נותן שקט ומענה לבעיות בטווח הארוך.
  • כמה שפחות תלויות: לא משנה מי הפרילאנסר או החברה שמקימה עבורכם את הפתרון, חשוב לכלול כמות שעות מסויימת שתוקדש לתיעוד והדרכה של הצוות בחברה, ובמיוחד Troubleshooting. אם לדוגמא המערכת מנותקת מהאינטרנט ויש תקלה, הצוות בחברה (בהינתן הידע) יכול לטפל בתקלה הרבה יותר מהר מאשר פתיחת טיקט, המתנה, ולאחר מכן עבודה בשיטה של copy/paste מהטיקט למכונות.
  • חיבור אינטרנט למערכת: לא מעט לקוחות מבקשים להקים מערכת שבמצב פרודקשן תהיה מנותקת לחלוטין מהאינטרנט. זהו דבר מובן ומקובל, אבל עדיין חשוב לבנות חיבור אינטרנט (ישיר או עקיף, ע"י הקמת Proxy או VPN לדוגמא) לעדכונים ותיקונים חשובים. ראיתי לא מעט מקרים בהם אנשים הורידו קבצי RPM וחשבו שהם יוכלו להתקין אותם ישירות בפרודקשן מדיסק און קי, ואז הם ראו דרישה מהמערכת לערימת קבצי RPM נוספים כתלויות. על מנת לאבטח את המערכת, חיבור כזה צריך להיות מופעל ידנית כמובן כך שלא ניתן להיכנס אוטומטית מרחוק.
  • דאגו ל-Gateway: נניח שיש לי 50 שרתים, כולם תחת אותו Class של כתובות (נניח 24/). מטבע הדברים יספיק שרת DNS פנימי פשוט כדי שהמכונות יכולות לשוחח בינן לבין עצמן ואין צורך בשום Gateway, אבל הבעיה מתחילה בכך שאם נניח מכונות 3,8,10,14,30 צריכות עכשיו להתחבר לאינטרנט להוריד דברים מסוימים (ואין Proxy), בלי Gateway זה יהיה בעייתי, ולכן מומלץ שאפילו ה-Switch המקומי ישמש כ-Gateway מקומי.
  • לוח זמנים – בחיים ניתן לשלוט על דברים רבים, אך יש דברים שאין עליהם שליטה. פרויקט אמור להימסר ללקוח בעוד חודשיים אך עדין לא מצאו איש מקצוע בתחום מסוים. יש צורך בהחלפת רכיב מסוים בכל השרתים. יש צורך בשינוי דחוף בארכיטקטורה. הלקוח לא מרוצה מהביצועים – קחו טווח זמן יותר ארוך ממה שאתם חושבים שתצטרכו.

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

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

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

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

  • עבודות פרויקט: חברת XYZ מעוניינת בפרויקט מעבר תשתית ל-ABC. לאחר שאקבל את המפרט, אני אוכל לדעת פחות או יותר את כמות העבודה ואוכל לתמחר את ההקמה ב-2 אפשרויות מקובלות:
    • אפשרות ראשונה היא אפשרות Fixed לפרויקט – אני אבקש נניח 1000 שקל עבור הפרויקט. בדרך הזו אני קובע את המחיר כמחיר קבוע ללא כמות שעות שאדרש על מנת להקים את הפרויקט. היתרון הוא יותר לכיוון הלקוח: הלקוח יודע שהוא יצטרך לשלם 1000 שקל ולא שקל אחד מעבר לכך. החסרון שלה הוא בכך שאם אני כפרילאנסר אצטרך להשקיע יותר שעות ממה שחשבתי מלכתחילה, אני אפסיד על הפרויקט. מחיר פר פרויקט יותר מתאים לפרויקטים גדולים כאשר המחירים נעים בין 6 ל-7 ספרות ואין אפשרות לתשלום פר שעה.
    • אפשרות שניה היא מחיר פר שעה: באפשרות זו הפרילאנסר מציין מחיר לשעה וכמות שעות מוערכת שיקח להקים את הפרויקט. אפשרות זו עוזרת להימנע מבעיות בהמשך הדרך אם צצות להם פעילויות שיש צורך לבצע שלא נלקחו בחשבון (מכיוון שהן לא היו ידועות) מכיוון שהלקוח יצטרך לשלם על שעות עבודה נוספות על דברים מעין אלו, לעומת מחיר Fixed ששם הפרילאנסר יצטרך לספוג את הפעילות הבלתי צפויה. שוב, בפרויקטים גודלים – החברה הקבלנית תצטרך במקרים רבים לספוג את הפעילות הבלתי צפויה אם היא לא העריכה זאת מראש. היתרון ללקוח בעבודה עם בנק שעות הוא שניתן להשתמש בשעות הנותרים לצרכי תמיכה או לצרכים אחרים שהוגדרו מראש ללא תשלום נוסף.
  • עבודות Pre Sale כאיש מקצוע מלווה: חברה מעוניינת לשווק לגוף גדול מוצר או שרות. לרוב אנשי ה-Pre Sale אין את הידע המקצועי הרחב שיש לפרילאנסר שנותן כבר שרות/הטמעה למוצר, ולכן במקרים רבים חברות שונות מבקשות מפרילאנסר להצטרף אליהן לפגישות עם הגופים הגדולים על מנת לשכנע את הגוף הגדול לרכוש את אותו מוצר או שרות. לעיתים הפרילאנסר יצטרך להכין Demo או מצגת או ניירות עבודה עבור אותן פגישות.
    בעבודות כאלו, מול חברות אינטגרציה גדולות (כמו Matrix) – בד"כ אפשר לסגור את הנושא בכך שהפרילאנסר ירשום את שעות העבודה ושעות הפגישות ויגיש אחת לחודש חשבונית על כך. לעומת זאת, יש לא מעט מקרים עם חברות אינטגרציה יותר קטנות המבטיחות לפרילאנסר שאם הן יצליחו למכור את המוצר/שרות – הוא יוכל להרוויח מכך כסף, כך שהוא לא ירוויח משעות הפגישה/הכנת מסמכים/Demo וכו' וכאן אני חייב להדגיש עבור חבריי הפריאלנסרים: עם הבטחות אי אפשר לקנות בסופרמרקט ולכן אני ממליץ להתעקש על תשלום שעות על הדברים הללו (תתפלאו, אישית אני שבע מרורים מהבטחות שבסוף לא התקיימו כי הגוף הגדול החליט ללכת על מוצר/שרות אחר ואני נשארתי מבלי שקיבלתי אגורה שחוקה על כל ההשקעה שלי).
  • עבודות שזמנן אינו ידוע: חברה מעוניינת שתבצע איזו עבודה, ובהמשך הדרך לבצע עבודות נוספות זהות ללקוחות החברה. גם כאן מופרחות להן הבטחות שמדובר בכמות שעות גדולה, תצטרך להתחייב לבצע את העבודה במהירות רבה, וכמובן – מחיר נמוך כאילו מדובר במאות שעות לחודש. הבעיה: לא ניתן להעריך את כמות שעות העבודה ומתי הדברים יתבצעו, מכיוון שמדובר בתלות בגורמים שונים.
    במקרים כאלו, אני ממליץ לבחור במסלול בנק שעות שהלקוח יצטרך להחליט את כמות השעות והיא תשולם ב-X תשלומים (מקדמה, תשלומים חודשיים בהתאם לפריסה שסיכמת עם הלקוח). מדוע דרך זו? מכיוון שכפרילאנסר, תצטרך במוקדם או במאוחר להתחייב לזמנים ותאריכים מסויימים עבור לקוחות אחרים והדבר האחרון שהם מעוניינים זה בפרילאנסר "מבריז" עבור לקוחות אחרים. אינך מעוניין להגיע למצב שהלקוח שהבטיח "מאות שעות" סיפק לך בחודש מסויים 4 שעות עבודה ומכיוון שהתחייבת לו, לא תוכל להתחייב לאחר ובכך להפסיד עבודות. לכן, קבעו בנק שעות, ותנו ללקוח לשבור את הראש איך להשתמש בבנק השעות, ואתם לא תגיעו למצב של פרנסה מופחתת בגלל הבטחות.
  • עבודות ריטיינר (כמות שעות חודשית שנמכרת ללקוח): הנה משהו שחשבתי שהוא מוכר ומוסכם, אולם להפתעתי התברר לי שלא כך, ולכן אסביר את הדברים החשובים בעבודות ריטיינר:
    • הלקוח קונה X שעות בחודש. ה-X שעות היא כמות מינימום. במידה והפרילאנסר עובד יותר שעות מעבר ל-X, הלקוח צריך לשלם על כמות השעות הנוספת (מומלץ לפרילאנסר להודיע ללקוח לפני סיום ניצול ה-X שעות).
    • חשוב לקבוע על מה תינתן העבודה: במסגרת החוזה, יש לציין על מה תינתן העבודה, על אלו מערכות ואלו אפליקציות. הלקוח רוצה יותר? כנסו למו"מ על מחיר. (יש כמובן פרילאנסרים שתמורת הריטיינר הם יעשו הכל, חוץ מטאטוא המשרד…).
  • שיתופי פעולה: כפרילאנסרים, ככל שתהיו יותר מפורסמים, כך תקבלו יותר ויותר פניות לשיתופי פעולה – בביצוע עבודות, במכירת מוצר או שרות וכו'. אין בכך שום דבר רע כמובן, ומה שמביא הכנסות – מבורך, אבל חשוב לזכור, כמו בעניין ה-Pre Sale: אם מבקשים מכם דברים, גבו על כך תשלום ואל תתנו לאמרות חלקלקות להוציא מכם עבודות בחינם. תזכרו שאתם עדיין צריכים לשלם למדינה מסים, שכ"ד/משכנתא, אוכל וכו' וכו'.
  • עבודות דרך צד ג': בלא מעט מקרים תקבלו הצעות עבודה דרך חברת אינטגרציה אצל לקוח שלה. גם כאן, כמו בבנק שעות, חשוב לבדוק את כמות השעות ולא להאמין להבטחות שיהיו עוד לקוחות ובהתאם לקבוע את מחירכם (החברה כמובן תוסיף מחיר תקורה כלשהי, ולכן חשוב לקבוע מה יהיה מחיר השעה שלכם) – אל תתנו מחיר של 60 שעות בחודש כמו מחיר של 200 שעות בחודש.

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

בהצלחה

שלח לחמך על פני המים

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

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

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

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

לפיכך, יצרתי טופס שנמצא כאן. בטופס הזה אתם ממלאים את הפרטים שלכם והם מתווספים לקובץ Google Sheets. אני מעביר קישור (שלא ניתן לעריכה) לחברות כך שהם יכולים לשמור את הקישור ובעת הצורך הם יכולים לחפש לפי מילות מפתח ולמצוא פרילאנסרים שנותנים שרות והם יכולים ליצור קשר במייל או בטלפון (אין חובה להשאיר מס' טלפון) עם הפרילאנסר ומשם לסכם תשלום, תנאים וכו' וכו'.

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

תודה,
חץ בן חמו
[email protected]