یه روز تصمیم گرفتم ببینم واقعاً چرا بعضی روزها ۸ ساعت کار میکنم، ولی آخر روز حس میکنم تقریباً هیچ کاری نکردم.
شروع کردم به نگاه کردن به کارهایی که اون روز انجام داده بودم:
۳۰ دقیقه روی یک Bug.
بعد یک پیام از تیم.
رفتم سراغ یک PR.
بعد یک سؤال از Product.
برگشتم روی Bug.
یک Meeting.
بعد CI شکست.
بعد دوباره PR.
آخر روز شاید ۶-۷ ساعت درگیر کار بودم...
ولی هیچکدوم واقعاً جلو نرفته بود.
مشکل کمکاری نبود. Context Switching بود.
هر بار که از یک مسئله خارج میشیم و وارد مسئلهی دیگری میشیم، بخشی از Context قبلی رو از دست میدیم.
و وقتی دوباره برمیگردیم، باید زمان بذاریم تا یادمون بیاد:
«کجا بودم؟»
«چی داشتم بررسی میکردم؟»
«چرا این تصمیم رو گرفتم؟»
برای همین گاهی:
8 Hours Worked
≠
8 Hours of Progress
حتی بدتر...
اگر چند نفر از یک تیم دائماً همدیگه رو Interrupt کنن، مشکل فقط فردی نیست.
کل تیم وارد یک چرخه میشه:
Work
↓
Interrupt
↓
Context Switch
↓
Recovery
↓
Work
↓
Interrupt
برای همین بعضی تیمها با اضافه کردن آدم بیشتر، الزاماً سریعتر نمیشن.
چون ممکنه فقط تعداد Interruptها رو بیشتر کنن.
این روزها سعی میکنم هر کاری که نیاز به تمرکز داره رو تا جای ممکن یکتکه انجام بدم.Notification کمتر. Meeting کمتر. Taskهای همزمان کمتر.
و مهمتر از همه:
کارهای نیمهتمام کمتر.
چون Productivity همیشه یعنی سریعتر کار کردن نیست.
گاهی یعنی:
اجازه بدی یک Engineer آنقدر Context داشته باشه که واقعاً یک مسئله رو تمام کنه.