چرا باید قبل از فیچر جدید، باگها رو درست کنی
خلاصهٔ کاملتر
نویسنده میگه خودش تو اولویتبندی کارها خوب نیست، ولی یه قانون داره که محکم پشتش وایستاده: اگه چیزی دیروز کار میکرد و امروز خرابه، هر کاری دستشه ول میکنه و همون رو درست میکنه، هرچقدر هم اون فیچر کوچیک و بیاهمیت باشه. پشتوانهش مقالهی «The Mundanity of Excellence» نوشتهی Daniel Chambliss ـه که میگه عملکرد فوقالعاده چیزی نیست جز جمع شدن دهها مهارت کوچیک که هرکدوم بهتنهایی کاملاً عادیان.
به گفتهی نویسنده، نرمافزار هم دقیقاً همینجوریه. از یه حدی از پیچیدگی به بعد دیگه با بردهای بزرگ جلو نمیری. چیزهایی مثل tooltip، شورتکات، شخصیسازی، سرعت پاسخگویی و درست کار کردن حالتهای لبهای هستن که نرمافزار رو از «کار میکنه» میرسونن به «آدم دوست داره باهاش کار کنه». مشکل اینه که دقیقاً همینها زود خراب میشن و خراب میمونن، و اگه نگهشون نداری کیفیت کارت همیشه برمیگرده به ۷ از ۱۰.
برای نشون دادن قضیه، Far Cry 2 (سال ۲۰۰۸، روی PS3) رو با Far Cry 5 (ده سال بعد، روی سختافزار خیلی قویتر) مقایسه میکنه: کلی جزئیات که تو نسخهی قدیمی کار میکرد، تو نسخهی جدید خرابه. یه نمونهی غیربازی هم میزنه؛ condition variableها تو glibc از ۲۰۱۶ خراب بودن و خودش از ۲۰۲۰ داشت پچ میفرستاد تا بالاخره ۲۰۲۵ پذیرفته شد. چون «بیشتر وقتها کار میکرد»، کسی اولویتش نداد.
بخش بهانهها هم شنیدنیه. وقت نداریم، نیرو کم داریم، این فیچر دو هفته عقبه. نویسنده میگه این دلیلها واقعیان، ولی از بیرون معلومه تیم تو «تلهی توانمندی» گیر کرده: وقت نداری چون روالهات بدن. تست بیشتر نیروی بیشتر نمیخواد، برعکس باعث میشه همون نرمافزار رو با آدم کمتر تحویل بدی. گرفتاری اینجاست که این حرف تو کوتاهمدت درست نیست و اوضاع اول بدتر میشه، برای همین عوض کردن روال سخته.
آخرش هم از سازندههای بازی نقلقول میاره. از Blizzard: پالیش آخر پروژه اتفاق نمیافته، از همون اول در جریانه و اگه بذاریش برای آخر هیچوقت بهش نمیرسی. از id Software: همیشه کدت رو قابلعرضه نگه دار و به محض دیدن باگ درستش کن، وگرنه کد جدیدت روی یه پایهی خراب سوار میشه. تست خودکار کمک بزرگیه و از یه جایی به بعد واجبه، ولی همهچیز رو نمیگیره و چیزی که ازش رد شد باید فوری درست بشه.
نکات کلیدی:
- قانون نویسنده: هر چیزی که دیروز کار میکرد و امروز خرابه، قبل از هر کار دیگهای درست میشه.
- منبع ایده مقالهی «The Mundanity of Excellence» نوشتهی Daniel Chambliss ـه.
- باگ condition variable تو glibc از ۲۰۱۶ تا ۲۰۲۵ باز موند، چون اغلب اوقات کار میکرد.
- «تلهی توانمندی»: وقت نداشتن نتیجهی روال بده، نه دلیلی برای نداشتن روال خوب.
- نقلقول Blizzard: پالیش از اول پروژه شروع میشه، نه تو شش ماه آخر.




