טייקו בלוג

קוד פתוח - לא לכל אחד

קוד פתוח - לא לכל אחד

מערכות ניהול תוכן בקוד פתוח (CMS) הפכו נפוצות מאוד בשנים האחרונות. כשני שליש ממערכות הניהול הפופולריות בשוק הן מערכות קוד פתוח: מערכת הבלוגים WordPress מובילה בפער ניכר על מתחרותיה Joomla ו- Drupal.
במאמר זה, אני מתכוון לערער את הקונספציה, לפיה ניתן לבנות  כל אתר על פלטפורמת קוד פתוח.

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

מה לקוחות חושבים שהם מקבלים בבחירת מערכת קוד פתוח?

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

ומה לגבי הניידות? ובכן אין באמת דבר כזה. אתרים לא עוברים בין חברות As-is.

צר לי לקלקל את החגיגה ,האמת היא, שזה אף פעם לא מתנהג כך. נפגשתי עם עשרות לקוחות שביקשו פתרון ייחודי יותר, חדשני ולו במשהו ושם האמונה העיוורת בקוד פתוח התבררה כבעייתית מאוד. העובדה שישנם מאות מפתחים התורמים למערכת ניהול אחת, לא בהכרח מבטיחה שבסיס הקוד איכותי וידידותי לעבוד איתו. חיפוש מתיש בין אלפי מודולים (plug-ins) לרוב מוביל את המפתח להתפשר על הדרישה המקורית והחדשנית(אולי) משלב האפיון. לרוב, הפתרונות לא יהיו תפורים לצרכי הלקוח(tailor-made) ולא תהיה בהם הגמישות כמו בפיתוח מאפס. קשה מאוד למקסם חדשנות כאשר הפיתוח מתבסס על תבניות קוד מוכנות.
במצב שאין ברירה ונדרשת מודיפיקציה, זו תעלה לא פחות מפיתוח על גבי מערכת קניינית.
ומה לגבי הניידות? ובכן אין באמת דבר כזה. אתרים לא עוברים בין חברות As-is.
אני בתחום מעל ל 10 שנים, לא ראיתי אתר שעובר בין חברות ולא עובר מתיחת פנים עיצובית ותכנון מחודש בניווט ובטכנולוגיה. בקיצור..בניית אתר חדש. אף חברה לא תרצה להיכנס לסיוט האפשרי של תחזוקת קוד מיושן, שעבר התאמות, גם אם הוא נכתב בקוד פתוח.

הנקודה העיקרית היא למצוא/ לפתח על גבי פלטפורמה המאפשרת ליצור כל דרישה באופן ייחודי ולא מתפשר, החופש הזה מאוד מוגבל במערכות קוד פתוח הפופולריות (וורדפרס, דרופל, גומלה). עם זאת, ישנן תשתיות קוד פתוח(כדוגמת Ruby On Rails) חכמות, בהן ניתן לשלוט בכל הפונקציונליות ולהבטיח בניית  אתר איכותי במהירות יחסית וללא פשרות.

כשמספר שורות הקוד גדלות, מערכות קנייניות עדיפות

כאמור, אין מערכת אחת עדיפה ומנצחת. חבר טוב, שהוא אחד ממפתחי הווב המובילים בארץ אומר, שאם הוא נדרש לשנות קוד קיים ב- 10% אז הוא מעדיף לכתוב מחדש, מאפס.

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

כאמור, אין מערכת אחת עדיפה ומנצחת. חבר טוב, שהוא אחד ממפתחי הווב המובילים בארץ אומר, שאם הוא נדרש לשנות קוד קיים ב- 10% אז הוא מעדיף לכתוב מחדש, מאפס.

שנדבר קצת על אבטחה?

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

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

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

 

אז, איזו מערכת טובה בשבילך?

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