اردوگاه «بوی اسکات» یک قانون دارد: «همیشه محوطه را تمیزتر از زمانی که به آن وارد شدهاید ترک کنید.» اگر زبالهای روی زمین دیدی، بدون توجه به این که چه کسی آن را انداخته است، تمیزش کن. نیتات این باشد که اردوگاه را برای گروه بعدی که میآیند بهتر کنی. (در واقع شکل اصلی این قانون که «رابرت استفنسن اسمیت بیدن پاول*» بنیانگذار اردوگاه اسکات بیان کرده است، این بود: «سعی کن وقتی دنیا را ترک میکنی، دنیا بهتر از وقتی باشد که به آن وارد شدی.»)
اگر ما قانونی مشابه این را در کدنویسی داشته باشیم چه اتفاقی میافتد: «همیشه وقتی یک ماژول را تحویل میدهی تمیزتر از وقتی باشد که آن را تحویل میگیری»؟ بدون توجه به این که نویسنده اولیه آن ماژول چه کسی بوده است، چی میشود اگر ما مقداری (هر چند ناچیز) تلاش کنیم تا آن را بهبود بدهیم؟ نتیجه چه خواهد شد؟
من فکر میکنم اگر ما همین قانون ساده را دنبال کرده بودیم شاهد پایان «بدتر شدن مداوم» سیستمهای نرمافزاریمان بودیم. سیستمهایمان همانطور که تکمیل میشدند بهتر و بهتر هم میشدند. همچنین میدیدیم که تیمها نگران سیستم به عنوان یک کل بودند نه این که هر کسی نگران بخش کوچک کار خودش باشد.
من فکر میکنم که پایبندی به این قانون خواسته زیادی نیست. لازم نیست همه ماژولها را قبل از تحویل، کامل و بی و عیب نقص کنی. فقط کافی است آن را یک ذره بهتر از زمانی که تحویل گرفتهای، برگردانی. در این شکی نیست که باید کدی که به ماژول اضافه میکنی تمیز باشد، حداقل یک چیز دیگر را هم قبل از این که ماژول را تحویل بدهی تمیز کن. این کار میتواند به سادگی بهبود نام یک متغیر یا شکستن یک تابع طولانی به دو تابع کوچکتر باشد یا شاید شکستن یک وابستگی حلقهای یا اضافه کردن یک رابط و جدا کردن سیاستها از جزئیات.
صادقانه بگویم انجام این کار از نظر من نشانه شخصیت شما است، مثل شستن دست بعد از مستراح یا انداختن زباله در سطل آشغال به جای پرت کردن آن روی زمین. علاوه بر این رها کردن آشغال در کد باید همانند آشغال ریختن روی زمین از نظر اجتماعی ناپسند باشد. کاری که به هیچ وجه نباید انجام داد.
این موضوع حتا فراتر از اینها است. نگران کد خود بودن یک مسأله است و نگرانی و دغدغه داشتن برای کد «تیم» موضوع دیگری است. اعضای تیم به هم کمک میکنند و کار یکدیگر را تمیز میکنند. آنها قانون «بوی اسکات» را دنبال میکنند چون برای همه سودمند است نه این که فقط برای خودشان مفید باشد.
نویسنده: Robert C. Martin یا عمو باب
———————————–
* Robert Stephenson Smyth Baden-Powell