spec نوشتن
در فصل ۰.۱۰ همین کار را کردی، ولی هدایتشده. حالا خودت میبریاش — و اولین تفاوت همینجاست: آن بار spec نداشتی، این بار داری.
spec این کار چهار بند دارد (فصل ۲.۴.۲)، و کوتاه است:
- ورودی: پوشهی
نمونهها/اسناد/— هفت فایل متنی بههمریخته. - خروجی: یک گزارش، در حداکثر یک صفحه.
- «تمام شد» یعنی: کسی که این هفت فایل را ندیده، با خواندنِ گزارش بداند چه خبر است و چه چیزی معلوم نیست.
- دامنه: فقط همین هفت فایل. نه تحلیل بیشتر، نه پیشنهاد.
بندِ سوم مهمترین است و معمولاً نوشته نمیشود. «خلاصه کن» یک spec نیست، چون هیچوقت نمیتوانی بگویی تمام شد یا نه (فصل ۲.۴.۳).
ساخت مرحلهبهمرحله
سه مرحله، و بین هرکدام نگاه میکنی — نه اینکه یک درخواستِ بزرگ بدهی و منتظر معجزه بمانی (فصل ۲.۵.۲):
- فهرستبرداری. «هر فایل را بخوان و در یک سطر بگو چیست و تاریخش کِی است.» این هم ارزان است و هم به تو نشان میدهد ایجنت فایلها را درست فهمیده یا نه — قبل از اینکه رویشان کار کند.
- پیدا کردن گیرها. «کدام فایلها با هم تناقض دارند؟ کجا عددی هست که معلوم نیست مالِ چیست؟ چه چیزی ناتمام مانده؟»
- نوشتن گزارش — با ساختار مشخص: چه خبر است · تصمیمهای گرفتهشده · گیرها و چیزهای نامعلوم · قدم بعدی.
و آن مرحلهی دوم را حذف نکن. اگر مستقیم از فهرست به گزارش بروی، ایجنت گزارشی مینویسد که روان است و گیرها را صاف کرده — و آن بدترین خروجیِ ممکن است، چون خطاها را قابل قبول نشان میدهد.
راستیآزمایی خروجی
حالا M4 را روی این خروجی اجرا کن. برای این کار مشخصاً سه چیز را چک کن:
- هر عددی که در گزارش آمده، در کدام فایل است؟ اگر عددی هست که در هیچ فایلی پیدایش نمیکنی، ساخته شده (فصل ۴.۴.۳).
- گیرهای واقعی ذکر شدهاند؟ این کارِ اصلیِ گزارش است.
- و چیزی بهعنوان قطعی گفته شده که در فایلها قطعی نبود؟ این ظریفترین خطاست: ایجنت جملهی مرددِ «شاید باید حذفش کنیم» را به «پیشنهاد میشود حذف شود» تبدیل میکند و تردید را از بین میبرد.
و سه گیرِ واقعیِ این پوشه — که اگر گزارشت هر سه را ندارد، ناقص است:
- فایل «بدون عنوان» سه عدد دارد و هیچ زمینهای ندارد. خودش هم میپرسد «اینا مال کدوم ماهه؟». جوابِ درست این نیست که حدس بزنی — این است که در گزارش بنویسی نامعلوم است.
- عدد اردیبهشت در گزارش فروش، خودش گفته غلط است. نوشته «۱۵۶ سفارش» و بعد اضافه کرده «شامل ۱۲ تا سفارش مرجوعی هم هست که هنوز کم نکردم». پس عدد درست ۱۴۴ است، و جمع سهماهه بهجای ۴۲۱ میشود ۴۰۹.
- «مقایسه با پارسال» یک کارِ باز است، نه یک نتیجه — به حسابداری وابسته است.
بهخاطر بسپار اگر گزارشی که گرفتی «۴۲۱» را بهعنوان جمع نوشته، آن گزارش را رد کن. نه چون جمع را اشتباه زده — جمع درست است — بلکه چون هشداری را که خودِ فایل داده بود نادیده گرفته. این رایجترین شکلِ خطای خروجی است: عددها درستاند، ولی متن دروغ میگوید.
بهترکردن دور دوم
دور اول تقریباً همیشه قابل قبول است ولی خوب نیست. سه اصلاحی که بیشترین تفاوت را میسازند:
- مثال بده. یک سطرِ نمونه از آنچه میخواهی بنویس. این مؤثرترین کار در کل M2 بود (فصل ۲.۶.۲) و اینجا هم هست.
- بخش «نامعلومها» را اجباری کن. در درخواستت بنویس که این بخش باید باشد، حتی اگر خالی بماند. آنوقت ایجنت مجبور است صریح بگوید چیزی نامعلوم نیست — و معمولاً همانجا میفهمد که هست.
- طول را ببند. «حداکثر یک صفحه» گزارش را وادار میکند اولویتبندی کند، و اولویتبندی همان چیزی است که گزارش را مفید میکند.
چه چیزی از دور اول در M0 فرق داشت
ارزش این فصل در همین مقایسه است. اگر ۰.۱۰ را انجام داده باشی، الان همان کار را کردهای با یک تفاوت اساسی:
- آن بار قدمها را من دادم؛ این بار تو نوشتی. و نوشتنِ spec سختترین بخشِ کار بود، نه اجرایش.
- آن بار خروجی را قبول کردی؛ این بار سنجیدی. M4 بین آن دو اتفاق افتاد.
- و آن بار «تمام شد» یعنی گزارش آمد؛ این بار یعنی گزارش درست آمد.
و اگر حس کردی این بار سختتر بود — درست حس کردی، و این نشانهی خوبی است. دور اول آسان بود چون تصمیمها را کس دیگری گرفته بود.
تمرین (ساختنی + توضیحی)
این کار را روی فایلهای واقعیِ خودت اجرا کن — یک پوشه از کارت که چند فایل نامرتب دارد. بعد بنویس:
- spec چهاربندیات چه بود؟
- کجا با پوشهی نمونه فرق داشت؟
- و کدام گیر را ایجنت پیدا نکرد و خودت دیدی؟
پاسخنامه — سه تفاوتی که تقریباً همه با فایلهای واقعی میبینند
۱ — فایلهای واقعی بیشترند و بیشترشان بیربطاند. پوشهی نمونه هفت فایل دارد که همهشان به کار میآیند. پوشهی واقعیِ تو شاید چهل فایل دارد که سیتایشان ربطی ندارند. نتیجه: اولین کارِ واقعی «فیلترکردن» است، نه «خلاصهکردن» — و این در spec نمونه نبود.
۲ — فایلهای واقعی فقط متن نیستند. PDF، عکس، اکسل. و هرکدام مسیر خودشان را دارند (فصلهای ۸.۲ و ۸.۳ دقیقاً برای همیناند).
۳ — و گیرهای واقعی مؤدبانه اعلام نمیشوند. این مهمترین تفاوت است. فایل نمونهی ما با خط روشن گفته بود «۱۲ تا مرجوعی هنوز کم نشده» — یعنی گیر خودش را معرفی کرد. در کارِ واقعی، گیرها اینطور نیستند: دو فایل دو عدد متفاوت دارند و هیچکدام نمیگوید کدام درست است. پس در کار واقعی، مرحلهی «پیدا کردن گیرها» را نمیشود حذف کرد — در حالی که روی نمونه شاید بدون آن هم قسر در میرفتی.