کاوه هجده روز کاری وقت دارد تا سفارشگیری ویزیتورهای یک شرکت پخش مواد غذایی در قزوین از دفترچه کاغذی به موبایل برود، و بیشتر چیزهایی که در فهرست اوست هیچ اثری روی این تاریخ ندارد. سه کار تاریخ را میسازند. بقیه میتوانند روزها عقب بیفتند بیآنکه کسی متوجه شود، و جدا کردن این دو گروه همان حسابی است که زیر هر هفت خوشه این صفحه نشسته است.
فهرست او، با مدتهایی که خودِ مجریها گفتهاند. نوشتن فرم سفارش، ۱۲ روز. پاکسازی و عکسدار کردن فهرست ۱۲۰۰ قلم کالا، ۹ روز. آموزش هجده ویزیتور، ۴ روز، که تا فرم و فهرست هر دو تمام نشده باشند شروع نمیشود. جمع کردن دفترچههای کاغذی و عوض کردن روال انبار، ۲ روز، و فقط بعد از آموزش. طراحی لوگو و رنگ برنامه، ۶ روز، که برای بروشور نمایشگاه میخواهند و اینجا هیچچیز منتظرش نیست. کارهایی را که باید پشت سرِ هم بیایند زنجیر کنید و تاریخ خودش از فهرست بیرون میآید: ۱۸ روز، یعنی ۱۲، بعد ۴، بعد ۲.
مسیر بحرانی بلندترین زنجیره کارهای وابسته است و تاریخ پایان را همان تعیین میکند. پاکسازی فهرست کالاها رویش نیست. ۹ روز پاکسازی کنار ۱۲ روز فرم میرود، پس میتواند سه روز دیرتر شروع شود و باز هم روز هجدهم سرِ جایش باشد. آن سه روز شناوری است. شناوری یعنی یک کار چند روز میتواند عقب بیفتد بیآنکه تاریخ پایان تکان بخورد، و فرم سفارش اصلاً ندارد: کاری که روی مسیر بحرانی است شناوری صفر دارد، و معنی روی مسیر بودن دقیقاً همین است.
همین عدد تعیین میکند کمک کجا برود. کاوه میتواند دو نفر را دو هفته از واحد پشتیبانی قرض بگیرد. بگذاردشان روی پاکسازی فهرست و تاریخ تکان نمیخورد، چون آدم اضافه روی کاری که شناوری دارد تاریخ را جلو نمیاندازد؛ فهرست زودتر تمام میشود و بعد منتظر میماند. بگذاردشان روی فرم، و هر روزی که صرفهجویی کنند یک روز از تاریخ کم میکند. برای فشار هم همین درست است: تنگ کردن نفسِ کسی که کالاها را عکس میگیرد چیزی نمیخرد و یک سال یادش میماند.
برآورد یک بازه است، و «دو هفته» عدد نیست
برنامهنویس اول گفت حدود دو هفته. دو هفته روی برنامه ۱۰ روز کاری است، چون شنبه تا چهارشنبه کار میکنند. منظور او ۱۲ روز بود، چون پنجشنبهها را هم نیمروز پای همین کار حساب کرده بود. هیچکس دروغ نگفت. هفته واحد تقویم است و برنامه واحد روز کاری، و فاصله میان این دو، پیش از آنکه یک خط کد نوشته شود، یک ششم زنجیره کاوه را برده بود.
برآورد یک بازه است و عددی که از شما میخواهند سرِ خوشبینانه آن بازه است. کاری کردنش یک جمله بیشتر لازم دارد: بپرسید چه چیزی عدد را بد میکند و کِی معلوم میشود. جواب برنامهنویس این بود که اگر خروجی سیستم انبار همان قالب پارسال باشد ۹ روز، و اگر نباشد ۱۶ روز، و صبح روز دوم معلوم میشود. این یک حدس را به یک قرار تبدیل میکند: صبح روز دوم کاوه بهجای یک احساس یک عدد دارد.
برنامه روزی میارزد که چیزی تکان خورده باشد
برنامه بایگانی نیتها نیست. چیزی است که یکشنبه به دو پرسش جواب میدهد: از هفته پیش چه چیزی تکان خورد، و تاریخ عوض میشود یا نه. برنامهنویس میگوید دو روز عقب است، و آن دو روز مستقیم روی تاریخ راهاندازی مینشیند، در هفته دوم گفتهشده نه در هفته پنجم کشفشده. طراح لوگو میگوید یک هفته عقب است، و جواب این است که به این تاریخ ربطی ندارد، که همانقدر ارزش گفتن دارد.
زنجیره همان چیزی است که یک تغییر را قابل تحمل میکند. مدیر فروش وسط کار میخواهد گزارش موجودی لحظهای هم داخل برنامه باشد. پرسش این نیست که فکر خوبی هست یا نه؛ این است که روی زنجیره مینشیند یا نه. اگر وقت همان برنامهنویس را بگیرد، چند روز به راهاندازی اضافه میکند و کسی باید آن روزها را مکتوب قبول کند؛ اگر نگیرد، پول میبرد و وقت نمیبرد. گفتن اینکه کدام یک از این دو است، یک دعوا را به یک تصمیم تبدیل میکند.
ایست: گانتی که برای کارفرما کشیده شد
اینجا جایی است که آدمها میایستند و نمیدانند ایستادهاند، و اینجا شکل مشخصی دارد. گانت یک تحویلدادنی است نه یک ابزار: برای پیوست قرارداد یا برای مناقصه کشیده میشود، در هفته اول، وقتی کشیدنش لذت دارد و هنوز هیچچیز خراب نشده. بعد پرینت میشود، امضا میشود، و دیگر باز نمیشود. باز کردنش یعنی فهمیدن اینکه تاریخ عقب افتاده و گفتنش به یک نفر، و آن نیمهای از کار است که آدم دیگری در آن اجازه دارد نه بگوید.
آزمونش یک واقعیت است نه یک احساس: تاریخ آخرین ذخیره فایل برنامه، وضعیت پروژه است. پروژهای که فایل برنامهاش یازده روز است ذخیره نشده، یک هفته و نیم روی حافظه رفته، و از داخل با خوب رفتن فرقی ندارد. کاوه یکشنبهها ذخیره میکند، و سطرهایی که بیشتر از همه اصلاحشان میکند همانهایی هستند که کمتر از همه دلش میخواهد بنویسدشان.
ترتیبی که میارزد، و ترتیبی که تقریباً همه میروند
اول دامنه، و نوشته: چهار چیزی که باید اول توافق شود همانهایی است که بدون آنها یک تاریخ اصلاً معنی ندارد. بعد تبدیل یک قصد به کارهایی که صاحب دارند، چون تکهای که صاحب ندارد برآورد هم ندارد، و از تکههای بیمدت زنجیرهای درنمیآید. بعد خود زنجیره، بعد کار هفتگی که آن را روی برنامه نگه میدارد، و تازه بعد از آن دو چیزی که اول حذف میشوند و بعد بابتشان پول داده میشود.
ترتیبی که میروند از آن سرِ دیگر شروع میشود، و نسخه اینجاییاش اسم دارد: اول مدرک، بعد ابزار. همانهایی که در آگهیهای شغلی نوشته میشوند پیش از اولین برنامه خوانده میشوند، و چیزی که برنامه واقعاً داخل آن است پیش از آنکه زنجیرهای برای گذاشتن داخلش وجود داشته باشد انتخاب میشود. آنچه خراب میشود مشخص است: تخته کار وابستگی را نگه نمیدارد، پس پروژهای که فقط روی تخته میرود زنجیره ندارد و تاریخی هم ندارد که بشود از آن دفاع کرد. لغزش اول روی کاری میافتد که شناوری دارد و انگار هیچ اتفاقی نمیافتد. دومی روی فرم میافتد.
کار کردن در چرخههای کوتاه، و چیزی که لازم دارد جواب دیگری به همین مسئله است: کوتاه کردن زنجیره تا جایی که یک برآورد غلط ارزان تمام شود، نه فرار از داشتن زنجیره. یک اسپرینت دو هفتهای خودش یک مسیر بحرانی دارد و آن مسیر ۱۰ روز است.
ترتیب
پنج پله، و مدرک هیچکدامشان نیست
هر پله روی پله زیرش میایستد. زمانبندیای که پیش از توافق بر سرِ دامنه ساخته شود، مجموعهای از تاریخهاست برای کاری که هنوز اسم ندارد.
- ۰۱توافق بر سرِ آنچه هست و آنچه نیستنوشته، پیش از آنکه هیچ تاریخی بلند گفته شود
- ۰۲خرد کردن تا جایی که یک تکه برآورد برداردواحدش تکهای است که یک نفر بتواند رویش عدد بگذارد
- ۰۳پیدا کردن زنجیرهای که تاریخ را میسازدهرچه بیرون آن است شناوری دارد و نوبتش میرسد
- ۰۴بردن هفته روی همان زنجیرهچه تکان خورد، چه عوض شد، و تاریخ میایستد یا نه
- ۰۵نوشتن آنچه میتواند خراب شودتا وقتی هنوز یک جمله است و نه یک هفته
ابزار و مدرک پله نیستند. هر دو جایی هستند که آدمها از آن شروع میکنند، و هیچکدام جواب نمیدهند که چه چیزی داخل کار است و چه چیزی نیست.
با چه چیزی کار کنید، و هر کدام جای چه چیزی را گرفت
Microsoft Project زنجیره، شناوری و اثر یک تغییر را خودش حساب میکند، و جای نموداری را گرفت که دستی کشیده میشد و با هر جابهجایی تاریخ از نو کشیده میشد. در دفترهای فنی اینجا هنوز پیشفرض است و اسمش را MSP میگویند؛ اشتراکی است، نسخه رایگان ندارد، و نسخهای که روی بیشتر رایانهها نصب است خریداری نشده است. برای کاری به اندازه کارِ کاوه بیشتر از نیاز است: یک صفحه اکسل با ستون مدت و ستون «بعد از کدام کار» همین حساب را روی پنج سطر انجام میدهد، و یک بار دستی انجام دادنش زنجیره را از یک تصویر به عددی تبدیل میکند که بشود سرش بحث کرد.
تخته کار جایی است که بیشتر پروژهها واقعاً در آن جریان دارند. Jira و Asana و Trello هر سه نسخه رایگانی دارند که یک تیم کوچک را پوشش میدهد، و هر سه جای جلسه وضعیت آخر هفته و فایلی را گرفتند که پیش از آن دستبهدست میشد؛ رسیدن به هر سه از ایران واسطه میخواهد، و همین است که خیلی تیمها همهچیز را روی یک گروه پیامرسان نگه میدارند. هیچکدام حساب بالا را انجام نمیدهند: تخته میگوید چه چیزی گیر کرده، و درباره اینکه کدام کار تاریخ را تعیین میکند نظری ندارد.
چیزی که از ۲۰۲۳ تازه است، مدلی است که پیشنویس مینویسد. روی گزارش تغییرات تخته که بگذاریدش، یادداشت وضعیت هفتگی را مینویسد و جای یک ساعت بازنویسیِ چیزی را میگیرد که تخته خودش گفته است؛ هر دستیار بزرگی نسخه رایگانی دارد که برای همینقدر بس است، و دسترسی مستقیم به بیشترشان از ایران بسته است. کاری که نمیکند همان داوریای است که یادداشت برای آن نوشته میشود، یعنی اینکه تاریخ هنوز واقعی است یا نه: از گزارشی که تنها حرکتش یک کار با دو هفته شناوری بوده، مینویسد پروژه روی برنامه است.
پرسشی که هیچکدام از هفت خوشه زیر این صفحه برنمیدارد
جمله یکشنبه، پیش از آنکه مسئله زمانبندی باشد، مسئله نوشتن است، و فهمیده شدن، در هر شکلی که کار به خود میگیرد جایی است که آن جمله ساخته میشود. از روزی که آدمهای روی زنجیره بهجای قرض داده شدن به شما گزارش بدهند، موضوع عوض میشود به پیش بردن کار از راه آدمهای دیگر، که ارتقای این یکی نیست. همان صفحه اکسلِ پنجسطری را برنامههایی که بیشتر کارها واقعا در آنها انجام میشود درس میدهد، و همه اینها زیر اداره کردن کار، پول گرفتن، و نرمافزاری که کار در آن جریان دارد مینشیند.
کاوه یک چیز را روز صفر نپرسید و باید میپرسید: فرم سفارش روی زنجیره است چون باید باشد، یا چون کسی نپرسید فهرست کالاها را میشود از خروجی سیستم انبار گرفت بهجای عکاسی دستی. دوباره چیدن ترتیبِ کارها تنها حرکتی است که تاریخ را کوتاه میکند بیآنکه کسی تندتر کار کند، و روزی که اولین تاریخ بلند گفته شود از دسترس خارج میشود.