למה בחרנו לעבוד עם מערכות קוד פתוח

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

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

הבחירה שלנו

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

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

שיקולים בבחירת פלטפורמה

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

תחת הגדרה זו הנחנו את ההנחות הבאות לבחירת הפלטפורמה:

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

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

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

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

כאשר אנו מתקינים אתר אינטרנט ללקוחותינו אנו מתחילים בהתקנת הפלטפורמה. פלטפורמה בהקשר זה היא מעין מנוע רב עצמה המספק שירותים לרכיבי תכנה אחרים ומנהל את כל ההיבטים התשתיתיים של האתר. בתשתיות כלולים ניהול משתמשים והרשאות, היכולת ליצור דפים, קישור מאובטח SSL, ניהול רכיבי העיצוב ואלמנטים אחרים. אחד הגורמים המרכזיים במערכת מודולארית הוא ה API – Application Programming Interface  כלומר היכולת של הפלטפורמה להציג לרכיבי תכנה חיצוניים ממשק מוגדר היטב שבעזרתו כל חברת פיתוח תכנה יכולה ליצור חיבור בין המודול שהיא מפתחת למערכת שלנו.

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

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

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

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

בשוק קיימות מערכות העונות ברמות שונות על הדרישות שהזכרנו. בתהליך הבחינה של מערכות אלו התמקדנו ב 3 מערכות מרכזיות: DNN, Drupal  ו Joomla  שהן המערכות הפופולאריות והמוכרות ביותר כיום לקהל הרחב. בחנו גם מערכות אחרות כמו WordPress, אולם שלוש אלו הן, לדעתנו ו"לדעת גדולים",  המובילות בתחום ניהול התוכן.

משיקולים למסקנות

אחרי שהשווינו את יכולות המערכות הללו בהתאם להגדרות שהוצגו למעלה הגענו למסקנות הבאות:

1. Joomla  – מערכת פופולארית מאוד וקלה להתקנה והפעלה. מערכת זו מאפשרת יכולות טובות בניהול אתר תוכן עד רמה מסוימת. המערכת מאוד פופולארית ויש לה קהל משתמשים נלהב ורחב. הבאז (הרושם הכללי) שמערכת זו מייצרת בקהילת מפתחי האתרים נתמך באופן מאסיבי על ידי מפתחי אתרים מהשורה השנייה שקלות ההתקנה שלה והעובדה שהיא נתמכת על ידי תכנות פיתוח חפשיות (PHP) בשרת (Apache ( ובבסיס נתונים (MySql) החינמיים קוסמים להם. מפתחים מרמה זו אינם מגיעים לטווח היכולות הנדרש על ידינו ובמידה מסוימת יוצרים רושם מוטעה בציבור המשתמשים.

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

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

ושוב להחלטה

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

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

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

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