مهارتهای کار تیمی نرمافزار قسمت سوم: احترام به وقت دیگران
هر کسی یک رئیسی داره که منتظر تموم شدن کارشه. توی تیمهای نرمافزاری هم مهمه که به وقت هم احترام بگذاریم و کمتر وقفه توی کار ایجاد کنیم
تو را آنها چشم در راهند!
در یک تیم نرمافزاری در هر نقشی که باشید، یک عده چشم به راه کار شما هستند. ممکن است مشتری باشد یا product owner در یک تیم scrum یا حتی هم تیمیتان که خروجی کار شما را در برنامهاش به کار خواهد گرفت.
برای استفاده بهتر از وقت و همینطور تعیین تکلیف زمانبندی اجرای پروژهها برای مشتریان، عموماً تیمهای نرمافزاری از روشهای برنامهریزی استفاده میکنند، یا از گانت چارتهای نرمافزارهایی مثل Microsoft Project یا از روشهای مثل برنامهریزی اسپرینتها در یک تیم اسکرام. همه اینها که گفتم برای این بود که باور کنیم که وقت یک عضو تیم نرمافزاری از پیش برنامهریزی شده، یعنی باید صرف کار مشخصی شود.
در این شرایط همیشه عواملی بر زمانهای برنامهریزی شده تاثیر میگذارند. این عوامل را میشود به دو دسته عوامل درون تیمی و عوامل خارج از تیم تقسیم کرد. صحبت من در این نوشته درباره عوامل درون تیمی است.
تست شماره 8 در تست جوئل میپرسد که "آیا برنامهنویسان شما محیط آرامی برای کار کردن دارند؟" و بعد توضیح میدهد که چرا لازم است هر برنامهنویس برای خودش یک قلمرو (zone) داشته باشد و هر گونه وقفه (interrupt) باعث میشود برنامهنویس حداقل برای 15 دقیقه تمرکزش را از دست بدهد.
حالا عبارات زیر را که عمدتاً حین کدنویسی از سوی هم تیمیها بررسی کنید و ببینید به نظرتان آشنا نیست؟
- اون کدی که برای پارس رشتههای یونیکد نوشته بودی رو از کجا میتونم ببینم؟
- میخوام از محتوای فایل xml کوئری بگیرم. بلدی؟ کار کردی؟
- این باگ رو نمیتونم برطرف کنم، تو هم بیا یک نگاهی بهش بنداز.
- نظرت درباره دیزاین این بخش از برنامه چیه؟
و ده ها نمونه مشابه دیگر. جواب اغلب سوالات فنی (و گاه غیرفنی) را میتوان با یک جستجوی ساده در گوگل به دست آورد یا اگر خیلی نگران دوباره کاری در حوزههای مشترک هستیم و نمیخواهیم راهی که تجربه شده یا باگی که برطرف شده، دوباره مورد بررسی قرار بگیرد، از مکانیزمی برای اشتراک گذاری دانش استفاده کنیم.
واقعیت این است که هیچ وقت نمیشود تعداد وقفههای روزانه یک عضو تیم نرمافزاری را به صفر رساند، اما میتوان آنها را مدیریت کرد. مثلاً میتوان زمانی را در ساعات خاصی مثل قبل یا بعد از ناهار برای پاسخگویی اعضای تیم به هم در نظر گرفت تا سوالات غیر بلاکر را آن موقع بپرسد یا در موارد کم اهمیتتر از ایمیل داخلی استفاده کرد.
نکته مهم این است که باور کنید وقت همه همتیمیهای شما محترم است. برگردیم به ابتدای نوشته، جایی که گفتم در یک تیم نرمافزاری در هر نقشی که باشید، یک عده چشم به راه کار شما هستند. اگر قرار باشد شما از تایم هم تیمیتان برای پیشبرد کارتان استفاده کنید تا کارتان را زودتر به چشم به راههای خودتان برسانید ولی هم تیمی شما به خاطر وقت گذاشتن برای کاری که در حوزه وظایفش نبوده، چشم به راههایش را منتظر بگذارند در نهایت سودی نصیب تیم نمیشود.
درباره شرایط محیط کار در سری نوشتههای شرح تست جوئل بیشتر صحبت خواهم کرد.