למה כדאי לחברות לשחרר את הקוד שהן עבדו עליו ולהפוך אותו לפתוח?
ישנה מגמה גוברת, שלפיה יותר ויותר חברות מבינות את היתרונות שבשחרור הקוד שהן עבדו עליו, ובוחרות להפוך אותו לקוד פתוח. הן מבינות שהקוד הפתוח מוריד חסמים ומנגיש את המוצרים לקהל גדול יותר
אופן סורס, או קוד פתוח, מתאר תוכנה שקוד המקור שלה מפורסם וזמין לציבור הרחב. ישנן סיבות שונות שמשתמשים או חברות יתעניינו בתכנה עם קוד פתוח, בין היתר מכיוון שייתכן כי הקוד זמין וניתן לקריאה, לשימוש, עריכה או הפצה מחדש בצורה חופשית. התנאים והפרטים המדויקים מוכתבים על ידי יוצר הקוד דרך רישיון שלרוב מוצמד לקוד. ישנם סוגי רישיון שונים המאפשרים רמות שונות של חופש עבור המשתמש ובמקביל מאפשרים למפתחי הקוד לשמור עליו משימושים שאינם תואמים את כוונתם המקורית.
לאחרונה אנחנו עדים לשינוי שקרה בעולמות הפיתוח וה-DevOps כשמרבית התעשייה, לרבות החברות הגדולות והמצליחות בעולם, מקבלות ומעודדות שימוש בקוד פתוח. מגמת מחשוב הענן שצברה תאוצה בשנים האחרונות חיזקה משמעותית את מודל הקוד הפתוח בעולם התכנה. הענן מאפשר לספקיות הענן לספק שירותי תכנה מנוהלים, מה שמדגיש את הערך בניהול והתחזוקה של השירות, ולכן מאפשר לאותן חברות להציע את הטכנולוגיה גם כקוד פתוח לעולם, לרבות שפות תכנות שלמות וכלים לפיתוח יישומים שמפותחים במודל של קוד פתוח. במקביל, חברות הענן מתבססות בעצמן על תשתיות קוד פתוח, ומשתפות פעולה בפיתוח של אותם רכיבים תשתיתיים לדוגמא, Linux, Docker, Kuberentes וכו'. בעקבות כך קוד פתוח הפך להיות יותר ויותר נפוץ בקרב מפתחים ואנשי תשתיות.
חברות תכנה מסחריות לרוב אינן ששות לשחרר כקוד פתוח את הקוד שהן כתבו בהשקעה רבה, משיקולים שמרניים של חששות מגניבה והעתקה. לעומת זאת, ישנם ארגונים גדולים שדוגלים בשיטת הקוד הפתוח ומקדמים אותה גם בתעשיית אבטחת המידע והסייבר, שבה השיטה הייתה עד לא מזמן פחות נפוצה.
מה הם היתרונות שכל כך הרבה חברות מוצאות בקוד הפתוח?
למעבר לקוד הפתוח יש יתרונות רבים. ראשית, הוא מסייע לקידום תדמית החברה ומדגיש את היותה חדשנית, ובכך מושך מועמדים פוטנציאליים לעבוד בחברה. מעצם היותו פומבי, קוד פתוח הוא במה נהדרת למפתחים להפגין את תחומי העניין שלהם, היכולות והכישורים שלהם. בנוסף, מעצם היותו נגיש וזמין, פרוייקט קוד פתוח מוצלח מושך משתמשים רבים שבונים קהילה סביב המוצר, מה שמושך עוד מפתחים שמעוניינים לעבוד על מוצרים עם השפעה רחבה. באקווה סקיוריטי, למשל, אנו מעודדים את כלל המפתחים בארגון לתרום למוצרי הקוד הפתוח שלנו ושל אחרים. לא רק שזה תורם לתרבות העבודה ולשיתוף הידע בחברה, זה גם מאפשר למפתחים להרחיב אופקים ולהתקדם מקצועית.
כיום, בזכות תשתית הקוד הפתוח עליה בנויים מוצרים מסחריים רבים, המערכות והארגונים מתייעלים ומשתנים כדי להטמיע במוצרים את המשובים המגיעים מהקהילה.
הנגישות של הקוד לקהילה מזמינה כל אחד לתרום לפרויקט ולשפר אותו. אנשים מרחבי העולם, ברמות ידע וניסיון שונות, המגיעים מרקעים מקצועיים שונים, מסוגלים לעבוד ביחד לטובת הפרוייקט. זוהי צורת עבודה שיש לה יתרונות רבים שארגונים המסתמכים על צוותים הומוגניים וריכוזיים מפספסים. בנוסף, הקהילה בודקת את הקוד ומוצאת בעיות ושגיאות ובכך עוזרת למוצר להיות אמין ואיכותי יותר ואפילו בטוח יותר. חשיפה זו מאפשרת קבלת משוב מהירה ואיכותית יותר, ומקצרת את תהליכי הפיתוח של המוצר.
חברות משנות תפיסה בנוגע לקוד פתוח
ישנה מגמה גוברת, שלפיה יותר ויותר חברות מבינות את היתרונות שבשחרור הקוד שהן עבדו עליו, ובוחרות להפוך אותו לקוד פתוח. הן מבינות שהקוד הפתוח מוריד חסמים ומנגיש את המוצרים לקהל גדול יותר של משתמשים שככל הנראה לא היו עושים שימוש במוצר ואפילו לא היו מגלים אותו אלמלא היה בקוד פתוח. כך מתרחש הלכה למעשה שינוי התפיסה בקרב חברות וארגונים בנוגע לקוד הפתוח, והם מתאימים את עצמם לקראתו.
ארגונים רבים שהתחילו את דרכם כחברות המשתמשות בקוד סגור, עברו במרוצת השנים להשתמש בקוד הפתוח. כיום, בזכות תשתית הקוד הפתוח עליה בנויים מוצרים מסחריים רבים, המערכות והארגונים מתייעלים ומשתנים כדי להטמיע במוצרים את המשובים המגיעים מהקהילה. השימוש של אותם הארגונים בקוד הפתוח מאפשר לשפר באופן ישיר את סביבת העבודה של עובדי החברה ומסייע להם לייצר מוצרים טובים ואיכותיים יותר, למצב את תדמית החברה כאיכותית וחדשנית יותר, וכזו ששווה לעבוד בה. אז האם חברות צריכות לשחרר את הקוד שלהן ולהפוך אותו לקוד פתוח? נראה שהתשובה די ברורה.
הכותב הוא מנהל תחום הקוד הפתוח באקווה סקיוריטי, המפתחת פתרונות אבטחת מידע לסביבות הענן.
כל היתרונות של קוד פתוח - הכל טוב ויפה. אבל למה אף פעם מר שקורי ודומיו לא מדברים על חסרונות? 1. המפתח שלך רוצה להראות כמה הוא מוכשר - מה יותר קל מאשר להעתיק קוד של החברה לתוך הPR הקרוב לKUBERNETES, DOCKER ודומיו? לא קורה, אתם אומרים? ראיתי את זה קורה בעינים. עכשיו לך תתווכח איתו אם זה של החברה או לא. וגם אם המפתח לא מתכוון לזה - לאפשר את זה ממקום העבודה, בשעות העבודה, על ציוד של העבודה זה רק עניין של זמן עד שטעויות יקרו. 2. המפתח שלך רוצה לשלב קוד פתוח במוצר - הוא באמת מבין מה ההבדל בין GPL לMIT ל-APACHE לכל סוג רשיון אחר? לא. בגלל זה הוא מפתח ולא עורך דין. כלומר, נדרשת מדיניות של החברה בנושא. ומישהו צריך לתחזק, לאכוף ולהתמודד עם התוצאות כשמפתח משתמש בקוד GPL במוצר ומישהו רוצה את הקוד (שמגיע לו, כי זה מה ששילוב GPL גורם). 3. גם בקוד פתוח יש באגים - איך מקבלים תמיכה? פתאום מתגלה בעייה (מישהו אמר LOG4J?) ועכשיו כל המפתחים שלי עוזבים הכל ומתקנים SEVERITY 1 של אבטחה. אז חסכתי על פיתוח, יש קהילה וכו' וכו' וכו' - אבל בסופו של דבר קניתי בזול, שילמתי ביוקר. אידיאלים, אלטרויזם וכו' הן מילים יפות - מדוע לא שומעים אף פעם את מר שקורי ומקביליו מספרים על כמה בעיות קוד פתוח יכול גם לגרום?
חסרון די מובן מאליו, אם יש תחרות קשה בתחום שלך, ובמוצר שלך יש פיצ'רים שאין למתחרה ופתרת שם כל מיני דברים. זה יכול מאוד להקל עליו לצמצם את התחרות. אז זה גם עניין שצריך לשקול. בחברה אצלינו אנחנו חושפים בopen source רק חלקים ספציפיים שאנחנו יודעים שלא יפגעו בתחרות. ועוד דבר נוסף לשקול, זה שקוד של open source בחברה צריך להיות באיכות גבוהה יותר מקוד ממוצע לרוב. אם חשוב לך הברנדינג של החברה ושיהיה קל למפתחים חיצוניים להיכנס אליו ולהשתמש בו
חדשות לבקרים שומעים על קוד פתוח ויתרונותיו. הכל נכון, טוב ויפה. איך הכותב הנכבד מציע להתמודד עם מפתחים שכדי להראות כמה הם מדהימים חושפים רעיונות וIP של החברה בה הם עובדים? האם יש אנשים שמוודאים את זה? באופן דומה, אם אתה משתמש בקוד בעל רישוי GPL אז אתה חייב לשחרר את הקוד שלך ככזה ולתת אותו לכל מי שרוצה. איך בודקים שמפתחים לא מכניסים קוד כזה פנימה? והאם זה לא סיכון מיותר לחברה? ולא, אני לא קונה את זה שמפתח בודק את הרישוי בכל פעם שהוא צריך קוד. עם כל הכבוד למנהלים ואדווקטים של קוד פתוח - דברו גם על העבודה שנוספת לחברה משימוש בו.
מדוייק. מספיק כבר להתייחס לקוד פתוח כאילו זה פתרון קסם.
כיף לראות חברות ישראליות שמקדמות קוד פתוח. תודה רבה על Trivy ועל Tracee!