המאמר שופך אור על הסיבות לבחור לבנות אתרים ומיזמים באינטרנט, תוך כדי שימוש בטכנולוגיות הקוד הפתוח
מתי להשתמש בפלטפורמות קוד פתוח?
בניגוד לפיתוח אפליקציה ייחודית למיזם שלנו קיימת האופציה להשתמש בטכנולוגיות קיימות, הדבר בעצם מאפשר להשתמש בפלטפורמות אינטרנטיות דבר שיש לבחון אותו לעומק מאחר ויש לו היבטים רבים על הצלחת המיזם.
כיזמים שמעוניינים להרים מיזם בתחום כזה או אחר ישנה אפשרות לפנות לחברה שמתמחה בפיתוח ברשת, במצב זה הערכת עלות הפרויקט מצד החברה המבצעת תהיה מבוססת על אחת משתי האופציות הבאות:
- מספר שעות הפיתוח שהחברה מעריכה שייקח לה לבנות את הפרויקט מאפס ולכן במידה ולא יורדים בשלב זה לפרטים הקטנים סביר להניח שתהיינה הפתעות רבות (לא נעימות) במהלך הפרויקט.
-
היכולת לספק לכם פלטפורמה שאותה חברה פיתחה עבור יזם אחר, מעבר לעובדה שזה נתון שכנראה לא יעבור ליזם אחד החסרונות הגדולים בכך הוא שנעשה עיגון של הצרכים על מערכת קיימת במקום הבנת הפונקציונאליות של הפרויקט. בעיה מהותית נוספת היא ברמת ה UI כלומר במידה ואותה חברה אינה בעלת יכולת של בניית אפליקציה תוך כדי הפרדת קבצי העיצוב (CSS), צד הגולש (HTML) והתכנות ייווצר מצב בו ה layout יתבסס על המערכת הקיימת, סביר להניח שנתון זה גם לא יעבור ליזם.
חינם או לא חינם
בניגוד לחברה בה יושבים 3-4 מתכנתים ומפתחים פרויקטים, קהילת הקוד הפתוח שמכילה עשרות אלפי מתכנתי קוד פתוח (php, ruby on rails, python) מפתחים אפליקציות בעלות יכולות פונקציונאליות בעלות ערך גבוה מצד אחד ורמות גימור גבוהות מאוד בפרט ועל ידי תרומה של מפתחים רבים שמפתחים עוד ועוד פיצ'רים וסוגרים פרצות אבטחה נוצרות מערכות חזקות מאוד.
קיימות הרבה פלטפורמות "חינמיות" אם כי ברוב המקרים (ואני מסייג את דברי כי ישנן גם הרבה מערכות טובות מאוד) הפלטפורמות ה"חינמיות" בדרך כלל נבנו ברמת גימור נמוכה, אין הקפדה על פרטים, ולא תמיד נוח לפתח עליהן בעתיד דבר קריטי במיזם אינטרנטי.
למה צריך להתייחס לפני בחירת הפלטפורמה?
מאחר וקיימות עשרות אלפי פלטפורמות ונוספות חדשות מידי יום חשוב לעשות את הבחירה בצורה מושכלת, מניסיוני לרוב המיזמים שהצליחו קדם איפיון מפורט שהכיל את תיאור הזרימה באתר, מרכיבי האתר, איפיון השרתים, איפיון הגולשים באתר, איפיון יכולות האתרים עימם יתבצע שיתוף פעולה (בין אם מדובר במערכות affiliates או התממשקות למערכות פנימיות), הבנה מעמיקה של זרימת הכסף לאתר במידה ויש (מן הסתם אתר שאמור לייצר כסף מצריך מערכות ניהול כספים עם יכולות גבוהות) וכו'.
איפיון כזה הוא אבן דרך ראשונה בבחירת מערכת קיימת או התנעת המיזם בכלל וכאשר מדובר במיזם אינטרנטי הוא צריף להקדים אף תכנית עסקית מאחר והתכנית העסקית תיגזר מעלויות הטכנולוגיה ולא להיפך.
בחירת מערכת שלא מתבסס על הבנה מעמיקה של עולם הקוד הפתוח הינו בגדר ניחוש.
מה היתרונות של מערכות קוד פתוח?
הוזלה משמעותית של עלויות פיתוח
מאחר ולא מדובר בפיתוח מאפס ניתן על ידי עבודה בצורה זו לנתב חלק גדול יותר מהתקציב להבאת העיצוב לרמות גימור גבוהות יותר ולשיווק האתר.
עלויות פיתוח עתידיות נמוכות
חלק מהפיצ'רים העתידיים פותחו על ידי קהילת הקוד הפתוח ולכן העלות אינה על פיתוח על עבור הטמעה.
רמת אבטחה גבוהה יותר
כפי שהוזכר קהילת הקוד הפתוח סוגרת פרצות אבטחה וכך הכוח של עשרות אלפי מתכנתים גבוה סטטיסטית מחברה שמפתחת מוצר גנרי.
פונקציונאליות גבוהה בהרבה מהתקציב הראשוני
בעוד שאלמנטים בסיסיים כמו חיוויים, סטטיסטיקות ואין סוף פיצ'רים נוספים הם דברים שעבור היזם הלא מנוסה הם בגדר "חייבים להיות" יש להם השלכות על שעות הפיתוח (אלה בדיוק אותן הפתעות שהזכרתי למעלה) בעוד שמערכות שנבדקו על ידי קהילת הקוד הפתוח מתייחסות לכך.
גמישות עיצובית
מערכות חזקות ניחנות ביכולת ללבוש skin שונה ועל ידי כך להציג עיצוב שונה דבר שהופך את אילוצי המערכת ברוב המקרים ללא רלוונטיים.
לו"ז פיתוח קצר יותר
מאחר ומדובר בשימוש בפלטפורמה קיימת רמת התאימות לפרויקט תהיה גבוהה (בשאיפה של 80% ומעלה) ולכן זמן הפיתוח מתקצר וכתוצאה מכך העלויות יורדות בהתאם.
יציבות המערכת וכמות באגים בצורה מהותית
מאחר ומדובר במערכת עובדת שלב ה QA של הפרויקט יבוצע בצורה טובה יותר ומהירה יותר.
יתרונות ברמת קידום האתר (SEO)
כתוצאה מבניית קוד נקי על חשבון קוד מסורבל ומלוכלך למנועי חיפוש (דבר בעל משמעות על מהירות טעינת דפים) ויכולת לייצר דפים אינטרנט בתקן xhtml מנועי החיפוש יסרקו את הדפים של אתר האינטרנט בצורה טובה יותר.
דינאמיות ברמת טיפולוגיית האחסון
בניגוד לאפליקציות שמפותחות בקוד סגור ונשענות על Microsoft בלבד מערכות קוד פתוח תוכלנה לשבת הן על מערכות Linux חזקות יותר והן על שרתי Microsoft שמחוייבות בעלויות משמעותיות עבור רישיונות.