Professional Documents
Culture Documents
وثائق أعجوبة
http://docs.ojuba.org
تمثل هذه الوثيقة تصديرا لنص على موقع أعجوبة ،ولكن رغم ذلك تنويه :
ل يتحمل الموقع أية مسئولية قانونية عن صحة أو خطا ما يرد فيها.
يسمح لك نسخ أو توزيع أو تعديل هذا المستند
وفق شروط الرخصة الحرة المحددة
حقوق النسخ محفوظة ©
مشروع وثائق أعجوبة
الكتدرائية والسوق/البار
جدول المحتويات
4..........................................................................................................................
.1الكاتدرائية والسوق/البار
.1.1حول هذه القالة4...............................................................................................................................
.1.2مقدمة4.............................................................................................................................................
4............................................................................................................
.1.3الكاتدرائية والسوق )البازار( :
.1.4البيد يجب ان يعب 5.......................................................................................................................:
.1.5أهمية الستخدمي 7..........................................................................................................................:
.1.6الصدار في وقت مبكر ،و الصدار التكرر 8........................................................................................:
.1.7ما هو عدد الطلعي ,و ما هي تعقيدات تكوين الفريق؟ 10......................................................................:
11...........................................................................................
.1.8مت يكون ورد الجوري ليس وردا جوريا :
Popclient .1.9يصبح 13...............................................................................................Fetchmail :
Fetchmail .1.10يكب 14....................................................................................................................:
.1.11مزيد من الدروس في16..............................................................................................Fetchmail :
17............................................................................
.1.12الشوط الضورية السبقة لنمط البازار )السوق( :
.1.13السياق الجتماعي في البمجيات الحرة18..........................................................................................:
.1.14عن الدارة و خط ماجينوت 21.........................................................................................................:
.1.15خاتمة الكتاب :نيتسكيب Netscapeتحتضن السوق "البار" 24........................................................:
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكاتدرائية والسوق/البار
.1.1حول هذه القالة
الكاتدرائية و السوق )البار( وثيقة مقارنة بي بيئة تطتتوير البمجيتتات الغلقتتة و الفتوحتتة )الحتترة( وهتتي أيضتتا كتتتاب
مطبوع نشته بالنجلييةO'Reilly
•الؤلف :إريك ستيفي ريموندEric Steven Raymond
•ترجمة :زياد عبد الرحمن الهندي
•التدقيق اللغوي :ريوف عبد الرحمن الهندي
•الرخصة :رخصة النش الفتوحOpen Publication License, version 2.0
•يمكن الوصول للوثيقة باللغة النجليية على الرابط/http://catb.org/esr/writings/homesteading
.1.2مقدمة
لقتتد قمتتت بتحليتتل الشتتوع الناجتتح )فيتتتش ميتتل (fetchmailوهتتو حتتر الصتتدر ،والتتذي طبتتق كمشتتوع اختبتتار
للفرضيات الدهشة في هندسة الحاسوب والتتذي استتتنبط متتن تاريتتخ نظتتام التشتتغيل “لينكتتس” ،وستتوف يتتتم مناقشتتة
هذه الفرضيات من جانبي أساسي مختلفي كليا ,الجانب الول مبدأ “الكاتدرائية” وهتتو الستتائد لن العتتالم التجتتاري
التقن يستخدم هذا البدأ ،والجانب الخر هو “السوق” ويسمى أيضتتا “البتتازار” ويستتتخدم غالبتتا فتتي بيئات لينكتتس.
وسأقوم باستعراض هذه البادئ الت يتم استنباطها من وجهات نظر مختلفة في طبيعتتة مهتتام تنقيتتح البمجيتتات .بعتتد
Given enough eyeballs, all ذلك وانطلقا من حصيلة خبات لينكس ستتوف أنتتاقش الفرضتتية التتت تقتتول “
،”bugs are shallowوتعنت أنتته كلمتتا زاد عتتدد الستتتخدمي قلتتت العلتتل ،وهتتي تتتوحي بالقارنتتات الفعالتتة متتع
النظمة ذاتية التصحيح و التتت تحتتتوي علتتى وكلء أنتتانيي ،وأخيتتا ستتوف أختتتم ببعتتض التعقيتتدات التتت تتتواجه هتتذا
البدأ بالذات فيما يخص مستقبل البمجيات .
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
اعتقادي بوجود تعقيدات حرجة بحيتتث لبتتد أن تتتتم فتتي بيئة مركزيتتة ،واعتقتتدت أن أهتتم البامتتج هتتي ) نظتتم التشتتغيل
والبمجيات الكبية مثل بيئة تطوير ايماكس ( Emacsلبد أن تبن فتتي بيئة الكاتدرائيتتة ،بحيتتث يتتتم التطتتوير بكتتل
عناية علي أيدي سحرة أو عصابات صغية يعملون في عزلة تامة عن العالم ،بحيتتث ل يصتتدر أي إصتتدار أولتتي )بيتتتا
(betaلي برنامج قبل وقته .لذلك كان لبد من وجود نهتتج مبتكتتر .صتتدر أستتلوب لينتتوس ترافولتتدس للتطتتوير مبكتترا
وبشكل مستتتمر ،وكتتان شتتفافا إلتتى درجتتة الوضتتوح التتتام .وهتتذا كتتان مفتتاجئا بتتل ثوريتتا ،بحيتتث ل يوجتتد أستتلوب البنتتاء
الكاتدرائي هنا ،بل على العكس تماما ،بحيث مجتمعات لينكتتس كتتانت تبتتدو وكأنهتتا تمثتتل حركتتة الستتوق )البتتازار( فيمتتا
يخص جدولة العمال والتواصل ) هذا تمثل بكل كفتتاءة فتتي مواقتتع أرشتتفة لينكتتس التتت تقبتتل الستتاهمة متتن أي شتتخص
كان( من هنا ينشأ نظام ثابت ومتماسك ،وهذا ل يحدث بدون تسهيلت أو معجزة.
في الواقع إن نظام السوق )البازار( هذا فّعال بل ويعمتتل بكفتتاءة عاليتتة بحيتتث كتتان هتتذا مفتتاجئا جتتدا .وفيمتتا أنتتا أتعلتتم
الحيثيات عملتتت بجهتتد ليتتس فقتتط علتتى مشتتاريع فرديتتة ,بتتل حتتاولت أن أستتتوعب لتتاذا عتتالم لينكتتس التتذي يعمتتل بهتتذه
الطريقة لم يتفكك أو يصاب بحالت من الفوض والذهول ،بل على العكس تماما كان ينتقتتل متتن حالتتة قويتتة إلتتى حالتتة
أقوى بسعة ل يستطيع أحد تخّيلها حت نظام الكاتدرائية.
بحلول منتصف عام 1996تسّنت لي طريقة ممتازة لختبار نظريت بمحتتض الصتتدفة ،عتتن طريتتق برنامتتج حتتر الصتتدر
و التتذي بواستتطته استتتطعت تجربتتة التطتتوير باتبتتاع أستتلوب الستتوق )التتبار( ،وفعل نجحتتت التجربتتة و كتتانت نجاحتتا
باهرا وانطلقا من هذه التجربة اعتقدت أنن بدأت أفهم ،وهذه هي قصة هذا الشوع.
وليس كل ما سأذكره تع ّلمته من أول تعامل لتتي متتع عتتالم لينكتتس ،ولكتتن ستتوف نتترى كيتتف أن عتتالم لينكتتس هتّذب هتتذا
الفكر ،وسأذكر كيف سيساعدك على فهم ما هتتو بالضتتبط وفهتتم متتا التتذي يجعتتل متتن مجتمتتع لينكتتس مثتتل الينبتتوع متتن
البامج الجيدة ،وربما ،سوف يساعدك على أن تصبح أكث إنتاجا.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
بشكل يدوي جدا مزعجة (.ومن الواضح ان هذة الهمتتة كتتان لبتتد ان تتتتم بشتتكل تلقتتائي متتن الحاستتب نفستته .و لكتتن ال
POPلم يكن يعرف كيف يقوم بذلك ,و من هنا انطلق الدرس الول :
-1انه كل عمل جيد للبمجيات نشأ من مطور يحاول ان يستجيب لطالبه
متتن العتتروف ان )ان الحاجتتة هتتي أم الختتتاع( و لكتتن فتتي معظتتم الحيتتان التتبمجون يقضتتون وقتهتتم فتتي صتتناعة
برمجيات ليحتاجونها و ل يحبونهتتا مقابتتل متتردود متتادي .و لكتتن هتتذا ل يحتتدث فتتي عتتالم لنكتتس – و ربمتتا هتتذا يفست
الجودة العالية في برمجيات لنكس لذا بدات انا مباشة في تطوير عميل popجديد لي لكي ينافس الوجتتود حاليتتا ,و
نظرت بدقة الى الدوات الت احتاجها في عميل popالذي انوي عمله ,و انا اسأل نفس ت اي متتن هتتذه الخصتتائص هتتي
القرب لا احتاج.
-2البمتتج الجيتتد يعتترف متتاذا يكتتتب ولكتتن البمتتج المتتتاز هتتو اللتتذي يعتترف مايحتتتاج ان تعتتاد كتتتابته )او يعتتاد
استخدامه(
انا ل ادعي اني مبمج ممتاز ,ولكن ستتأحاول تقليتتد البمتتج المتتتاز .واحتتدى مزايتتا البمتتج المتتتاز هتتو الكستتل البنتتاء
بمعن انك تحصل على اعلى التتدرجات ليتتس للمجهتتود بتتل للنتيجتتة ,ومتتن الستتهل دائمتتا ان نبتتدأ متتن حتتل جتتزئي صتتمم
بطريقة جيدة من ان نبدأ من الصفر ,,على سبيل الثال“ :لنوس ترافولدس” لم يحاول ان يؤسس لنكتتس متتن الصتتفر.
انما بدأ باعادة استخدام شفرة و افكار من متتانكس ) (Minixوهتتو عبتتارة عتتن نظتتام تشتتغيل شتتبية بيتتونكس )(Unix
.”PCو بعد فتة جميع شفرات مانكس ) (Minixتم اعتتادة كتابتهتتا للنكتتس..و بنفتتس وهومخصص للجهزة النلية “
الحماس ,ذهبت ابحث عن ادوات popمبمجة بطريقة جدية لكتتي استتتخدمها كأستتاس للتطتتوير.وعتتادة تبتتادل مصتتادر
GNUاختتتار يتتونكس البامج و مبدأ اعادة استخدام الصدر في عالم يتتونكس كتتانت شتتائعة ومتوافقتتة )لتتذلك مشتتوع
كمثال يحتذى به ,مع الخذ بعي العتبار التحفظات على نضتتام التشتتغيل نفستته( بحيتتث قتتام عتتالم لنكتتس بالستتتفادة
القصوى من هذا البدأ بتوفي جميع الصادر لي مستخدم .ولذلك في عالم لنكس يثمتتر البحتتث عتتن شتتفرة جيتتدة يمكتتن
اعادة استخدامها اكث من اي بيئة اخرى دائما.
هتتذا متتا حتتدث لتتي ,فتتي بحتتث الول عتتن عميتتل ,popامتتا اثنتتاء عمليتتة البحتتث الثانيتتة و جتتدت تستتعة برامتتج مؤهلتتة
للستخدام ) fetchpop, PopTart, get-mail, gwpop, pimp, pop-perl, popc, popmail and
(upopو تتتم اختيتتار fetchpopالتتذي كتتتب بواستتطة .Seung-Hong Ohمتتن خللهتتا بتتدأ التغي ت ثتتم ارستتلت
تعديلتي الى الطور الذي بدوره قبلها و ادمجها مع اصداره التالي ,اصدار1.9
وبعد عدة اسابيع ,توصلت الى الشفره الصدرية ل popclientاللت كتبتتت بواستتطة ,Carl Harrisو اكتشتتفت ان
هناك مشكلة في ,fetchpopمع العلم انه يحتوي على افكتتار جيتتدة مثتتل )خاصتتية العمتتل فتتي الخلفيتتة( و لكتتن كتتان
ليتعامل ال مع POP3وكانت الشفرة الصدرية الكتوبة بواسطة seung-hongمكتوبتتة بطريقتتة بدائيتتة متتع العلتتم
انه مبمتتج جيتتد ولكتتن تنقصتته الختتبة وكتتان هتتذا و اضتتح متتن الشتتفرة الصتتدرية ,وفتتي القابتتل الشتتفرة الصتتدرية التتت
كتبت بواسطة Carl'sكانت مكتوبة بشكل اكتتث احتافيتتة و لكتتن البنامتتج كتتان يفتقتتر التتى بعتتض الخصتتائص الهمتتة
الوجودة في ) fetchpopبما فيها الخصائص الت قمت انا باضافتها ( اذن ؟؟ هل اغّي ام ابقى ؟؟ اذا قمت بتتالتغيي
اكون قد رميت بالتطوير اللتتذي صتتنعته مقابتتل عمتتل شتتفرة جديتتدة متتن مصتتدر اجتتود !!.او التتدافع العملتتي للتغيت هتتو
ظهور دعم لتعدد البتوكولت .وكان Pop3هو الكث شيوعا ولكنه ليس الوحيتتد Fetchpop,و النافستتي الخريتتن
لم يتتدعموا POP2, RPOP, or APOPو كنتتت افكتتر باضتتافة IMAPفقتتط للتستتلية و كتتانت هنتتاك ايضتتا استتباب
نظرية للنتقال ,و هذا قد تعلمتة قبل تعرفي علتتى عتتالم لنكتتس بفتتتة طويلتتة-3..خطتتط لتتتمي احتتدهم ,وستتوف تفعتتل
ذلك على اية حال ) من كتاب ، Fred Brooks, The Mythical Man-Monthالفصل (11
او بعباره اخرى انت حقيقة ل تفهم الشكلة ال بعتتد تطتتبيق الحتتل لول متترة و فتتي التترة الثانيتتة تكتتون ربمتتا قتتد تعلمتتت
اكث لتطبيق الحل بشكل ناجح ,لذلك اذا اردت ان تطبق الحل الصحيح استعد لتقوم به اكث من مره.
لذلك قلت لنفست ان التعتتديلت التتت تمتتت علتتى fetchpopكتتانت محتتاولتي الولتتى ,لتتذلك قمتتت بالتحويتتل وبعتتد ان
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
انهيت اول رقعة لل popclientارسلتها الى Carl Harris onفي تاريخ ,June 1996 25ولكن وجدت انه بكل
بستتاطة فقتتد الهتمتتام فتتي popclientمنتتذ فتتتة .و كتتان الصتتدر يحتتتاج التتى التحتتديث فقتتط ومعالجتتة بعتتض العلتتل
البسيطة ,لذلك اتفقنا على ان التصف النطقي هنا ان يتم تسليمي البنامج و اكتتون انتتا الطتتور الرئيست للبنامتتج…
و بدون ادراك من نما هذا الشوع ليتحول من مجرد عمتتل رقعتتة لخاصتتية متتا التتى تطتتوير برنامتتج كامتتل ,وعلتتى الفتتور
بدأت افكر بطرق مختلفة لتطوير البنامج جعلتن اشعر ان البنامج سوف يتغي كليا.
-4في الثقافة البمجية تبادل البمجيات مستحب ,و هذا وضع طبيعي لتطوير أي برنامج ,و كنت اتبع هذا البدأ :
)اذا كان عندك السلوك الناسب ,الشاكل المتعة تجد طريقها لك( و سلوك Carl Harris'sاكتتث اهميتتة ,فقتتد تفهتتم
هذا.
.5عندما تفقد الهتمام ببنامج تكون مهمتك الخية للبنامج ان تجد شخص مؤهل لتوليه
و بدون اي نقاش ,كل متتن Carlو انتتا عرفنتتا اننتتا نتقاستتم عامتتل مشتتتك ال وهتتو تقتتديم افضتتل حتتل موجتتود ,الستتؤال
الوحيد لكلينا هو هل بامكاني ان اثبت انن قادر على تتتولي مستتؤلية البنامتتج ام ل؟؟ .حالتتا اثبتتت ذلتتك تصتتفCarl
بكرم شديد و ارسل الحتوى كامل لي.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
صغي و غي مرنة و الت تمت كتابتها من شخص ما ..علما ان التطوير الذي لحتتق ” تعقتتب النستتخ” VCنجتتح علتتى
عكس Emacsنفسة .وشفرة Emacs Lispتاخذة دورة كاملة ابتداء من) اصدار ,اختبتتارو تحستتي( استتع بكتتثي
من .Emacs
قصت مع Emacsليست فريدة فقد كان هناك عدد من البمجيات التتت تحتتتوي علتتي مستتتويي للهندستتة العماريتتة و
مستويي من الستخدمي و الت دمجت بي نمط الكتدرائية و نمط السوق ,احدى هتتذة البمجيتتات هتتو ,MATLABو
هو برنامج تجتتاري لتحليتتل العلومتتات و ادوات التصتتور ,وبحستتب افتتادة الستتتخدمي التطتتوير والبتكتتار اختتذ بتتالتكون
في الجزأ الحر من البيئة التطويرية ,بحيث يستطيع عدد كبي من الستخدمي التعامل مع البنامج و جزيئاته.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
اذا َ كان الصدار التكرر و استخدام النتنت كاداة للتكافل و العمتتل الجمتتاعي لتتم يكتتن بمحتتض الصتتدفة بتتل كتتان وليتتدا
لعبقرية لينوس فقد اتخذ اقل السارات جهتتدا ,اذا متتا هتتي الفتتائدة القصتتوى التتت عظمهتتا لينتتوس ,ومتتاذا كتتان يفعتتل علتتى
حاستتوبه؟؟؟ .الستتؤال يجيتتب علتتى نفستته .لينتتوس كتتان دائمتتا و بشتتكل مستتتمر يحفتتز و يكتتافئ مستتتخدميه و مطتتوريه
باستتتخدام الرض ت عتتن النفتتس و فتتتح بتتاب الشتتاركة لتتن اراد ان يقتتدم شتتيا ,و يكتتافيء ايضتتا بتقتتديم تحستتينات علتتي
العمال القدمة .لينوس كان يعمل جاهتتدا لزيتتادة عتتدد الستتاعات و عتتددا لشتتخاص اللتتذين يقومتتون بعمليتتة التنقيتتح و
التطوير ,حت على حساب عدم الستقرار في الشفرة الصتتدرية و استتتهلك الستتتخدمي فتتي حالتتة ظهتتور عطتتل جتتدي.
كان لينوس يتصف كما لو كان يؤمن بي..
-8اذا كان عندك قاعدة مستخدمي و مطورين كبية ,اذن كل مشكلة سيتم تحديدها و تصتتنيفها بشتتكل ستتيع ,عنتتدها
ستتوف يكتتون الحتتل بتتديهيا وستتهل.او تصتتبح الشتتاكل اقتتل اذا تتتوفر العتتدد الكتتافي متتن الطلعي ت علتتى جميتتع العطتتال
الضحلة.
القاعتتدة الساستتية لتتي هتتي “انتته اي مشتتكلة موجتتوده لهتتا حتتل عنتتد شتتخص متتا” ولكتتن لينتتوس يعتتتض و يقتتول ان
الشخص الذي يفهم و يصلح الشتتكلة ليتتس بالضتتورة بتتل و ليتتس غالبتتا ان يكتتون هتتو نفستته الشتتخص التتذي يكتشتتف
الشكلة .و يقول انه عادة “شخص ما يكتشف الشكلة” و شخص اختتر يفهتتم الشتتكلة” ..و ستتوف اضتتيف اضتتافة هنتتا
واقول “ان اكتشاف الشكلة هو العمل الصعب” مع العلم ان تصليح العطتتل مهتتم ايضتتا .و ستتنى فتتي الفصتتل القتتادم,
عندما نحلل التنقيح بشكل مكثف ,و لكن الهم هنا لي ان اكتشاف الشكلة و حلها تكون بشكل متتابع..
في قانون لينوس يكمن الفتترق الحقيقتتي بيت النمتتط الكتتتدرائي و نمتتط الستتوق ..ففتتي البنتتاء نستتتخدم النمتتط الكتتتدرائي
فتكون عملية ا التطوير معقدة ,متخفية و عادة متتا تأختتذ وقتتتا و هتتي تحتتت الفحتتص بواستتطة حفنتتة متتن الطتتورين .لتتذا
تأخذ هذه البمجيات وقت طويل لظهور الصدارات الجديدة ,و غالبتتا متتا نصتتاب بخيبتتة امتتل عنتتد وجتتود علتتل فتتي هتتذة
الصتتدارات خصوصتتا بعتتد طتتول انتظتتار… وفتتي القابتتل باتبتتاع نمتتط الستتوق )التتبار( للبنتتاء ,متتن الفتتتض ان العلتتل
بشتتكل عتتام تكتتون ضتتحلة او علتتى القتتل ستتوف تصتتبح مشتتاكل ضتتحلة قريبتتا خصوصتتا عنتتد التعتترض للف متتن
الستخدمي )شكاء التطتتوير( اللتتذين يتلهفتتون للطلع علتتى اي اصتتدار جديتتد .وفًقتتا لتتذلك انتتت تصتتدر بشتتكل مستتتمر
لتعالج اكب قدر من العلل .و هذا كتتل شتت .و اذا كتتان “قتتانون لينتتوس” ختتاطيء اذا َ مشتتوع معقتتد مثتتل نتتواة لنكتتس
,Linux kernelقتتام بالعمتتل عليتته مجموعتتة كتتبية جتتدا متتن الطتتورين كتتان لبتتد ان يتهتتدم متتن كتتث التعتتديلت و
الضافات من ايادي مختلفة .و لكن هذا يفس قلة العلتتل فتتي نضتتام لنكتتس و صتتموده للعمتتل لفتتتات طويلتتة اشتتهر و
احيانا سنوات.
و ليتتس متتن الفتتتض ان نستتتغرب ذلتتك .فعلمتتاء الجتمتتاع اكتشتتفوا منتتذ ستتنوات عديتتدة ان متوستتط وجهتتات النظتتر
لجموعة من الخباء )او نفس العتتدد لغي ت الختتباء( يعطتتي نتيجتتة موثوقتتة متتن وجهتتة نظتتر شتتخص واحتتد تتتم اختيتتاره
بشكل عشوائي من اي متتن الجوعتتتي .هتتذا يستتمي مبتتدأ دلفتتي .Delphi effectويبتتدوا ان لينتتوس قتتد اثبتتت ان هتتذا
ممكن حت على تنقيح نظام تشغيل ..و احدة من اهتتم خصتتائص لنكتتس و التتت قتتد تكتتون ستتاعدت علتتى تحقيتتق مبتتدأ
دلفي هو ان اختيتتار الستتتخدمي لي جزئيتتة او فتترع متتن نتتواة لنكتتس هتتو اختيتتار ذاتتتي .و قتتد صتتح شتتخص متتا فتتي
الاض على هذا بحيث علق قائل” )ان الساهمات و الشاركات ل تأتي من مجموعة من الستخدمي تم اختياهم بشكل
عشوائي بل من مجموعة من الستخدمي لهم اهتمام باستخدام نفتتس النظتتام ,بحيتتث يتعلمتتون كيتتف يعمتتل ,و يحتتاولون
ان يجدوا حل لي علة يواجهونها ,و في الواقع ينتجتتون حلتتول جيتتدة( غالبتا َ كتتل متتن يعتتب هتتذه الرشتتحات يكتتون لتتديه
ش جيد ليساهم به .ويمكن اعتتادة صتتياغة قتتانون لينتتوس اللتتذي يقتتول ان “التنقيتتح عمليتتة تتتتم بتتالتوازي” علمتتا بتتان
النقحون يحتاجون مطور للتواصل والتنسيق معه ,و لكن النقحون ليحتاجون الى لتنستتيق بستتيط فيمتتا بينهتتم .و هتتذا
يقلتتل متتن العراقيتتل للتنستتيق مثلمتتا يحتتدث متتع الطتتورين ..وعنتتد التجربتتة ,التصتتور النظتتري لفقتتدان الجتتودة نظتترا
للزدواجية في العمل من قبتتل النقحيت لتكتتون مشتتكلة او قضتتية فتتي عتتالم لنكتتس ,ولكتتن قتتد يكتتون ناتتتج عتتن سياستتة
“صدرمبكرا و صدر بالتوالي” والت بدورها تساعد على تقليص الخطاء بشكل متتابع..
بروكس Brooksمؤلتتف كتتتاب ) (The Mythical Man-Monthستتجل مشتتاهدة لهتتا علقتتة بهتتذا “جملتتة تكلفتتة
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
صيانة برنامج تقدر بت %40او اكتتث متتن تكلفتتة تطتتوير برنامتتج .للعلتتم هتتذة التكلفتتة مربوطتتة بشتتكل مباشت متتع عتتدد
الستخدمي “كلما زاد عدد الستخدمي زاد اكتشاف العلل ”More users find more bugsو هذا بكل بساطة
يرجع الى ان كل شخص يستخدم البنامتتج بطريقتتة مختلفتتة نستتبيا عتتن غيتته ,ويقتتوم بتحديتتد العلتتل بطريقتتة تختلتتف
ايضا عن غيه و تختلف الدوات من مستخدم لخر .و هذا البدأ يعظم عندما يكتتون الستتتخدم شتتيك فتتي التطتتوير ,و
يبدو ان مبدأ دلفي “ ”Delphi effectيعمل هنا بكفائة عالية بسبب هذا الختلف و بشتتكل ادق فيمتتا يختتص آليتتة
التنقيح ..ولذلك الختلفات بيت الستتتخدمي تنقتتص متتن الزدواجيتتة فتتي العمتتل .اذا اضتتافة مستتتخدمي لكتتي يختتتبوا
الصدارات الولية قد ل يزيل التعقيدات خصوصتتا لتحديتتد العلتتل العميقتتة “متتن وجهتتة نظتتر الطتتور” ولكتتن هتتذا يزيتتد
الحتمالت ان احدى النقحي ستتوف يستتتخدم الدوات التتت تتتبي ان هتتذة العلتتة ضتتحلة .وفتتي حالتتة وجتتود علتتل مهمتتة,
”stableلثبتتوته او اصدارات نواة لنكس تكون مرقمة بطريقة تساعد الستخدمي على اختيار امتتا الصتتدار الستتابق “
الصدار الحديث مع العلم انه يحتوي على بعض العلل .,,هذا النهج لم توضتتع لتته آليتتة متتن قبتتل مطتتورين لنكتتس ,متتن
الفتض ان يكون له آلية متبعة ,ولكن الطريقتي متاحتي لتفيان باحتياجات الستخدم الختلفة.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
” Brook's Law الشكلة الزلية هي ان النشآت الت تستخدم البيئة التقليدية لتطوير البامج يكررون قانون بروك
اللذي ينص على ان اضافة مبمجي التتى مشتتوع متتا فتتي وقتتت متتتأخر يزيتتد متتن متتدة التطتتوير و بشتتكل اكتتث عموميتتة
قانون بروك Brook's Lawيتنبأ بأن تكلفة التعقيدات و التواصل لشوع متتا ترتفتتع بمقتتدار مربتتع عتتدد الطتتورين,
بينما يزيد مقدار العمل النجز بشكل خطي فقط و قانون بروك Brooks's Lawمبن على الختتبة .ان العلتتل عتتادة
تنشأ بي نقاط التلقي بي شفرات كتبت من اشخاص مختلفي ,و تكلفة التواصل و التنسيق لشتتوع تزيتتد متتع زيتتادة
عدد الفراد .لهذا تتأثر الشاكل بعدد طتترق التواصتتل بيت الطتتورين ,لنهتتا تتتوزن بمريتتع عتتدد الطتتورين )بشتتكل دقيتتق :
تبعا للمعادلة N*(N - 1)/2بحيث Nهي عدد الطورين(
ونستعرض هنا )تحليل قانون بروك ( Brooks's Lawالنتيجة الرعبتتة متتن وجتتود عتتدد كتتبي متتن الطتتورين يعتمتتد
علتتى الستتتنتاج الخفتتي :ان هيكلتتة التواصتتل للمشتتوع لبتتد ان تكتتون صتتورة كاملتتة ,و هتتي التواصتتل بيتت الفتتراد
والجماعات بحيث كل شخص يتحدث للجميع او الجميع يتحدث للجميع .و لكن فتتي مشتتاريع الصتتادر الحتترة ,مجموعتتة
الطورين يعملون على مستويات متوازية و مختلفة و نتتادرا متتا يتفتتاعلون متتع بعضتتهم البعتتض ,و التغيتتات التتت تطتترأ
على الشفرة و تقارير العلل تتدفق من خلل الفريق او الشخص الؤسس والتتذي عتتادة متتا يشتتكل مجموعتتة صتتغيه متتن
الناس ,بحيث يكون قانون بروك Brooks's Lawفعال على هذة الجموعة الصتتغيه ستتواء كتتان”فريتتق التاستتيس”
او الؤسس.
يوجد هناك اسباب اخري تفس لاذا تكون تقارير العلل و الت على مستتتوي الشتتفرة الصتتدرية فعالتتة جتتدا؟ ذلتتك لنهتتا
تتمحور حول حقيقة أن وجود خطأ واحد في كثي من الحيان يكون له عدة أعتتراض تظهتتر بشتتكل مختلتتف حستتب بيئة
و استخدام الستخدم ..مثل هذه العلل “العقدة و الاكرة ” و الت يصتتعب اصتتطيادها و اكتشتتافها بتتالطرق التقليديتتة,
والتتت بتتدورها تلعتتب دورا مهمتتا فتتي توليتتد علتتل اختترى مستتتقبلية .الختتتب التتذي يرستتل تقريتتر عتتن علتتة محتتددة علتتى
مستوى الشفرة الصدرية و الت تحتوي على ظواهر عدة )مثل :يبدو لي ان هناك نافتتذة فتتي معالجتتة الشتتارة بتتالقرب
من سطر (1250يمكن ان تعطي الطور فكرة اوضح ,على عكس لو كان هناك عش تقتتارير عتتن علتتل نتجتتت متتن نفتتس
هذه العلة .و في مواقف مثل هذا قد يكون صعبا او حت مستحيل ان نعرف اي من الظواهر نتج عن علتتة بحتتد ذاتهتتا-.
و لكتتن متتع الصتتدارات التكتتررة ل يهتتم ان نعتترف .و هنتتاك متعتتاونون اختترون علتتى الشتتع ستتوف يكتشتتفون اذا حلتتت
الشكلة ام ل .وفلتتي اغلتتب الحيتتان التقتتارير علتتى مستتتوي الشتتفرة الصتتدرة ستتوف تستتقط هتتذه العلتتة . .العلتتل العقتتدة
تحتوي على عدد من الظواهر و غالبا يكون لها اكث من طريقتتة للتعقتتب متتن الشتتكلة الظتتاهرة التتى العلتتة نفستتها .و أي
مطور يتم اختياره لتعقب العلة يعتمد على البيئة التتت يعمتتل بهتتا ,و قتتد تتغيت متتع التتوقت بشتتكل غيت ملحتتوظ ,و فتتي
القابل كتتل مطتتور و مختتتب يعتتاينون مجموعتتة عشتتوائية متتن البنامتتج للبحتتث عتتن مستتببات العلتته .وكلمتتا كتتانت العلتتة
معقتتدة كلمتتا قتتل ضتتمان الختتبات لكتشتتاف العلتتة متتن العينتتة النتقتتاة .و لكتتي نصتتدر تقتتارير العلتتل بستتهولة ,لبتتد متتن
العتماد على “الجزئية” بدل من “العشوائية” مع العلم ان خبات استنتاج العلل و العلقة مع الشفرة الصدرية لهتتا
اهمية كبية جدا .و لكن العلل العقدة تكتشف باستخدام مبدأ البحث “العشتتوائي” و تحتتت هتتذه الظتتروف يتتزداد عتتدد
الناس الذين يعاينون البنامج وبالتتتالي ستتوف يكتتون اكتتث فتتائدة متتن ان يقتتوم عتتدد قليتتل متتن النتتاس بالعاينتتة بشتتكل
“جزئي” حت لو كانت مهارات القلية اعلى .و هذا التاثي يصبح اكب خصوصا عند وجود صعوبة في تتبع السار
لستتتويات مختلفتتة وقتتد يكتتون بستتبب عتتوارض متعتتددة وربطهتتا بعلتتة معينتتة متتع العلتتم انتته متتن الصتتعوبة النظتتر التتى
العارضة و استنتاج العلتتة .و الطتتور يعتتي ان هتتذه الستتارات غالبتتا ستتوف تأختتذ الستتار الكتتث صتتعوبة لتعقتتب العلتتة
خصوصا في اول محاولة .و في القابل لنفتتتض ان عتتدد متتن النتتاس يحتتاولون تعقتتب مستتارات مختلفتتة لعلتتة متتا و فتتي
نفس الوقت الطور يصدر باستمرار .اذا َ هناك احتمتتال كتتبي ان احتتد الختتتبين ستتوف يجتتد استتهل مستتار لحتتل العلتتة و
يتم اصلحها بأقص و قت ممكن .و متتدير الشتتوع هتتو الستتؤول عتتن ذلتتك بحيتتث يختتبهم بتتأن الشتتكلة حلتتت لكتتي ل
يهدر وقتهم ,ثم يقوم بعملية الرقع و يصدر النسخة العدلة.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
)باختيار مشوع اقل تعقيدا مما كان يعمل عليه لينوس( فأول شتتء قمتتت بعملتته هتتو تنستتيق و تبستتيطpopclient
كثيا .على الرغم من ان التطبيق الذي و ضعه Carl Harris'sكان جيد جدا ,و لكن كان به نوع متتن التعقيتتد ,وهتتذا
شء اعتيادي خصوصا بي مبمجي لغة الس Cفقد تعامل carlمتتع الشتتفرة الصتتدرية علتتى استتاس انهتتا هتتي قلتتب
النظام و جعل تنسيق وتركيب العلومتتات داعتتم للشتتفرة .ممتتا نتتتج عنتته ان الشتتفرة الصتتدرية نستتقت بعنايتتة شتتديدة و
لكن تنسيق وتركيب العلومات كان اعتباطيا وغي منسق )على القل من وجهتتة نظتتري( .فقتتد كتتان لتتدي مغتتزى اختتر متتن
اعادة كتابة الشفرة و تنسيق وتركيتتب العلومتتات ,ال وهتتو ان اقتتوم بفهتتم و استتتيعاب صتتياغة الشتتفرة وعمتتل البنامتتج
ككل ,لنه ليس من النطق ان اقوم باصلح علل في برنامج ل افهمه جيدا
ففي الشهر الول او نحوه كنت ببساطة اتبع تنسيق و تصميم Carl'sالبسيط.وكتتان اول تغي ت اساست قمتتت بتته هتتو
اضافة دعم .IMAPوقمت بعمل هذا عتتن طريتتق اعتتادة تنستتيق التتبتوكولت فتتي ستتواقة عامتتة و ثلث جتتداول منهجيتتة
)لي POP2,POP3و ( IAMPواكون في هذا التغيي و التغيي السابق عللتتت مبتتدأ عتتام جيتتد للمتتبمجي خصوصتتا
عند استخدام لغة البمجة Cلتقم بت (don't naturally do dynamic typing
-9ان تنسيق و تركيب العلومات بشكل ذكي في شفرة مصدرية ضعيفة ينتج عنه عمل جيد و العكس غي صحيح.
متتن كتتتاب Brooksالفصتتل 9ارنتتي الرستتم البيتتاني و الغتتي جتتداولك و انتتا ستتوف استتتمر فتتي حالتتة الحيتتة ,او ارنتتي
جداولك و انا عادة لن احتاج الى رسمك البياني ,ذلك بدهيا” ,السماح بعد ثلثي ستتنة متتن تغيت الصتتطلحات الفنيتتة
و الثقافية هذا يؤدي الى نفس الش.
الي هنا )اوائل سبتمب ,1996بعد حوالي ست اسابيع من نقطة النطلق( بدات افكر انة لبد من تغي استتم البنامتتج,
فمن الواضح ان البنامج الن ليس عميتتل POPفقتتط ,و لكنت تتترددت لستتبب انتتة ليوجتتد تعتتديل جتتذري و جديتتد فتتي
التصميم .نسخت من popclientكان لبد ان تنمي شخصية خاصة بها.
الذي تغي جذريا عندما تطور popclientلتمرير البيد الجلوب الى منفذ ) SMTPسوف اتكلتتم عتتن هتتذا لحقتتا( و
لكن اول :انا قلت سابقا انن قررت ان استخدم هذا الشوع لختبار نظريتتت عتتن العمتتل التتذي قتتام بتته لينتتوس .يمكنتتك
ان تسأل كيف فعلت هذا؟ باستخدام هذه الطرق:
-الصدار في وقت مبكر ،و الصدار التكرر )تقريبا في كثي من الحيان أقل من عشتتة أيتتام ،خلل فتتتات التطتتوير
الكثفة ،مرة واحدة في اليوم( - .تنمية قائمة النشأت البدئية ) (Betaعن طريق إضافة كل متتن اتصتتل بتتي بخصتتوص
- .fetchmailأرستتلت إعلنتتات إلتتى القائمتتة البدئيتتة ) (Betaكلمتتا تتتم تحستتي متتا ،وقمتتت بتشتتجيع النتتاس علتتى
الشاركة- .و استتتمعت إلتتى قاعتتدة الستتتخدمي ،و القتتتاع بينهتتم بخصتتوص قتترارات التصتتميم ومكتتافئتهم معنويتتا كلمتتا
أرسل احدهم رقعة او ردود.
الفائدة من هذا العمل البسيط نتجت عنه فائدة فورا .فمنذ بداية الشوع وصلن تبليغ عتتن علتتل علتتى درجتتة عاليتتة متتن
الحرفيتتة متتع حلتتول مرفقتتة .ووصتتلتن انتقتتادات بنتتائه ,وايضتتا وصتتلن بريتتد متتن العجتتبي ,و اقتاحتتات ممتتتازة عتتن
اضافة خصائص ما مما ادى الى:
.10اذا عاملك مستخدميك عل اساس انهم اهم مورد لديك ,سوف يستجيبون ليصبحوا فعل اهم مورد لديك
احدى المور الثية للنتباه في قياس العمال لنجاح fetchmail'sهو الحجم الكبي لقائمة الشتكي في الصدار
الولي ) (beta listاصدقاء fetchmail'sفي ذالك الوقت )و قتتت مراجعتتة هتتذه الوثيقتتة نوفمتتب (2000كتتان عتتدد
الشتكي في القائمة 287عضوا ,و كنا نضيف اثني او ثلثة كل اسبوع .في الواقع عندما راجعت قائمتتة العضتتاء فتتي
متتايو 1997و جتتدت ان القائمتتة بتتدت تفقتتد اعضتتاء كتتث)كتتان هنتتا 300عضتتوا علتتى القائمتتة( كتتثي متتن الشتتتكي قتتد
راسلوني لكي ازيتتل استتمائهم متتن القائمتتة بستتبب ان fetchmailكتتان يعمتتل بشتتكل ممتتتاز بالنستتبة لهتتم و لتتم يرغبتتوا
بالستتتمرار بالبقتتاء علتتى القائمتتة ,ربمتتا كتتان هتتذا النمتتو الطتتبيعي لتتدورة الحيتتاة للمشتتوع فتتي نظتتام الستتوق )بتتزار(
الناضج.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
الجوبة الصحيحة ؟؟ بل هل سألت السئلة الصحيحة؟ اذن لبد متتن اعتتادة تعريتتف الشتتكلة لكتتي تستتتوعب .حستتنا لقتتد
اعتتدنا صتتياغة الشتتكلة ,و كتتان متتن البتتديهي ان اقتتوم بالتتتالي ) (1خاصتتية العبتتور فتتي SMTPلتكتتون متواجتتدة فتتي
برنتتامجي ) (2اجعلهتتا الخاصتتية الفتاضتتية ) (3متتع التتوقت اتخلتتص متتن جميتتع استتاليب التنظيتتم الختترى ,خصوصتتا
deliver-to-fileو ..deliver-to-standard-output
لقد ترددت عند الخطوة الثالثتتة لبعتتض التتوقت خوفتتا متتن ان استتء لبعتتض الستتتخدمي القتتدماء التتذين يحتتتاجون آليتتات
forwardو sendmailللحصتتول علتتى اخرى لعبور البيتتد .نظريتتا كتتان بامكتتانهم ان يقومتتون بتحويتتل ملفتتات التت .
نفس النتيجة.و بالتطبيق قد تكون العمليتتة النتقاليتتة مربكتتة .و لكتتن عنتتدما طبقتتت تلتتك النتتتائج اثبتتتت فتتوائد ضتتخمة
فالشفرة الضعيفة في الستتواقة اختفتتت و العتتدادات اصتتبحت استتهل جتتذريا ,و اختفتتت الحلتتول اللتوائيتتة لنظتتامMDA
وايضتتا اختفتتت صتتناديق الستتتخدمي اذن لمزيتتد متتن الختتاوف متتن ان نظتتام التشتتغيل الحاضتتن ستتوف يغلتتق اللفتتات.
ايضا,اختفت الطريقة التقليدية لضياع البيد بحيث في السابق اذا امتلء القرص الصلب و انت حددت مستتبقا انتته هتتذا
هو القرص الذي سوف تقوم بارسال رسائل البيد عليتته عنتتدها ستتوف تختفتتي الرستتائل.و هتتذا ل يحتتدث عنتتد استتتخدام
عبور SMTPلن مستقبل الرسائل لديك لن يعطي رسالة موافقة OKال اذا كان ارسال الرستتالة ممكتتن ,او علتتى القتتل
تخزن في الجلد الؤقت spooleلكي يتم ارسالها فتتي وقتتت لحتتق ..لتحستتن اداء البنامتتج )ليتتس لدرجتتة انتتك تلحتتظ
ذلك من اول استخدام( .فائدة اخرى ليست ذات اهمية قصوى من التغي هي ان صتتفحات التتدليل اصتتبحت اقتتل…لحقتتا
اضطررت ان اعيد معب البيد عب عنوان MDAمحلي مسبق التحديد من الستتتخدم لكتتي استتمح بتتتولي بعتتض الهتتام
التعلقتتة بت ت .dynamic SLIPو لكتتن وجتتدت طريقتتة اكتتث ستتهولة لعمتتل هتتذا ..العتتبة هنتتا ,قتتالAntoine de
Saint-Exuoryل تتدد في رمي خصائص ما اذا كنت تستطيع عمل ذلك بدون فقدان التأثي) .و الذي كتتان ملحتتا
و مصمم طائرات كان يؤلف كتب اطفال في وقت فراغة(
“ -13التقان في التصميم ل يحدث عندما ليوجد شء تضيفه ,بل عندما ل يوجد شء تزيله”
عندما تصبح شفرتك الصدرية ابستتط و افضتتل عنتتدها تعتترف انهتتا صتتحيحة .و فتتي اثنتتاء ذلتتك يتطلتتبfetchmail
تصميم يعكس هوية خاصة به وطبعتتا مختلفتتة عتتن ..popclientواخيتتا حتتان موعتتد تغيت الستتم ,التصتتميم بتتدى و
كأنه sendmailثنائي من ان يبدو كسابقه .popclientفالثنان كانا ,MTAو لكن sendmailيتتدفع الرستتائل
ثم يرسلها , ,ولكن نسخة popclientالحسنة كانت تسحب البيد ثم ترسله ,لذلك بعتتد شتتهرين فقتتط اعتتدت تستتميتة
بتت ..fetchmail
هناك درس عام يمكن ان نتعلمه من هذة القصة عن كيفية و صول آلية ارسال SMTPالى .fetchmailليتتس فقتتط
بالتنقيتتح اللتتذي يحتتدث بشتتكل ازدواجتتي .و لكتتن بتتالتطوير و التصتتميم ايضتتا .و عنتتدما تكتتون عمليتتة التطتتوير متكتتررة
باستمرار يصبح للتطوير و التحسي حالت خاصة من التنقيح و الصتتلح بحيتتث يظهتتر علتتل ناتجتتة عتتن إغفتتال فتتي
الخصائص الساسية في البنامج ..حت في التصاميم عالية الستوى ,من الفيد جدا ان يكون هناك الكتتثي متتن شتتكاء
التطوير يعاينون البيئة الحيطتتة ببنامجتتك .و الكتشتتاف يتتتم اساستتا عتتن طريتتق النتشتتار ,يليتته اكتشتتاف باستتتخدام
وسيط تواصل فعال على عدة مستويات .وهتتذا يعمتتل بشتتكل جيتتد ,كمتتا عمتتل معتتي و متتع, Harry Hochheiserو
يمكن لي شخص ما يأتي بعدك ان يجد هذا النجاح الكتتبي حيتتث كنتتت ,حيتتث لتتم تكتتن تستتتطيع ان تتترى هتتذا النجتتاح
لنك كنت تركز كثيا في جزئية ما.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
الستخدم البامج الخرى فحسب بل ينساها تماما .اعتقد انك لتستطيع ان تخطط لهذا الش ,بل يجتتب ان تنجتتذب لتته
من واقع تصميم محكم وجبار بحيث تصبح النتيجتتة محتومتتة )لمفتتر منهتتا( بتتل و مقتتدرة .و الطريقتتة الوحيتتدة لحاولتتة
شء كهذا هو ان يكون لديك الكثي من الفكار ,و الفراستتة الهندستتية لكتتي تاختتذ هتتذه الفكتترة ابعتتد ممتتا كتتان الستتتخدم
ينوي.
كتتان Andy Tanenbaumيحمتتل الفكتترة الصتتلية لبنتتاء حاستتب بستتيط يعمتتل علتتى يتتونكس Unixللحواستتيب
الشخصية لت ,IBMللستخدام كادوات للتعليم )اسماها مينكس ..(Minixفقام.ليونس ترافلدس Linus Torvalds
بدعم تصميم مينكس Minixاكث مما كان Andy Tanenbaumيتوقع او ينوي ,و فعل نمتتا ليصتتبح شتتءرائع.
على نفس السار اخذت بعض الفكار من Carl Harrisو Harry Hochheiserو دفعت هذه الفكار ابعد ممتتا
نتتوى الثني ت و اتبعتتت متتذهب الختتتاق للتحستتي hacker mythologyو لتتم يكتتن اي منتتا متتن يعمتتل بالطريقتتة
العاطفيه الت ينظر بها النتتاس التتى العبقريتتة و لتتذلك معظتتم العمتتاء والهندستتي و الطتتورين اعمتتالهم لتتم تكتتن اوليتته ..
كانت النتائج عنيدة بعض الش في الواقع ,ولكن نتج عنتته النجتتاح التتذي يطمتتح اي مطتتور او مختتتق بالوصتتول اليتته.
و هذا يعن انه لبد من وضع معايي اعلى للوصول بتت fetchmailالى مستوى الجتتودة التتذي اصتتبحت استتتوعبه ,و
لبد من تطوير البنامج ليس فقط لحتياجاتي بل ايضا لحتياجات الستخدمي خارج متتداري ,متتع البقتتاء علتتى بستتاطة
multidropالقتتدرة علتتى جلتتب الواجه وسهولة الستخدام .أول وأهم مية ساحقة كتبت بعد تحقيق هذا التتدعم كتتانت
البيد من الصناديق الت تحتوي على تراكمتتات البيتتد كلتته لجموعتتة متتن الستتتخدمي ،ومتتن ثتتم تتتوجيه كتتل قطعتتة متتن
البيد إلى الستلمي مباشة.
قررت اضافة دعم multidropوذلك لن الستخدمي كانوا يطالبون به ولسبب اخر ايضا وذلك اننت كنتتت ميقتتن متتن
ان هذا سوف يظهر علل مختفية حت الن .و هذا ماحدث معي فعل .فحصتتولي علتتى عنتتوان حتتق العتترابRFC 822
اخذ من وقت طويل جدا ,ليس لنن بطيء و لكن لوجود تفاصيل كثية متابطه مع بعضها البعض..
و لكن ثبت اخيا ان اختيار عنونة multidropكان قرارا ممتازا ,واليكم التفاصيل :
.14اي اداة جيدة يجب ان تفيد الجال الذي تستخدم به ,ولكن الداة المتازة هي الت يمكن الستفادة منهتتا فتتي اشتتياء
كثيه ل تخطر علي البال.
الستخدام الغي متوقع لتت multidropفي fetchmailهو لتفعيل قوائم البيد بينما ل تتتزال القائمتتة موجتتودة ,و
تفعيل السماء العرفة للبيد aliasعلى جهاز العميل باستخدام شبكات النتنت.و هتتذا يعن ت ان الستتتخدم يستتتطيع
من خلل جهازه الشخص ان يتتدير قتتوائم البيتتد بتتدون اتصتتال مستتتمر متتع ملفتتات الستتماء العرفتتة للبيتتد aliasعتتن
طريق حساب من موفر خدمة النتنت ..وهناك تغييت اختتر مهتتم تتتم بواستتطة الختتتبين للنستتخة الوليتتة فهتتم يتتوفرون
الدعم لعمليات . (bit MIME Multipurpose Internet Mail Extensions-8كان هتتذا امتترا ستتهل ,لنتتي
كنت حذر في اضافة دعم منسق لتت bit-8في الشفرة )هذا لكي ل نستخدم البت الثتتامن ,8th bitو التتذي ليستتتخدم
في حروف السكي .ASCIIلنقل العلومات داخل البنامج( ليس لني توقعت ان الطلتتب عتتالي علتتى هتتذه الخاصتتية .و
لكن لكي استجيب لطلب اخر.
-15عند تصيمم برنامج يعمل كبوابة gatewayلبد متتن تحمتتل مشتتاق توزيتتع العلومتتات باقتتل طريقتتة ممكنتتة ,وعتتدم
التخلص من اي معلومات اطلقا ,ال اذا اجبك الستقبل على ذلك.
لم انصاع لهذا التطبيق من قبل ,الدعم لتت bit MIME-8كان شاقا و مليء بالعيوب ,و كل ما فعلته هو قتترائة معتتايي
) (RFC 1652و اضافة تعليل بديهي في القدمة header-generation logicبعض الستتتخدمي فتتي اوروبتتا
طلبتتوا من ت اضتتافة خاصتتية الحتتد متتن عتتدد الرستتائل الستتتقبلة فتتي كتتل جلستتة )لكتتي يتحكمتتون فتتي التكتتاليف الباهظتتة
لستخدامهم النتنت( لقد قاومت هذا لفتتتة ,و ل ازال غيت راضت عتتن هتتذه الضتتافة .ولكنتتك تقتتوم بالتصتتميم للعتتالم,
فلبد من ان تستمع الى عملئك ,و هذا ليتغي لنهم ليدفعون لك الال.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
-17النظام المن يظل آمنا الى ان ينكشف سه ,فاحذر من السار الزائفه.
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
ان اي شخص قد يفكر في اطلق مشوع في بيئة السوق )البازار( لبد ان يكتتون لتتديه الحتتد الدنتتى .فمحركتتات مجتمتتع
الصادر الحرة تمارس الضغط الرقيتتق لعتتدم البتتدأ بتطتتوير جزأيتتة هتتم غيت متمكنيت منهتتا .و هتتذا العمتتل حقتتق نجاحتتا
بتتاهرا حتتت الن .كمتتا ان هنتتاك نتتوع اختتر متتن الهتتارة غيت مرتبتتط بتطتتوير البمجيتتات و اللتتذي اعتقتتد انتته اهتتم لتتبيئة
السوق )البازار( وهيا لبد ان يتحلى اي مدير مشتتوع داختتل بيئة الستتوق )البتتازار( بميتتة ) مهتتارات التصتتال و حستتن
التعامل مع الناس (.
فكان من الهم استقطاب الناس من اجل بناء مجتمتتع تطتتويري ,وترغيبهتتم فيمتتا تريتتد ان تعمتتل .و ا ابقتتائهم ستتعداء عتتن
حجتتم العمتتل اللتتذي يقومتتون بتته .فالديتتح )لتقتتديم الرض ت عتتن النفتتس( يختتدم كتتثيا هنتتا ,و لكتتن هتتذا ليتتس كتتل شتت,
فالشخصية ايضا لها تأثي كبي.
انها ليست مصادفة ان لينوس هو رجل لطيف و عنده القدرة علتتى ان يجعتتل النتتاس يحبتتونه و يرغبتتون فتتي مستتاعدته,
كما انها ليست مصادفة ان اكتتون انتتا رجتتل بستتيط ,ممتليتتء بالحيويتتة و استتتمتع بالعمتتل الجمتتاعي و لتتدي القتتدرة علتتى
التقديم و الحدس الهزلي ) (stand-up comicلذلك عندما تكون لطيفا وتملك خاصية جذب الناس فانه يساعدك
كثيا في بيئة السوق )البازار( .
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
Brooksيكتتون في نمط السوق )البازار( عن طريق تسخي جملة من البمجي الغيت مغروريتتن ,والبتتدأ خلتتف قتتانون
متناقض ,فبوجود مجتمع تطوير كبي و بالضافة التتى وستتيلة اتصتتال رخيصتتة يمكتتن ان نغمتتر الشتتوع بتنتتافس غيت
متعارض ,و الت ليمكن توفرها بتتأي طريقتتة اختترى و هتتذا يشتتبه العلقتتة بيت الفييتتاء النيوتينيتتة )استتحاق نيتتوتن( و
الفيياء الينشتانية )الفرد اينشتتتاين( فالنظتتام القتتديم ليتتزال فعتتال فتتي ظتتل وجتتود طاقتتة متدنيتتة ,و لكتتن عنتتدما تزيتتد
الكتلة و السعة الى مستوى عالي نحصل على مفاجئة مثل لنكس.
من الفتض ان يكون تاريخ لينكس قد اعدنا لتتا ستتوف نتعلمتته اليتتوم متتن لينكتتس )و متتا قمتتت باثبتتاته بالتجتتارب علتتى
منسوب صغي ,و الذي تعمدت فيه ان اتبتتع نهتتج لينتتوس( هتتذا يعنت بينمتتا يظتتل استتلوب كتابتتة الشتتفرة عمتتل انعزالتتي
)فردي( ياتي التطوير العظيم من تسخي الطاقة العقلية لجتمع كامل .و الطور الذي يعتمد علتتى قتتدراته العقليتتة فقتتط
و يطور مشوع في بيئة مغلقتتة بكتتل تأكيتتد ستتوف يتخلتتف عتتن الركتتب ,و فتتي القابتتل الطتتور التتذي يعتترف كيتتف يكتتون
مشوع حر و ثوري في الحتوى بحيث ردود الفعتتل تتتأتي بشتتكل استكشتتاف لتصتتميم او تتتبع بشتتفرة و تحديتتد العلتتل,
و ايضا تحسينات اخرى تأتي من مآت )بل اللف احيانا( من الساهمي.
مع العلم ان عالم يونكس unixمنع من الستفادة القصوى من هذة المارسة بستتبب تعقيتتدات قانونيتتة فتتي التتتاخيص
و بسبب اسار ومصالح تجارية ايضا بالضافه الى ذلك ان النتنت لم تكن فعالة في وقتها .
و قبتتتل و جتتتود النتتتتنت الرخيتتتص كتتتان هنالتتتك استتتااليب تواصتتتل مربوطتتتة بالنطقتتتة الجغرافيتتتة ,و التتتت كمتتتا قتتتال
Weinberg'sادت الى نمو تقاليد التتبمجي و الطتتورين بحيتتث حثتتت كتتثي متتن التتؤهلي ستتواء مستتاهمي كتتانوا أم
شكاء الى التطوير .و كما نرى اليوم ان Bell Labs, MIT AI , LCS labs, UC Berkeleyاصبحت اساسا
للبتكار و التطوير حت يومنا هذا.
فلينكس كان اول مشوع يستتتفيد وبشتتكل واعتتي متتن الجهتتود و التتواهب علتتى مستتتوى العتتالم .و ل اعتقتتد انتته كتتان متتن
محض الصدفة ارتباط مراحل مخاض لينكس مع ظهور الشبكة العنكبوتيتتة العاليتتة ) (World Wide Webو فتتي
نفس الوقت نمى لينكس من مرحلتتة الطفولتتة فتتي 1994–1993و التتت شتتهدت تنتتامي واضتتح فتتي صتتناعة متتوفري خدمتتة
النتنت ISPو انفجار الطلب على النتنت من الجمهور .و كان لينوس هو اول من تعلم كيفيتتة التعامتتل متتع التنظيتتم
الجديد و الذي اصبح ممكنا بتوفر خدمة النتنت بشكل اوسع.
ومن العوامل الساسية الت ادت الى تطور نظام العمل اللتتذي قتتام عليتته لنكتتس تتتوفر النتتتنت بشتتكل رخيتتص ولكتتن ل
اعتقد انه وحده كان كافيا ,ولكن كان هناك عامل اخر ساعد على ذلك علتتى نفتتس القتتدر متتن الهميتتة ال و هتتو تطتتوير
اسلوب الدارة و مجموعة من العادات و اساليب التعاون و التتت بتتدورها ستتاعدت الطتتورين علتتى استتتقطاب شتتكاء فتتي
التطوير لتوزيع العمل و الستفادة من الجهتتود و لكتتن متتاهو استتلوب الدارة هتتذا؟ و متتا هتتي العتتادات و الستتاليب التتت
يجب اتباعها؟ فمن غي المكن ان تكون الدارة مبنية على علقة اساسها السلطة ,و حت لو كان هذا صتتحيحا فالقيتتادة
الت تبن على التعسف ل تستمر.
الكاتب Weinbergينقل لنا عن السية الذاتية للثوري الروس Pyotr Alexeyvich Kropotkin'sفي القتترن
التاسع عش Memoirs of a Revolutionistمما ينعكس علي موضوعنا: .
بحكم انن نشأت في في اسة تدير اعمالها بنفستتها ,انتتدمجت مبكتترا فتتي الحيتتاة العمليتتة مثتتل جميتتع الشتتباب فتتي ذلتتك
الوقت فقد كانت ثقت بنفس كبية جدا و كانت لدي القدرة على التنظيم و كبح جماح رغباتي و ما التتى ذلتتك ,و لتتذلك
بدأت و بسن صتتغي فتتي ادارة العديتتد متتن الشتتاريع الكتتبية و بتتالطبع قمتتت بالتعامتتل متتع العمالتتة ” الحتترار” فعنتتد
حدوث اي خطأ قد يؤدي ذلك الى عواقب وخيمة عندها بدأت اقدر الفرق بي مبتتدأ القيتتادة القتتائم علتتى المتتر و العقتتاب
او مبدأ القيادة القائم على التفاهم .فالولى تعمل بشكل جيد في السلك العسكري و لكتتن فتتي الحيتتاة العمليتتة ل جتتدوى
منها لذلك ادركت ان الهداف ل تتحقق ال من خلل الجهد الكبي و الرادة.
.فالعبارة الت تقول “ل تتحقق الهداف ال من خلل الجهد الكبي و الرادة” هي بالتحديتتد متتا يحتتتاجه مشتتوع مثتتل
لينكس و “مبدأ القيادة” ل يمكن تطبيقه فتتي مجتمتتع فوضتتوي متتن التطتتوعي علتتى النتتتنت .و لكتتن لكتتي يتتتم ذلتتك
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
بشكل فعال لبد من ان يتعلم الطتتورين التتذين يرغبتتون فتتي قيتتادة مشتتوع تكتتافلي كيفيتتة استتتقطاب و تحفيت الجتمتتع
الفعال كما يقتح Kropotkin'sمبدأ القيادة القائم على التفتتاهم” .لتتذلك هتتؤلء الطتتورون لبتتد ان يتعلمتتوا قتتانون
لينوس
في السابق كنت افضل مؤثرات دلفتتي Delphi effectكتفستتي طتتبيعي لتتي قتتانون لينتتوس .و لكتتن هنتتاك تفستتيات
اشمل للتبن في علم الحياء و القتصاد قد تكون اكث ملئمتتة هنتتا .عتتالم لينكتتس يتصتتف فتتي اباعتتد كتتثية مثتتل بيئة
السوق الحر .مجموعة من العملء الناني في طور تعضيم الفتتائدة ومتتن خلل هتتذا النهتتج ينتتتج وبشتتكل فوجتتائي اليتتة
للتصحيح الذاتي ,هذة اللية فعالة بشكل كبي بحيث ليمكن الوصتتول التتي نفتتس الليتتة فتتي بيئة تطتتوير مركزيتتة .هنتتا
اذا هو الكان الي نصبو الي تحقيق “مبداء القيادة القائم علي التفاهم”
وظيفة الداة الت يعظمها مطوري لينكس ليستتت اقتصتتادية تقليديتتة ,و لكنهتتا احستتاس ملمتتوس نتتابع متتن النتتا الذاتيتتة
للشعور بالرض عن النفس و ايضا للحصول على مكانتتة مرموقتتة بيت الطتتورين الخريتتن ,فالثقافتتات التطوعيتتة و التتت
تعمل على هذا البدأ ليست مستغربة ,مثل انا قد اشتكت و منذ فتة طويلتتة فتتي مهرجانتتات و عتتروض الخيتتال العلمتتي
” ”fandomو الذي يختلف قليل عن “ ”hackerdomبحيث انتته فتتي ” ”fandomيجيتتو بشتتكل واضتتح ان
نتفاخر بالساهمات الت قمنا بها لرفع العنويات الشخصية و الشعور بالرض عن النفس.
و قد نجح لينوس بتعيي نفستته حتتارس البوابتتة لشتتوع التطتتوير التتذي يتتتم بواستتطة مطتتورين اخريتتن .و استتتطاع ان
يستقطب الهتمام بالشوع من قبيل مطورين اخرين الى ان يصتتل الشتتوع التتى مرحلتتة الثبتتات و العتمتتاد علتتى ذاتتته,
ومن هذا نستتتنبط التجستتيد لتتا ذكتتره الكتتاتب Kropotkin'sمبتتدأ القيتتادة القتتائم علتتى التفتتاهم” هتتذا النظتتور الشتتبه
اقتصادي لعالم لنكس يسمح لنا ان نفهم كيف تم تطيبق هذا التفاهم .و قد ننظتتر لبتتدأ لينتتوس علتتى استتاس انتته خلتتق
اسواق فعالة في بيئة الغرور و الرض عتتن النفتتس لتصتتل وبشتتكل وثيتتق بيت أنانيتتة الطتتور و النهايتتات الصتتعبة التتت
تحتاج للعمل التعاوني التكافلي .و في مشوع fetchmailاظهرت )ولو بشكل صغي( ان هتتذا البتتدأ يمكتتن تقليتتده و
بنتائج ممتازة و لعلن قمت بالعمل بشكل واعي و منهجي اكث من لينوس.
كثي من الناس )خصوصا اولئك الذين ل يثقون في الستتواق الحتترة( يتوقعتتون ان الثقافتتة الكونتتة متتن اصتتحاب الدارة
الذاتية انتتانييون متتن الستتهل تمزيقهتتم و متعصتتبي لمتلكتتاتهم و مبتتذرون و متحفظتتون و ايضتتا عتتدوانيون .و لكتتن هتتذه
الدعاءات غي صحيحة ,و لكي نثبت ذلك يكفي ان الجودة البهرة و العمق في توثيق لينكتتس دليتتل علتتى ذلتتك .و متتن
العروف ان الطورين يكرهون التوثيق ,اذ كيف يمكن لطورين لينكتتس ان ينتجتتون كتتل هتتذا الكتتم الهتتائل متتن التوثيتتق؟ و
بكل تأكيد سوق لينكس الحر في بيئة التحفي للرض عن النفس تعمل بكفاءة اعلى من النشئات التجاريتتة التتت يغتتدق
عليها الال لتوثيق البمجيات.
كل الشوعي fetchmailو مشوع تطوير نتتواة لنيكتتس Linux kernel projectsيظهتتران ان مكتتافئة غتترور
كثي من الطورين هي الطريقة الصحيحة ,فمدير الشوع اذا تحلى بمزيا القيتتادة و الختتبة فتتي التطتتوير يستتتطيع متتن
خلل النتنت ان يستحوذ على الكثي من شكاء التطوير مع الحفاظ على الشتتوع متتن الفشتتل او التذبتتذب .لتتذلك ردا
على قانون Brooksاقتتول 19 :لنفتتتض ان متتدير او منستتق الشتتوع لتتديه وستتيلة اتصتتالت فعالتتة مثتتل النتتتنت ,و
يعرف كيف يقود بدون تعسف ,اذا َ زيادة التطتتوعي يفتتي بتتالغرض بكتتل تأكيتتد ويكتتون افضتتل متتن متطتتوع واحتتد و فتتي
اعتقادي ان مستقبل البمجيات حرة الصتتدر هتتي فتتي يتتد اولئك التتذين يعرفتتون كيتتف يعملتتون علتتى قتتواني لينتتوس ,و
الذين يقيمون في بيئة الكتدرائية و يعتنقتتون مبتتدأ الستتوق “البتتازار” متتع العلتتم ان هتتذا ليعنت ان الجهتتودات الفرديتتة
لتعن شيئا بل على العكس تماما ,و متتن وجهتتة نظتتري ان معظتتم الثتتورات التغييتتة فتتي عتتالم التقنيتتة ستتوف تبتتدأ متتن
رؤيتتة الفتتراد وقتتدرتهم علتتى التغييتت و البتكتتار ,و متتن ثتتم يتتتم اثتتراء هتتذا التغيتت او البتكتتار بجهتتود الجتمعتتات
الستتاهمة . .ربمتتا هتتذا ليتتس فقتتط مصتتي البمجيتتات الحتترة الصتتدر .فل تستتتطيع أي بيئة تطويريتتة ان تجتتاري كميتتة
العطاء المنوح لتتبيئة حتترة الصتتدر )مثتتل بيئة لينكتتس( لحتتل مشتتكلة متتا .و قلتتة هتتم التتذين يستتتطيعون تحمتتل تكتتاليف
التطوير و تعي مطورين بشكل مستمر مثل ما حتتدث فتتي مشتتوع fetchmailبحيتتث ان برنامتتج fetchmailكتتان
يعمل علية 200مطور ) فتتي عتتام 1999م وصتتل العتتدد التتى 600مطتتور ,واصتتبح العتتدد فتتي عتتام 2000م 800مطتتور( و
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
البمجيات كتبت لتستتقط حتتق ضتتمان النتتتج ناهيتتك عتتن ضتتمان النتاجيتتة .و وقتتائع التعتتويض التتت تمتتت لبامتتج لتتم
تؤدي عملها كما هو نادرا جدا .حت لو كانت هذه الوقائع كثية لتتن تشتتعر بالرتيتتاح فقتتط لن هنتتاك شتتخص او جهتتة
تستطيع ان تشتكيها و هذا ل يحقق الهدف ,فانت ل تريد ان تكون طرفا في قضتتية قانونيتتة ولكتتن تريتتد ان يكتتون لتتديك
برنامج يعمل.
اذا مالذي تحصل عليه بدفع تكليف الدارة؟
لكي نفهم هذا لبد ان نفهم ماذا يعتقد مدراء تطوير البمجيات انهم يفعلتتون .امتترأة اعرفهتتا وهتتي جيتتدة فتتي هتتذا الجتتال
تقول ان مدراء تطوير البمجيات لديهم خمس مهام :
-تحديد الهداف و جعل الجميع يركز على هتتذة الهتتداف - .الراقبتتة و التتتدقيق للتأكتتد ان التفاصتتيل الهمتتة ل تهمتتل- .
تحفي الناس لعمل الهام الملتتة - .ترتيتتب و توزيتتع الهتتام بيت النتتاس لضتتمان اعلتتى انتاجيتتة - .تتتوفي التتوارد اللزمتتة
لدعم الشوع.
من الواضح ان هذه الهداف مهمة جدا ,و لكن تحت مظلة البمجيات الحرة و البيئة الجتماعية الحيطة بهتتا ,قتتد تبتتدو
هذه الهداف غي مهمة ,ولكن دعونا نعاين هذة الهداف بشكل عكس.
صديقت تقول ان تقديم الوارد هو تكتيك دفاعي ,فبعد ان تحصل علتتى النتتاس و الجهتتزة و الستتاحة الكتبيتتة ,لبتتد ان
تقوم بحمايتها من الدراء الخرين الذين ينافسونك على نفس التتوارد و متتن التتوظفي الجتتدد التتذين يحتتاولون الستتتفادة
من الوارد بأكب شكل ممكن
و لكتتن مطتتورين الصتتادر الحتترة هتتم فتتي الستتاس متطوعتتون ,يختتتارون انفستتهم لرغبتهتتم و قتتدراتهم للتتتبع للمشتتوع
الذي يعملون فيه )و هذا يظتتل صتتحيحا حتتت لتتو دفتتع لهتتم مقابتتل الختتتاق او تطتتوير البمجيتتات الحتترة( و لكتتن روح
التعاون تتكفل بازالة جانب حماية الوارد بشكل تلقائي .فالنتتاس يقومتتون باحضتتار متتواردهم معهتتم ممتتا يعنت ل حاجتتة
لدير لكي يحمي هذه الوارد بالعن التقليدي.
علي اية حال في عتتالم يحتتتوي علتتى اجهتتزة حاستتوب رخيصتتة و شتتبكة اتصتتال عاليتتة الستتعة ,نجتتد ان التتورد الصتتعب
الوحيد هو وجود اليد العاملة الاهرة الهتمتتة ,الشتتاريع حتترة الصتتدر ل تنتتدثر و تمتتوت بستتبب عتتدم و جتتود معتتدات او
مساحة مكتبية و لكن الطريقة الوحيدة لوت مثل هذه الشاريع هو ان يفقد الطورون الهتمام.
اذا كانت هذه هي الحالة ,فبل شك انه من الهمية ان يقوم مطوري البمجيتتات الحتترة بتنظيتتم انفستتهم للوصتتول لعلتتى
انتاجية عن طريق الختيار الشخص و الوسط الجتماعي يحدد مقدار الكفتتاءة بل رحمتتة .ولصتتديقت ختتبة فتتي عتتالم
تطوير البمجيات الحرة و البمجيات الغلقتتة و تتتؤمن ان بيئة تطتتوير البمجيتتات الحتترة تكتتون اكتتث كفتتاءة و ان احتتد
تكلون %متتن جملتتة
الستتباب لحتتدوث ذلتتك ان تقاليتتد البمجيتتات الحتترة ل تقبتتل ال التتبمجي الوهتتوبي و التتذين يشت 5
البمجي .و هي تقض معظم وقتها في ادارة و تنسيق اعمال البمجي القل كفاءة و الذين يشتتكلون %95متتن جملتتة
البمجي فلذلك هي تعتتي و بشتتكل مباشت الفتترق الكتتبي بيت التتبمجي البتتارعي و التتبمجي القتتل كفتتاءة .اذن هتتل
الشاريع الفردية و القطاع بشكل كامل يكتتون افضتتل باستتتخدام فقتتط %50متتن الطتتورين ذوي الكفتتاءة العاليتتة؟ فنستتب
العطاء هذه دائما ما تطرح هذا التساؤل .و الدراء الذكياء ادركوا في الاض انه لتتو انحصت عمتتل التتدير التقليتتدي فتتي
تحويل الطور الغي كفؤ من خسارة الى ربح بسيط جدا فعملهم هذا ل يستحق الجهود.
و نجاح مجتمع الصادر الحرة يستعرض ما ذكر بشكل واضح ,عتتن طريتتق تقتتديم ادلتتة ملموستتة لستتتقطاب متطتتوعي
عن طريق النتنت ارخص و اكث انتاجيتتة متتن ان تكتتون الدارة عبتتارة عتتن مبنت ممتليتتء بمتتوظفي يرغبتتون فتتي عمتتل
شء اخر.
ممتتا يضتتعنا امتتام التستتاؤل عتتن التحفيتت .والطريقتتة العروفتتة والرادفتته لتترأي صتتديقت ,ال وهتتو ان التتدراء فتتي التتبيئة
التقليدية مهم جدا للتعويض عن النتائج الفقية الت يقدمها الطتتورون التتذين يفتقتترون للتحفيت و الرغبتتة .هتتذا الجتتواب
يحمل في طياته مضمون مهم و هو ان مجتمعات الصادر الحرة يمكن العتماد عليها للقيام بعمل ما اذا كان هتتذا العمتتل
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
جميل او محبذ لدى التقنيي ,و اي عمل اخر سوف يهمل او سيتم بطريقتتة ركيكتتة جتتدا ,ال اذا كتتان هنتتاك مقابتتل متتادي
لعملهم و بوجود الدارة و الرقابة .و هنا اود ان انوه عن الستتبب النفست و الجتمتتاعي التتذي يجعلنت اشتتك فتتي صتتحة
هذا الدعاء و الوجود في وثيقة .Homesteading the Noosphereو لكن اعتقتتد انتته متتن المتتتع ان ننتتاقش
الثار التتبة لقبول هذا الستنتاج.
اذا كان النموذج التقليدي الغلق الصدر لتطوير البمجيتتات و التتدار بشتتكل مكثتتف محمتتي فقتتط بطريقتتة ختتط متتاقينتو
Maginot Lineو الت تعن ان اكتشاف الشكلة يؤدي الى اكتشاف مشكلة اختترى ,اذا ستتوف تكتتون هنتتاك جتتزيئات
في برنامج كل فرد تحتوي على علل كامنة لن تظهر الى ان يكتشفها شخصا ما و هذا قد ليحتتدث ال بعتتد فتتتة طويلتتة
جدا مما قد ل يكون هناك اهتمام لصتتلحها بعتتد هتتذه التتدة و ايضتتا تكتتون متتن الصتتعوبة البالغتتة ان يقتتوم شتتخص متتا
باصلح او التحايل على هذه العلل بعد مض كل هذا التتوقت .لتتذلك فتتي التتوقت التتذي تظهتتر منافستتة علتتى برنامتتج حتتر
الصتتدر لجزئيتتة مملتتة متتن برنامتتج متتا ,العملء ستتوف يعرفتتون انتته اخيتتا ستتوف يتتتم اصتتلح هتتذه العلتتة و الستتبب ان
الطور اختار هذا العمتتل ممتتا يعنت انتته منجتتذب لهتتذه الشتتكلة و لتته ميتتول لهتتذه الجزئيتتة “العلتتة” و فتتي عتتالم تطتتوير
البمجيات مثل اي بيئة اخرى تتطلب البتكار و القدرة علتتى البتتداع الحفتتز التتداخلي لعمتتل شتتء اقتتوى بكتتثي متتن اي
محفتتز اختتر و لتتو كتتان متتادي .و وجتتود الدارة التقليديتتة لتحفيت الطتتورين ,هتتو علتتى الرجتتح التكتيتتك الجيتتد و لكنهتتا
استاتيجية سيئة ,و هذا قد يؤدي الى نجاح على الستوى القريب و لكنه قد يفشل على الستوي البعيد.
لذلك يبدو ان الطريقة التقليدية لتطوير البمجيات تخس امتتام بيئة الصتتادر الحتترة فتتي نقطتتتي وهتتي )تقتتديم التتوارد
و التنسيق( و تبدو كما لو كانت تعمل في الوقت الضائع باستثناء حافز اخر .و يظل الدير التقليدي محاص و بتتدون
جدوى حقيقية .و تظل اقوى نقطتتة نقتتاش لتتبيئة الصتتادر الحتترة هتتي مراجعتتة القتتران )النتتداد( بحيتتث تضتتمحل جميتتع
الطرق الرادفة لها لصطياد العلل بشكل فعال .هل نسطيع الحفتتاظ علتتى تحقيتتق الهتتداف كمتتبر للتكلفتتة الناتجتتة متتن
الدارة التقليدية للبمجيات؟ ربما و لكن لكي نقوم بذلك نحتاج الى ستتبب مقنتتع لكتتي نصتتدق ان لجتتان الدارة وخطتتط
الشكات هي اكث نجاحا في تحديد اهداف اكفأ و اكث انتشارا من قادة الشاريع الذين يقومتتون بتتدور مماثتتل فتتي عتتالم
الصتتادر الحتترة يظهتتر ان هتتذه القضتتية صتتعب اثباتهتتا .و فتتي الواقتتع هتتذا ليتتس بستتبب الصتتادر الحتترة ) التتدليل وجتتود
مشاريع معمرة مثل Emacsاو قدرة لينوس تورفولتتدس Linus Torvalds'sعلتتى توظيتتف مجموعتتات كتتبية متتن
الطورين ,و قد يكون اقنعهم بأنه ينوي ان يهيمن على العالم( و هذا يجعلها صتتعبة ,فتتي الواقتتع هتتذا ناتتتج عتتن قصتتور
في الدارة التقليدية لتحقيق اهداف مشاريع البمجيات…
و اجدة من اهم النظريات في هندسة البمجيات وهي ان %60الى %70متتن مشتتاريع تطتتوير البمجيتتات امتتا لتكتمتتل
او يرفضها مستخدميها .فاذا كانت هذه الرقام قريبة من الواقع )و انا لم اقابتتل متتدير قتتط رفتتض او كتتذب هتتذه الرقتتام(
اذا كثي من مشاريع البمجيات ستوجه لهدف ما اما ان تكون :ا – امكانية تحقيقها غي واقعية ب – خاطئة تماما .
والخية قد تكون السبب في تقشعر الدراء عند سماعهم كلمة ” لجنة إدارة” )وخصوصا( اذا كتتان الستتامع هتتو متتدير.
فقد و لى الزمن الذي يمسك البمجون بهذا النمط فقد يظهر هذا في قصاصات دلبت Dilbertالكرتونية و قتتد تجتتده
الن متتتدلي متتن مكتتتب التتدير التنفيتتذي .اذا ردنتتا ستتيكون وبكتتل بستتاطه للطريقتتة التقليديتتة لدارة تطتتوير البمجيتتات
كالتالي ) اذا كانت مجتمعات الصادر الحرة قللت من تقدير الدارة التقليدية ,لاذا كثي منكم يظهر ازدراء لنهجكم؟ (
ومتتره اختترى مثتتال مجتمعتتات الصتتادر الحتترة يوضتتح هتتذا الستتؤال بشتتكل افضتتل لننتتا نجتتد التعتتة فيمتتا نعمتتل .فالعمتتل
البداعي الذي نقوم به احرز نجاح تقن و حصة في السواق و نجاح منقطع النظي ت فتتي مشتتاركة العقتتول .فقتتد اثبتنتتا
اننا نقدم برمجيات افضل بل و اثبتنا ايضا ان التعة هي أساس العمل .بعد سنتي و نصف من كتابتتة النستتخة الولتتى
من هذه الوثيقتتة ,الفكتترة الجذريتتة التتت استتتطيع ان اقتتدمها فتتي نهايتتة هتتذه الوثيقتتة ,هتتي ليستتت رؤيتتا لتتبيئة برمجيتتات
تهيمن عليها الصادر الحرة ,بعد كتتل شتتء ,يبتتدو ان ذلتتك ظتتاهر لكتتثي متتن النتتاس حتتت لولئك التتذين يرتتتدون البتتدل
“رجال العمال”
بالحرى ,اود ان اقتح ما قد قد يكون درس اعمق و اشتتمل فتتي البمجيتتات )و متتن المكتتن ان يشتتمل هتتذا التتدرس او اي
عمل ابتكاري ابداعي متخصص( البش عادة ما يستمتعون بعمل ش ما خصوصا اذا كان هذا العمل يشتتكل أقص ت قتتدر
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
من التحدي و ليس سهل الى حد اللل ,و ليس صعب النال ايضتتا .اذا ستتبب ستتعادة البمتتج بتتان يكتتون شخصتتل مهمتتا
ليس مهمشا وغي مثقل بالهداف العقيمة وان ل تكون آلية عمل مجهدة .اذا فالعادلة هي )التعة تحدد الكفائة(
و فيما يخص آلية عملك فالخوف و الشمئاز بحد ذاته دليل على ان آلية العمتتل هتتذه فاشتتلة .فالتعتتة و روح الفكتتاهه
و الرح هما بكل تأكيدا لصول و لم يكن عبثا حي ذكتترت اعله ” الجحافتتل الستتعداء” و لتتم تعتتد اضتتحوكة ان شتتعار
لينكس هو حيوان البطريق
قد يكون ان اهم درس يعلمنتتا ايتتاة نهتتج الصتتادر الحتترة ,ان اللعتتب هتتو اكتتث الطتترق اقتصتتاديا و كفتتائة خصوصتتا فتتي
العمال الت تتطلب البداع و البتكار
الكاتدرائية_والسوقhttp://docs.ojuba.org/
مشروع وثائق أعجوبة
.1الكتدرائية والسوق/البار الكتدرائية والسوق/البار
و السلبيات )من وجهة نظر العلم الخارجي( ان موزيال Mozillaلم تقدم متصفح ذو قيمتتة منتتذ ستتنتان و نصتتف متتن
وقت اطلق الشوع و في 1999قام احدي مدراء الشوع بتصعيد مشتتكلة عتتدم كفتتاءة الدارة و الفتترص الضتتائعة فقتتد
قال ” ان الصادر الحرة ليست عصا سحرية” و بالفعل فهو ليس كذلك .فمبدأ التخمي و الذي اختتذ فتتتة طويلتتة بتتدأ
بالتحستتتن بشتتتكل جتتتذري الن )نوفمتتتب (2000مقارنتتتة بالبنامتتتج فتتتي ايتتتام استتتتقالة جيمتتتي زوينستتتكسJamie
Zawinski'sو في السابيع الخيتتة الصتتدارات الليليتتة ارتقتتت التتى متصتتفح ذو كفتتاءة و يمكتتن استتتخدامه .و لكتتن
رأي جيمي كان صحيحا فقد ادعى ان التوجه للمصادر الحرة لن ينقتتذ مشتتوع يعتتاني متتن علتتة فتتي تحديتتد الهتتداف او
Mozillaبتقتتديمشفرة مصدرية عشوائية او اي متتن المتتراض الزمنتتة التتت تصتتيب مشتتاريع التطتتوير .فقتتامت متتوزيل
نموذجا لشوع حر الصدر فاشل و مشوع حر الصدر ناجح ايضا.
و في الوقت الحالي فكرة الصادر الحتترة حققتتت نجاحتتا كتتبيا ,,ووجتتد مؤيتتدين وانصتتار فتتي كتتل مكتتان .و بعتتد اصتتدار
نيتستتكيب Netscapeنتترى نمتتوا كتتبيا و متايتتدا بالهتمتتام باتبتتاع نمتتط الصتتادر الحتترة ,نتترا ميتتل للتتتوجه لتته و
النجاح الستمر لنظام التشغيل لينكس .فالتجاه الذي اطلقته موزيل Mozillaل يزال مستمر و متايد.
الكاتدرائية_والسوقhttp://docs.ojuba.org/