گلوگاه جدید برنامهنویسی: توجه، نه سرعت تایپ
خلاصهٔ کاملتر
تا همین چند وقت پیش، سقف چیزی که یه برنامهنویس میتونست تحویل بده دستهای خودش بود: اینکه چقدر سریع تایپ میکنه و تا آخر روز چقدر جلو میره. تو این مقاله اومده که ایجنتها این سقف رو برداشتن و یه نفر حالا میتونه چند جریان کار رو همزمان ببره و تو یه بعدازظهر کاری رو تموم کنه که قبلاً یه هفته وقت میگرفت.
ولی برداشتن یه محدودیت فقط محدودیت بعدی رو نشون میده. به گفتهٔ نویسنده چیزی که حالا گلوگاهه همون بخشیه که همیشه انسانی بوده: تصمیم گرفتن دربارهٔ اینکه چی ساخته بشه، قضاوت اینکه خروجی درسته یا نه، و فهمیدن اینکه کدوم یکی از کارهای موازی داره از ریل خارج میشه. اجرا ارزون شده و توجه گرون.
این تغییر راحت نادیده میمونه، چون خودش رو به شکل ساعت کاری بیشتر نشون نمیده؛ به شکل خستگی ذهنی نشون میده. نویسنده تعریف میکنه بعضی از پربارترین بعدازظهرهاش رو داغونتر از یه روز کامل کدنویسی دستی تموم کرده، چون ماشین تایپ میکرده و تمام وقت خودش صرف تصمیم گرفتن و چک کردن شده. حرف اصلی مقاله همینه: بار ذهنی (cognitive load) الان محدودیت واقعیه و باید عمداً مدیریت بشه.
اولین راهکار، خودکار کردن تصمیمهای بیاهمیته. همهٔ تصمیمها از یه حساب مشترک برداشت میکنن؛ اسم گذاشتن روی یه متغیر یا تأیید یه دستور بیخطر برای دهمین بار، هر کدوم یه برداشت کوچیکه و تا وسط بعدازظهر حساب خالی میشه. نویسنده به این حرف اوباما اشاره میکنه که فقط کتشلوار خاکستری یا آبی میپوشه تا تصمیمهای کماهمیت از سرش کم بشه. تو کد هم یه تصمیم کماهمیت که دو بار گرفته بشه، باید بار اول خودکار میشده.
ابزارهاش هم چیز عجیبی نیستن: یه قانون lint بحث استایل رو برای همیشه میبنده، یه مقدار پیشفرض تو تابع سازنده، تصمیمِ ساخت رو حل میکنه، و یه خط تو دستورهای ایجنت یه تصمیم رو یه بار میگیره و ده تاسک بعدی ازش ارث میبرن. هر چی هم خودکار نمیشه، حداقل بنویسش — وضعیت تاسکها، یه لاگ تصمیم — چون هر چیزی که فقط تو ذهنته، بعداً باید هزینهٔ بازسازیش رو بدی.
قدم بعدی برنامهریزیه. تیمها زمان و پیچیدگی رو تخمین میزنن و برای استوریها پوینت میذارن، ولی معمولاً نمیپرسن یه کار چقدر توجه میخواد و توجهِ کی. نویسنده میگه تیمهایی رو دیده که یه اسپرینت براشون سخت شده، نه چون ساعت کاری کسی پر بوده، بلکه چون خط کاری یه نفر پر از تاسکهایی بوده که برای هر کدوم باید کل سیستم رو تو ذهن نگه میداشتی. راهحلش اینه که بپرسی این کار تو ذهن کیه، و اگه اون ذهن پره، دانش رو پخش کنی: برنامهنویسی جفتی، مکتوب کردن، دادن تیکهها به کسی که جا داره.
کار اجرایی سادهٔ قبلی خودش یه نوع استراحت بود؛ حالا ایجنتها همون رو هم برداشتن و چیزی که مونده، جریان غلیظتری از قضاوتهای پشتسرهمه. پس استراحت باید عمدی باشه؛ یه بازبینی با ده دقیقه فاصله چیزی رو میگیره که بازبینِ خسته راحت ازش رد میشه. نویسنده اضافه میکنه این حساب با بستن لپتاپ پر نمیشه. جمعبندیش اینه که برندههای این دوره کسایی نیستن که بیشترین ایجنت رو همزمان میچرخونن، بلکه کساییان که ساعت ۳ بعدازظهر هنوز جون دارن بفهمن اون مایگریشن یه جاش میلنگه.
نکات کلیدی:
- با ایجنتها اجرا ارزون شده، ولی توجه و قضاوت آدم شده گلوگاه جدید
- تصمیمهای کمارزش رو با قانون lint، مقدار پیشفرض و دستورهای ایجنت یه بار برای همیشه ببند
- هر چی خودکار نمیشه رو بنویس: وضعیت تاسکها و لاگ تصمیمها
- تو برنامهریزی، بار ذهنی رو هم مثل پوینت حساب کن و دانش رو بین تیم پخش کن
- استراحت دیگه مجانی گیرت نمیآد؛ باید عمداً برای خودت بذاریش




