הקתדרלה והבזאר

הקתדרלה והבזאר (באנגלית: The Cathedral and the Bazaar) הוא חיבור מאת אריק ס. ריימונד שהנושא הוא מודל פיתוח של תוכנות. החיבור מבוסס על תצפיות שערך על תהליך פיתוח ליבת לינוקס ותוכנות אחרות ומניסיונו האישי בפיתוח תוכנות. למשל בכתיבה ובניהול פרויקט התוכנה fetchmail, בשיטת הקוד הפתוח. רעיון הקתדרלה והבזאר הוצג לראשונה על ידי המחבר ב-27 במאי בשנת 1997 במסגרת כנס Linux Kongress, ולאחר מכן בספר בשם זה. הספר כולל אוסף של חיבורים בנושא פיתוח תוכנה בכלל, ומתמקד בתוכנה חופשית. הוא כולל את החיבור "הקתדרלה והבזאר". החיבורים השונים לא נכתבו באותו זמן, ומדי פעם עורכים אותם על מנת לעדכן את התוכן. "הקתדרלה והבזאר" הוא החיבור המפורסם ביותר. הוא מציע שני מודלים של תוכנה חופשית: מודל ה"קתדרלה" ומולו מודל ה"בזאר" בעולם הקוד הפתוח. כדוגמה למודל הקתדרלה מביא ריימונד את מודל הפיתוח של המהדר הסטנדרטי של גנו (GCC), וכדוגמה למודל הבזאר הוא מביא מערכת קוד פתוח בשם FetchMail שפיתח בעצמו, וכן את פיתוח לינוקס בהנהגת לינוס טורבאלדס. החיבור מראה כיצד מודלים אלו התפתחו משתי הנחות מנוגדות באשר לאופייה של מלאכת ניפוי שגיאות ("דיבוג") התוכנה. על סמך ניסיון שנצבר עם לינוקס הוא מנסח (על משקל חוק ברוקס) את חוק לינוס: "בעזרת מספיק עיניים, כל הבאגים שטחיים". הוא מציע אנלוגיות מעשיות למערכות תיקון-עצמי אחרות של סוכנים אנוכיים ומסיים בבדיקת ההשלכות של הראייה החדשה הזו על עתיד עולם התוכנה. מודל פיתוח התוכנה שאליו מתייחס ריימונד כ"בזאר" לא היה אפשרי לפני תחילת שנות התשעים והתפוצה הרחבה של האינטרנט. עד אז תוכנה (גם תוכנות חופשיות, כגון התוכנות של פרויקט גנו) פותחה על ידי מפתח בודד או צוות קטן של מפתחים. המחיר (בזמן) של הפצת גרסה חדשה וההתמודדות עם כל הבעיות שהיא יוצרת הוא די גדול באופן זה. גם אם מקבלים תיקונים בצורת קוד ממשתמשים מוכשרים נדרש להשקיע הרבה זמן במיזוגם ובבדיקתם. תפוצת האינטרנט איפשרה שינוי בטכניקת הפיתוח: המפתח הראשי (או צוות הפיתוח הראשי) מפרסם בתדירות גבוהה למדי גרסת פיתוח עדכנית ומעודד מפתחים אחרים להשתמש בה ולשפר אותה. בכך הוא גם מעביר אליהם חלק מעול הבדיקות והמיזוג. בנוסף, טכניקה זו מקלה על צירוף מפתחים חדשים. לעומת זאת, לכאורה נראה שבצורת פיתוח כזו יש "בלאגן" כמו בבזאר טורקי קלאסי. זה מעלה שאלות כגון: למה זה עובד, איפה זה יכול לעבוד ואילו תנאים נדרשים לכך, והחיבור מנסה לענות על השאלות האלו. מבקרי החיבור גורסים כי על אף שאבחנותיו של ריימונד נכונות בעיקרון, הן נאיביות. לדוגמה: מי שיקווה ש״בעזרת מספיק עיניים כל הבאגים שטחיים״ ולכן לא יהיו לו באגים במערכת אם היא מבוססת תוכנה חופשית, יתבדה. תמיד יהיו קטעי קוד שלא מספיק עיניים יופנו אליהם. מבקרים נוספים מציינים שהמערכת (או אחת המערכות) אותה מביא ריימונד כהדגמה לשיטת ה"בזאר", כלומר FetchMail שפותחה בהנהגתו היא ברמת מורכבות פשוטה ואיכות נמוכה, ובתור ראייה לעליונות שיטת הבזאר אליה טוען ריימונד היא הוכחה עלובה. במאמר דובר על 19 קווים מנחים ליצירת תוכנות בקוד פתוח: עבודה טובה מתחילה בגירוי אישי שנוצר אצל המפתח או המתכנת. מתכנתים טובים יודעים מה לכתוב. מתכנתים מעולים יודעים מה לשכתב ובמה לעשות שימוש חוזר. תכנן לזרוק גרסה אחת, בין כה תעשה את זה (לקוח מהספר The Mythical Man Month). אם יש לך הגישה הנכונה, בעיות מעניינות תמצאנה אותך. כשאתה מאבד עניין בתוכנה, חובתך האחרונה היא להעבירה ליורש מוכשר. תתייחס למשתמשים שלך כאל מפתחים שותפים. שחרר מוקדם, שחרר לעיתים קרובות; הטה אוזן ללקוחותיך. אם תיצור בסיס גדול של בודקי תוכנה ומתכנתים שותפים, כמעט כל בעיה תאופיין במהירות והפתרון יהיה ברור מאליו למישהו. רימונד סבור שזהו מופע ברור של שיטת דלפי, אשר בתרגום לעברית נרשמה כאפקט דלפי. מבנה נתונים טוב וקוד טיפש עובדים טוב יותר מההפך. אם תתייחס לבודקי התוכנה שלך כאל משאב יקר ערך, הם יהפכו להיות משאב יקר ערך. להיות בעל רעיונות טובים זה דבר מעולה, איתור רעיונות טובים אצל המשתמשים מעולה במידה דומה. לפעמים עדיפה יכולת האיתור. לעיתים קרובות הפתרון המרשים והחדשני ביותר מגיע בעקבות המסקנה שתפסת את הבעיה באופן שגוי. עבודה מושלמת מושגת לא כשאין מה להוסיף, אלא כשאין מה להשמיט (מיוחס לאנטואן דה סנט-אכזופרי). כל כלי אמור להיות שימושי בדרך הצפויה, אבל כלי עצום הוא כלי שאתה עושה בו שימושים מעבר למצופה. לעולם אל תזרוק מידע, תעשה את זה רק כשהנמען מכריח אותך. כשהתחביר שלך רחוק מלהיות מושלם, "סוכר תחבירי" נהיה החבר הטוב ביותר שלך. מערכת אבטחה היא מאובטחת ברמה שבה הסוד שלה מאובטח. הישמר מסודות מדומים. כדי לפתור בעיה מעניינת תתחיל לחפש בעיה שמעניינת אותך. אם עומד לרשות רכז הפיתוח כלי תקשורת טוב לפחות כמו רשת האינטרנט והוא יודע להוביל מבלי לאלץ אחרים, ראשים רבים טובים יותר מראש אחד. בהמשך לחיבור זה כתב ריימונד שני חיבורים נוספים אשר מנסים להסביר תופעות ייחודיות בעולם הקוד הפתוח: Homesteading the Noosphere יישוב הנוספרה - חיבור זה עוסק בבעלות על מרחב הרעיונות (שהמחבר קורא לו "נוספרה"). הוא מתמקד ביחסים בין תוכנות חופשיות שונות. The Magical Cauldron קדרת הפלא - חיבור הבוחן את הכלכלה של תוכנות קוד פתוח. קדרת הפלא היא סיר קסום שממשיך לספק אוכל ללא הפסק. החיבור מנסה להבין איך נוצרת תוכנת קוד פתוח "בחינם" כאילו מתוך קדרת פלא, ובפרט מודלים כלכליים ועסקיים של תוכנות קוד פתוח. חיבורים אלה, עם כמה תוספות קטנות, כונסו לספר שנושא גם הוא את השם The Cathedral and the Bazaar. כשהספר הודפס ב־1999 הוא היה לספר המודפס השלם הראשון שהופץ באופן מסחרי והתפרסם תחת רישיון Creative Commons. אתר האינטרנט הרשמי של הקתדרלה והבזאר (באנגלית) אריק ס. ריימונד, הקתדרלה והבזאר. זהו תרגום לעברית של המאמר הקתדרלה והבזאר (תרגמו: עדי סתיו, אלירן גונן ושלומי פיש), לא של כל הספר. כל הספר הקתדרלה והבזאר, באתר ויקיטקסט סדרת החיבורים ״הקתדרלה והבזאר״ (כלומר הספר) באתר המחבר (אנגלית ושפות אחרות). הקתדרלה והבזאר, באתר OCLC (באנגלית) המונח קוד פתוח נטבע על ידי ריימונד ואחרים רק זמן מה לאחר כתיבת החיבור מודל הפיתוח של GCC השתנה וכיום כבר אינו תואם בדיוק את מודל ה"קתדרלה" Release Early, Release Often, www.catb.org ביקורת על מאמרו של ריימונד (באנגלית)