small-change: راه Imprint برای کم کردن بار کد ریویو
خلاصهٔ کاملتر
نویسنده که تو شرکت Imprint کار میکنه میگه میانگین مهندسهاشون الان ۴ برابر دو سال پیش PR مرج میکنن و بعضی تیمها حتی ۱۰ برابر. کیفیت هم بهتر شده: incidentها ۴۲ درصد و incidentهای بحرانی ۷۸ درصد کمتر شدن. ولی یه گلوگاه درست شده: میانهٔ (p50) زمان ریویو یه PR از حدود ۳۳ دقیقه به ۷۷ دقیقه رسیده و دقیقاً همراه با تعداد PRها بالا رفته.
به گفتهٔ نویسنده، ریویو چهار تا هدف داره: انتقال دانش، جلوگیری از خطا، جلوگیری از کار مخرب و الزامات compliance (یعنی قوانینی که میگن یه آدم مستقل باید تغییر رو ببینه). اون معتقده برای خطاها CI/CD و ابزارهای verification مؤثرترن، و برای کار مخرب، قانونهای ثابت و audit log بهتر جواب میدن تا ریویو.
راه حلشون مفهومی به اسم small-change هست. وقتی PR آماده میشه، CI/CD یه GitHub check میده که آیا این PR واجد شرایطه یا نه، و این check دستی قابل تغییر نیست. شرطها اینان: کمتر از ۱۰۰۰ خط کد، هیچ ایراد p1 یا p2 از بات ai-code-review، و نویسندهای که حداقل ۱۰ PR مرجشده تو اون سرویس داشته باشه. تعداد سرویسهایی که تغییر میکنه هم محدوده: تو monorepo فرانتاند ۱ و تو بکاند ۳ تا.
کتابخونههای مشترک اصلاً واجد شرایط نیستن و هر ریپو یه فایل .small_change داره که میشه باهاش مسیرهای حساس، مثلاً سرویس جابهجایی پول، رو بیرون گذاشت. یه skill به اسم review-small-change هم ساختن که فقط دو تا کار بلده: تأیید یا نادیده گرفتن. هیچوقت کامنت نمیذاره. یه skill دیگه به اسم review-pr-cluster هم دستهای از PRها رو میخونه تا الگوهای مشترک رو برای بحث تیمی پیدا کنه.
نویسنده یه الگوی بد رو هم اسم میبره: «meat proxy review»، یعنی وقتی آدمها PR رو با ابزار AI خودشون ریویو میکنن و کلی کامنت میذارن که معلوم نیست خودشون قبولش دارن یا نه. بعد طرف مقابل هم با AI جواب میده و کل ریویو یه نمایش میشه. به نظر نویسنده بهتره همین انرژی خرج ریویوی متمرکز بشه. یه قانون اجتماعی هم گذاشتن: اگه یه small-change خطا داشت، مشکل از سیستمه و باید تو سطح سیستم درست بشه.
نتیجه هنوز زوده. فعلاً حدود ۱۰ درصد تغییرها small-change حساب میشن. نویسنده میگه موفقیت این روش بستگی داره به اینکه بتونن verificationها رو قویتر کنن و این درصد رو بالا ببرن. اعتراف هم میکنه که همه از این تغییر خوشحال نیستن، چون داره یه عادت قدیمی مهندسی رو زیر سؤال میبره.
نکات کلیدی:
- زمان p50 ریویو تو Imprint از ۳۳ به ۷۷ دقیقه رسیده
- small-change یعنی کمتر از ۱۰۰۰ خط، بدون ایراد p1/p2 و از نویسندهای با ۱۰+ PR تو اون سرویس
- فایل .small_change تو هر ریپو اجازه میده مسیرهای حساس مثل پرداخت حذف بشن
- skill مخصوص ریویو فقط تأیید میکنه یا رد میشه، هیچوقت کامنت نمیذاره
- فعلاً حدود ۱۰ درصد PRها واجد شرایط small-change هستن




