بایگانی

بایگانی مرداد

تئوری پنجره شکسته

چند مدت قبل در حال بازبینی کدهای یک پروژه قدیمی بودم که هنوز توسط شرکت پشتیبانی می‌شود و به‌صورت مکرر با درخواست مشتریان ویژگیهای جدیدی به آن اضافه می‌شود. کدهای قدیمی کدهای نسبتا کثیفی هستند که به‌راحتی بوی بدشان را می‌توان استشمام کرد ولی بخاطر صحت عملکرد نرم‌افزار هیچ‌وقت اراده‌ی برای Refactoring آن وجود نداشت. اما چیزی که برای من عجیب بود این بود که حتی ویژگیهای جدیدی که اخیرا به پروژه اضافه کرده بودیم کیفیت کدهای نوشته شده در سیستم‌های جدیدمان را نداشت و بسیاری از اصول نادیده گرفته شده بود. دلیل این اتفاق عجیب چه‌چیزی می‌تواند باشد؟

به‌صورت اتفاقی در جای مطلبی را می‌خواندم که در آن اشاره به تئوری پنجره شکسته داشت. تئوری پنجره شکسته محصول فکری دو جرم شناس آمریکائی (Criminologist) بود به اسامی جمس ویلسون (James Wilson) و جورج کلینگ(George Kelling).  این دو استدلال می کردند که جرم نتیجه یک نابسامانی است. اگر پنجره ای شکسته باشد و مرمت نشود آنکس که تمایل به شکستن قانون و هنجارهای اجتماعی را دارد با مشاهده بی تفاوتی جامعه به این امر دست به شکستن شیشه دیگری می زند. دیری نمی پاید که شیشه های بیشتری شکسته می شود و این احساس آنارشی و هرج و مرج از خیابان به خیابان و از محله ای به محله دیگر می رود و با خود سیگنالی را به همراه دارد از این قرار که هر کاری را که بخواهید مجازید انجام دهید بدون آنکه کسی مزاحم شما شود.

کدهای قدیمی در آن سیستم مشابه همان پنجره‌های شکسته ساختمان بود. و هر کسی که می‌خاست که ویژگی جدید را به آن اضافه کند با مشاهده همان پنجره‌های شکسته به طور ناخودآگاه تمایل پیدا می‌کرد که رفتار مجرمانه از خودش بروز بدهد و بدون در نظر گرفتن اصول، وظیفه محوله را در سریعترین زمان ممکن انجام بدهد و فضا را برای رفتار مجرمانه دیگر توسعه‌دهندگان مهیاتر بکند.

در برابر پنجره‌های شکسته باید چگونه عمل کرد؟ ساده‌ترین و بهترین کار ممکن این هست که با مشاهده پنجره شکسته خیلی سریع نسبت به تعویض آن اقدام کنیم.هر جا در کدهایمان متغییری دیدیم که اسم متغییر هدف استفاده از آنرا نمی‌رساند، نام آنرا تغییر دهیم. یک متد که بزرگ هست را به متدهای کوچکتر تبدیل کنیم، کدهای تکراری را حذف کنیم، شرط‌های پیچیده را ساده‌تر کنیم. و یک برنامه مداوم برای بهبود مستمر کیفیت کد خودمان طراحی کنیم.

لطفن توجیه نکن

چند ساعت بالای کوه دارد بحث را مدیریت می‎‌کند که به نتیجه دلخواه خودش برسد و آن اتفاقی که در زندگیش افتاده را توجیه کند. می‌خواهد به نقطه‌ای برسیم که هم خودش و هم ما قبول کنیم که آن اتفاق قسمتش بود و او نمی‌توانسته نقشی در نتیجه آن اتفاق داشته باشد. می‌خواهد چشم‌هایش را بر حقیقت ببندد و فقط با جمله “قسمت‌م این بود” به آرامشی هر چند کوتاه‌مدت، دست بیابد.
امیر شاید به اندازه آن دوست پارگراف بالا قفسه‌های پر کتاب جامعه‌شناسی، روانشناسی، فلسفه و … نداشته باشد. اما امیر در صفحه فیس‎‌بوک خود نوشته «میدونستید اگه ایرانیها میخواستن کولر رو اختراع کنن هیچ وقت اختراع نمیشد! چون هی‌هی مثل خیلی از ماها میگفتن خدا حتمن یه چیزی میدونه که تابستونو گرم کرده اگه خودش بخواد سردش میکنه. خدا میدونه چی واسه ما خوبه :|میدونید از چی متنفرم؟ از اینکه بگن این حکمت خدا بوده که اینطوری شده یا این قسمت نبوده که اینطوری شده. » از نظر من امیر این جامعه، مردمش و تفکرش را می‌شناسد و نمی‌خواهد بخاطر آرامش چشمانش را بر حقیقت ببندد.
من از توجیه کردن، کتمان حقیقت و هر چیزی که کم‌کارهای خودمان را پنهان کند نفرت دارم. اما حقیقت‌گریزی و پنهانکاری در ذات اغلب آدم‌های این جامعه هست. این حرف من نیست، فقط کافی هست که چشم‌هایم را ببندم و صفحات چند کتاب را به یاد بیاورم. جامعه‌شناسی خودمانی نوشته حسن نراقی مثل همیشه گزینه اول هست که در ذهنم خودنمایی می‌کند.
«در مجموع ما ایرانی‌ها علاقه چندانی به روبرو شدن با حقایقی که به هر دلیلی مطابق میل و سلیقه‌مان نباشد نداریم.
از بیماری صعب‌العلاجی که خدای ناکرده گریبان خود و یا عزیزی از اطرافیانمان را گرفته تا معظلات و مشکلات اجتماع ترجیح می‌دهیم در بهترین حالت با سکوت به آسانی از کنار آن بگذریم و به این منظور در حادترین شرایط حاکم با «انشاءا…» . به امید خدا و در اوج بی‌علاجی «هر چی خداوند مقدر کرده باشند»، صورت مسئله را پاک می کنیم. غافل از این‌که به استناد ده‌ها توصیه مسلم انجام این گونه امور را خداوند به عهده خود ما قرار داده و قرار هم نیست اگر کوشش در رفع معضل نکنیم خود بخود حل شود.»
اما این درد، یک درد کهنه هست و مانند یک میراث خانوادگی از نسلی به نسل دیگر منتقل می‌شود. قبل از حسن نراقی، فریدون آدمیت در کتاب اندیشه‌های میرزا آقاخان کرمانی همین جملات را تکرار می کند. «از اینرو در دماغ ایرانیان عقیده غریبی رخنه یافته که همه چیز را به بخت و طالع نسبت می‌دهند، و زحمت و کوشش را در تحصیل ثروت و آبرو شرط نمی‌دانند. این اعتقاد درهای علم و معرفت را چنان به‌روی اهالی این مملکت بست که پیدایش اشیاء را بی‌سبب دانسته‌اند و «عقب پژوهش علل اشیاء که ریشه درخت علم است برنیامده‌اند». رفته‌رفته این مرض شوم کار مردم این مرز و بوم را به جایی کشانیده که هر تقصیر در تدبیر را حواله به تقدیر می‌کنند و هر خرابی را محول به مشیت پروردگار می‌نمایید.»
اما این مشکل فقط مربوط به جامعه ما نیست و تقریبا تمام کشورهای خاورمیانه را در برمی‌گیرد. استفین پی. رابینر در کتاب مبانی رفتار سازمانی بیان می کند «در کشورهای خاورمیانه، مردم از این دیدگاه به زندگی نگاه می‌کنند که از قبل تعیین شده است. هنگامی که رویدادی رخ می‌دهد آنها آن را خواست خدا می‌دانند. در جامعه‌ای که خود را تابع محیط می‌داند، تعیین هدف اهمیت چندان زیادی ندارد. اگر قرار باشد انسان بر این باور باشد که نمی‌تواند در امر رسیدن به هدف کار چندان زیادی انجام دهد، دیگر تعیین هدف چه فایده‌ای دارد.»
سالها هست که این کتابها هست، سالها هست که هزاران نفر این کتابها را می‌خوانند، سالها هست کسانیکه این کتابها را نه خواندن و نه نوشتن این درد را می‌بینند. اما دیدن، نوشتن و خواندن داروی این درد نیست چون اگر دارویش بود تا بحال باید ریشه این بیماری از بین رفته بود. داروی این درد فقط پذیرفتن حقیقت هست با تمام دردهای نهانش، داروی این درد اینست که ما میراث‌دار خوبی نباشیم و کوری را بخاطر آرامش تحمل نکنیم.