تخمین و ددلاین؛ «این چقدر طول میکشه؟» بدونِ دروغ و بدونِ جنگ
سوالِ «چقدر طول میکشه؟» سه جوابِ حرفهای دارد: بازه (two to three days), مفروضات (assuming the docs are ready), و گزینههای معاوضه (by Friday if we cut the export feature). فرمولِ گفتنِ «نه»: never بدونِ گزینه — "We can do that, if we push the migration to next sprint."
تخمین، جایی است که دو فرهنگ به هم میخورند: فرهنگِ «هرچیزی سریع انجام میشود» (فشارِ مدیر/بازار) و واقعیتِ مهندسی (کار، زمانِ خودش را میخواهد). برنامهنویسِ تازهوارد معمولاً یکی از دو خطا را میکند: زیرتخمین از خجالت، یا جوابِ «نمیدانم» خشک. مهندسِ حرفهای هیچکدام را نمیگوید — «بازه + مفروض + معاوضه» میگوید.
این درس، جملههای تخمین را با منطقِ پشتشان میدهد؛ نیمهٔ دومِ درس، مدیریتِ همان تخمین در طولِ sprint است: اعلامِ زودهنگامِ خطر، که تفاوتِ «ددلاین سوخت» و «ددلاین جابهجا شد» است.
قالبِ تخمین؛ بازه + مفروض + معاوضه
واژههای تخمین که باید راحت بگویی: ballpark (حدودِ کلی), rough estimate (تخمینِ خشن), a couple of days (دو-سه روز), a week-ish (یه هفتهی حدودی), timebox (سقفِ وقت: "Let's timebox it to two days and see how far we get"), ideal vs elapsed time (زمانِ خالصِ کار vs زمانِ تقویمی با جلسهها). و سهنقطهایِ کلاسیک: "Best case two days, most likely three, worst case five if the vendor API misbehaves." — همین یک جمله، تخمینِ حرفهایِ کامل است.
| موقعیت | جوابِ حرفهای |
|---|---|
| سوالِ سریعِ راهرو | "Ballpark, three days — let me sanity-check after standup." |
| جلسهٔ planning | "I'd say five points. Unknown: the legacy schema — I'll spike it first." |
| فشارِ مدیر برای تاریخِ زود | "We can hit Friday if we drop the export. Otherwise Tuesday is realistic." |
| کارِ واقعاً ناشناخته | "I can't estimate blind — give me a half-day spike and I'll come back with a number." |
نه گفتن به اسکوپ؛ هنرِ معاوضه
هر «بله» به کارِ جدید، یک «نه» به کارِ دیگری است — و جملهٔ حرفهای همین را شفاف میکند: "Sure, we can add batch import. That pushes the bugfix release by three days — which one wins?" (میتونیم ایمپورتِ گروهی اضافه کنیم. این ریلیزِ فیکسها رو سه روز عقب میندازه — کدومش برنده باشه؟) قالبهای معاوضه: «…if we push X to next sprint» · «…if someone else takes the support tickets» · «…with a smaller first version — v1 without reports». و مخالفِ مقدس: قولِ «میسازمش خیلی سریع، شب کار میکشم» — زیرِ هر ددلاینِ جادویی، یک خطای تخمین است که بعداً صورتحساب میدهد؛ حرفهایها بهجای شبکاریِ قهرمانانه، معاوضهٔ شفاف میدهند.
مدیریتِ تخمین؛ اعلامِ خطرِ زودهنگام
تخمین، تازه آغازِ ماجراست؛ پایانِ حرفهایاش، اعلامِ بهموقعِ انحراف است — نه در ضربالاجل، در اولین نشانه: "Heads-up: the migration is slower than estimated. I'm 60% through — realistically I need one more day. Do we push the demo or cut the scope?" (خبر: مایگریشن از تخمین کندتره. ۶۰٪ جلو اومدم — واقعاً یه روز دیگه میخوام. دمو رو عقب بندازیم یا اسکوپ رو کم؟) سه واژهٔ نجاتِ این مکالمه: heads-up (هشدارِ مؤدبانه), at risk (در خطر: "The release is at risk"), slip (جابهجا شدن: "The date might slip by a day"). و قانونِ فرهنگِ سالم: خبرِ بدِ زودهنگام، امتیاز است؛ خبرِ بدِ آخرین لحظه، شکستِ مشترک.
گرامرِ عمیقتر: قالبهای عددیِ تخمین
تخمین، زبانِ بازه و شرط است: two to three days (دو تا سه روز), a week, give or take (یه هفته، مثلاً — give or take یعنی ±), assuming X (با فرضِ X), unless X (مگر اینکه X). برای ابهامِ صادقانه: "I can't give you a real number blind — give me half a day." و برای بازنگری: "It's behaving like an eight, not a two." (هشتایی رفتار میکنه، دوتایی نیست). و جفتهای اعلام: on track (طبقِ برنامه), at risk (در خطر), slipping (میخوره عقب) — سهتایی که همهٔ وضعیتهای sprint را پوشش میدهند.
گفتگو: اعلامِ خطرِ زودهنگام
اشتباههای رایجِ فارسیزبانها در همین درس
این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسیزبانت این را میسازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسیزبان میشنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسیاند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.
تمرینهای این درس — چهار قدم، بیعجله
تخمین، زبانِ بازه و شرط است؛ چهار تمرین را با جملههای کامل و شمرده بلند بگو، بعد پاسخها را باز کن.
- بازه بده: مایگریشن — حدوداً سه روز، ± یک روز، با فرضِ خوبرفتاریِ سندباکس.
- اصلاح کن و توضیح بده: «I will finish the migration until Friday.»
- سه برچسبِ وضعیت را در سه جملهٔ جدا بیاور: on track / at risk / slipping — با استوریهای واقعی از ذهنت.
- خبرِ بد را با سه گزینه بده: دیتای قدیمی از نمونه کثیفتر است، دمو جمعه — قالبِ درس.
پاسخ تمرینها — اول خودت جواب بده، بعد باز کن
پاسخ تمرین ۱
پاسخ تمرین ۲
پاسخ تمرین ۳
پاسخ تمرین ۴
چالشِ امروز
🎯 برای کاری که همین حالا درگیرش هستی یک تخمینِ سهلایه بنویس (بازه + فرض + ریسک) و برای همکارت در چت بفرست — امروز، در خطِ واقعی.
نکات مکالمهٔ واقعی که کتابها کم میگویند
- سهگزینه بده، نه گلوله — هر خبرِ بد با سه گزینه و یک پیشنهاد — مدیر با گزینه حرف میزند؛ با فاجعه فقط فریاد.
- heads-up روزِ دوم، نه روزِ آخر — شاخصِ ۶۰٪/خطر را که دیدی اعلام کن — دیرتر گفتن، تمامِ گزینهها را میکُشد.
- give or take و realistically — دو قید را در جملههای تخمین بکار — صداقتِ بازه، اعتمادِ عدد را میسازد.
تخمین = بازه (two to three days) + مفروض (assuming…) + معاوضه (if we cut X). واژهها: ballpark, timebox, at risk, slip, spike. هر بلهِ جدید را با «کدوم میبره؟» بپیچ و انحراف را با heads-up در اولین نشانه اعلام کن. حرفهایها قولِ شبکاری نمیدهند؛ گزینه میدهند.