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

הקתדרלה והבזאר (באנגלית: 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.

קישורים חיצוניים

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

 סדרת החיבורים ״הקתדרלה והבזאר״ (גרסת הספר) באתר המחבר (אנגלית ושפות אחרות).


הערות שוליים

קטגוריה:תוכנה חופשית
קטגוריה:ספרי עיון
קטגוריה:הנדסת תוכנה
קטגוריה:ספרי 1999