تست جوئل قسمت هشتم: آیا برنامهنویسان شما محیط آرامی برای کار کردن دارند؟
پیشتر در نوشتهای که درباره اهمیت احترام به وقت دیگران نوشته بودم به موضوع وقفههای کاری اشاره کردم.
واقعیت اینه که یک برنامهنویس هر روز میتونه درگیر تعداد زیادی وقفه (interrupt) باشه: از پاسخ به ایمیلهای شخصی و کاری گرفته تا راهنمایی به همکاران یا صحبت با تلفن و ...
هر کدوم از این وقفهها رو اگر به تنهایی نگاه کنیم شاید به نظر مهم نیان، اما وقتی صحبت از تمرکز بر روی یک شغل که با فکر آدم سر و کار داره (مثل برنامهنویسی) میشه، تک تک این وقفهها میتونن تاثیر نامناسبی بر روی راندمان اجرای کارها داشته باشند.
جوئل در این مورد به درستی اشاره میکنه که متمرکز شدن روی یک کار ممکنه حتی تا 15 دقیقه طول بکشه اما از دست دادن تمرکز کار بسیار سادهای هستش.
محیط آرام کار چه مزیتی برای تیم دارد؟
مثالی که جوئل در این مورد میزنه خیلی جالب و گویاست:
فرض کنید (که شواهد هم این فرض را تأیید میکنند) که اگر برای یک دقیقه هم یک برنامهنویس را متوقف کنید، پانزده دقیقه از بهرهوریش کم میکنید. برای مثال، Jeff و Mutt (که هر دو برنامهنویس هستند) را در دو پارتیشن کنار هم قرار میدهیم (در یک فضای کاملاً Dilbert ای). مات، نام تابع کپی رشته در یونیکد را به خاطر نمیآورد. میتواند جواب آن را جستجو کند - که ۳۰ ثانیه طول میکشد، و یا این که از جف بپرسد - که ۱۵ ثانیه طول خواهد کشید. خوب، چون جف در کنارش نشسته است ترجیح میدهد که از او بپرسد. حواس جف پرت میشود و ۱۵ دقیقه را از دست میدهد (برای این که مات ۱۵ ثانیه صرفهجویی کرده باشد.) حالا اجازه دهید که جف و مات را در دو اتاق (با در و دیوار) جدا بگذاریم. اکنون وقتی که مات اسم تابع را به خاطر نمیآورد، میتواند جواب آن را جستجو کند (که همان ۳۰ ثانیه طول میکشد) و یا این که از جف بپرسد که ۴۵ ثانیه طول میکشد و شامل از جای خود بلند شدن هم میشود (که با توجه به وضعیت جسمی معمول برنامهنویسان و مسایل ديگر ، کار سادهای نیست!). بنابر این ترجیح میدهد که جوابش را جستجو کند. ۳۰ ثانیه وقتش تلف میشود اما ۱۵ دقیقه به نفع جف است!
خب با همین مثال مشخص میشه که چطور با یک کار ساده مثل جدا کردن برنامهنویسها میتونیم به بهرهوری بیشتر خودشون و در نتیجه کل تیم کمک کنیم. اما موضوع در ایران کمی متفاوت هست.
چه کار کنیم که یک محیط کار آرام داشته باشیم؟
اول اجازه بدید ایدهآلترین شکل ممکن رو خدمتتون عرض کنم. یکی از سازمانهایی که براشون تدریس برنامهنویسی شیرپوینت رو داشتم، بخش بازرگانی (بخش اداری و پشتیبانی) و بخش فنی (تیم برنامهنویسی) رو کاملاً از هم جدا کرده بودند. در این حد که این دو تیم در 2 ساختمان مختلف کار میکردند. شماره تلفنهاشون متفاوت بود و کلاً نحوه دسترسی به این دو بخش از شرکت کلاً متفاوت بود.
نتیجه: وقتی به بخش توسعه نرمافزار وارد میشدی، خبری از سر و صدا و صحبت بلند بلند افراد با تلفن نبود. فضای کاری یک فضای کاملاً developer friendly بود و سکوتی که توی محیط بود، تمرکز برای تدریس و تمرین رو به شکل عجیبی بالا میبرد. ساختمان بخش فنی چندین اتاق داشت و احتمال میدم جلسات تیم توسعه نرمافزار هم در محیط دیگهای برگزار میشد تا حواس اونهایی که در حال کار بودند پرت نشه.
خب این شاید حالت ایدهآل و مناسب شرکتهای پولدار باشه. برای شرکتهای نوپا یا کسانی که امکان اجاره دو محل مختلف ندارند چه کنیم؟ قبلاً موقع صحبت درباره راهکارهای افزایش زمان مفید برای تیمهای نرمافزاری گفتم درباره طرح کتابخانه صحبت کردم:
در طرح کتابخانه شما فرض میکنید وقتی به محل کارتان میآیید به یک کتابخانه قدم گذاشتهاید. شما در کتابخانه بلند بلند با دیگران صحبت نمیکنید. برای اینکه با یک نفر صحبت کنید، از پشت میزتان وی را صدا نمیکنید بلکه بلند میشوید و به پشت میز وی میروید. با تلفن همراه صحبت نمیکنید. وقتی یک نفر سرگرم مطالعه است، با شروع یک مکالمه درباره بازی فوتبال دیشب یا صحبتهای فلان مقام در تلویزیون حواسش را پرت نمیکنید و ...
اگر کمک میکنه میتونید فرض کنید که محیط کار شما مثل یک فیلم صامت میمونه و تنها کاری که شما باید بکنید اینه که توی این فیلم صحبت نکنید!
این گام اول هست، یعنی باور کنیم که محیط آرام میتونه کمک کنه که خروجی بهتری داشته باشید. طرح کتابخانه نیاز به تمرین و همکاری همه اعضا داره.
بعدش چه کار میشه کرد؟ با الکترونیکی کردن پروسهها (از جمله پروسه ارائه خدمات پشتیبانی یا پاسخ به سوالات مشتریان) تعداد و مدت تماسهای تلفنی رو کم کنید. مثلاً بخش بازرگانی شرکت میتونه بیاد و کاتالوگهای الکترونیکی از محصولات درست کنه، یا برای ارائه خدمات پشتیبانی به مشتریانتون میتونید از یک سیستم تیکت استفاده کنید. یا مثلاً اطلاعات مشتریان رو در یک نرمافزار مدیریت ارتباط با مشتریان (CRM) وارد کنید تا لازم نباشه هر دفعه اونها رو از یک نفر (مثلاً منشی شرکت) بپرسید. این اطلاعات میتونه شامل اطلاعات تماس یا حتی اطلاعات لازم برای ریموت زدن به سرورهای مشتری باشه
دیگه چی؟ تا جایی که امکانش هست جلسات کاری درون سازمانی رو به بعد ساعت اداری موکول کنید، در واقع کاری کنید که در ساعت اداری فقط کار انجام بشه. فراموش نکنید که جلسات کاری میتوانند اتلاف وقت باشند (این نوشته رو هم بخونید تا ببینید چه کار میشه کرد تا جلسات کاری اتلاف وقت نباشند)
و دیگه؟ تذکر.
درسته، تذکر بدید. توی یک کتابخونه اگر بلند صحبت کنید دیگران با گفتن هیس به شما تذکر میدن که اینجا کتابخونه هست. شما هم به دوستان و همکارانتون که آرامش محیط کار رو خواسته یا ناخواسته بهم میزنند تذکر بدید.