کارخانه نرمافزار رو مثل یه تیم محصول بچرخون
خلاصهٔ کاملتر
نویسنده میگه چند هفتهست همهش داره با تیمهای مهندسی دربارهی یه چیز حرف میزنه: صف کد ریویو. ایجنتها کد بیشتری تولید میکنن و صف merge request بزرگتر میشه. ولی به گفتهی اون این تمرکز گمراهکنندهست. یه تیم قبل از ایجنتها هم میتونست هفت روز چیز اشتباهی بسازه و توی یه merge request بذاره؛ فقط صف کوچیکتر به نظر میاومد. مشکل محصول از قبل اونجا بود و AI فقط سرعتشو بالا برده.
راهحلی که پیشنهاد میده backpressure هست، یعنی بازخورد سریع و ارزون که وسط چرخهی کار ایجنت بهش میگه کجا رو خراب کرده. خطای کامپایلر و تست فوکوسشدهی شکستخورده سادهترین نمونهشن. یه چک معماری هم میتونه بگه تغییر جدید بین دو ماژولی که قرار بود جدا بمونن وابستگی ساخته. نتیجهش اینه که صد نفر سر خط تولید نمیایستن تا چیزی رو بازرسی کنن که میشد خیلی زودتر گرفتش.
گیت ریویو هم جای ایجنتهای تخصصیه: یکی دنبال آسیبپذیری امنیتی میگرده، یکی میپرسه کاربر اصلاً میتونه کارشو تموم کنه، یکی پیادهسازی رو با دیزاین سیستم چک میکنه. نویسنده تاکید میکنه این ریویوئرها باید دستور و کانتکست تازهی خودشون رو داشته باشن تا مستقل از ایجنتی که کد رو نوشته قضاوت کنن. HumanLayer هم تجربهای رو نقل کرده که اجرای کل تستسوئیت کانتکست ایجنت رو پر میکرد، پس قاعدهشون شد: موفقیت بیصداست و فقط شکست خروجی پرحرف میده.
چیزی که اسمش رو Outcome Grading میذاره یعنی قضاوت محصولی و دامنهای رو به شکلی در بیاری که بشه بارها ارزیابیش کرد: مثال خوب و بد، سناریوی واقعی و دلیل صریح رد کردن یه نتیجه. خود ارزیاب هم باید چک خودش رو داشته باشه، چون یه داور با اعتمادبهنفسِ اشتباه راحت میتونه کل کارخونه رو مشغول نگه داره. اون میگه فرهنگ صرفاً مهندسیمحور، فرضهای محصولی بد رو هم به همون کارایی کد میکنه.
دربارهی spec-driven development هم نظرش اینه که اسپک یه راه بیان نیته و اشکالی نداره، ولی نباید بحث و اختلافنظر آدمها رو قبل از رسیدن به ماشین فشرده و حذف کنی. تردیدها و مثالی که یکی نزدیک بود نگه، بیشتر از جملهی مرتب نهایی نیت رو منتقل میکنن. ساختن هم خودش بخشی از مشخص کردنه: پروتوتایپ نشون میده یه مفهوم جا افتاده یا دو نفر یه کلمه رو دو جور میفهمن.
جمعبندیش اینه که کارخونه رو موقع کار واقعی محصول میسازی، نه جدا از اون. هر جا ایجنت مدام یه قاعدهی دامنه رو اشتباه حدس میزنه، کانتکستش رو بهتر کن؛ هر جا ریویو یه دسته خطا رو دوباره میگیره، ببین چطور میشد سر همون اجرا گرفتش. این کار وقت و مالکیت جدا میخواد، چون تیمی که کل ظرفیتش صرف دستهی بعدی فیچرهاست نمیتونه سیستمی رو که اونا رو تولید میکنه بهتر کنه.
نکات کلیدی:
- backpressure یعنی بازخورد سریع وسط چرخهی کار ایجنت، مثل خطای کامپایلر یا تست شکستخورده
- HumanLayer دید اجرای کل تستسوئیت کانتکست ایجنت رو پر میکنه؛ قاعدهشون شد فقط شکست خروجی پرحرف بده
- Outcome Grading یعنی تبدیل قضاوت محصولی به ارزیابی تکرارپذیر با مثال خوب و بد
- ریویوئرهای تخصصی امنیت، UX و UI باید کانتکست تازه داشته باشن تا مستقل از سازنده قضاوت کنن
- کارخونهی نرمافزار بکلاگ جدای خودش رو میخواد؛ تیمی که همهی وقتش صرف فیچره نمیتونه سیستم تولید رو بهتر کنه




