
چند سال پیش بسیاری از شرکتها دورکاری را یک مزیت جانبی میدانستند، اما اکنون برای بسیاری از کسبوکارها به مدل اصلی همکاری تبدیل شده است. شرکتهای نرمافزاری، استارتاپها، تیمهای محصول و حتی سازمانهای بزرگ، پروژههای خود را با اعضایی که در شهرها و کشورهای مختلف پراکنده هستند پیش میبرند.
با این حال، دورکاری فقط انتقال کار از دفتر به خانه نیست. زمانی که اعضای تیم در یک محیط فیزیکی مشترک حضور ندارند، چالشهای جدیدی در زمینه ارتباطات، هماهنگی، اعتمادسازی، مدیریت عملکرد و حفظ انگیزه به وجود میآید.
در چنین شرایطی، نقش رهبر فنی یا تکلید بسیار فراتر از تصمیمگیریهای تکنیکی میشود. او باید بتواند تیم را همراستا نگه دارد، فرآیندها را بهینه کند، موانع ارتباطی را کاهش دهد و فرهنگی ایجاد کند که افراد حتی در فاصله صدها کیلومتری نیز احساس تعلق و همکاری داشته باشند.
در این مقاله به بررسی اصول رهبری تیمهای فنی در پروژههای دورکاری میپردازیم و تکنیکهایی را مرور میکنیم که به افزایش بهرهوری، کیفیت توسعه نرمافزار و رضایت اعضای تیم کمک میکنند.
در تیمهای حضوری بسیاری از مشکلات به صورت طبیعی حل میشوند.
اگر توسعهدهندهای درباره یک تسک سوال داشته باشد، کافی است چند قدم راه برود و با همکارش صحبت کند. اگر اختلاف نظری در مورد معماری وجود داشته باشد، جلسهای کوتاه کنار وایتبرد برگزار میشود.
اما در تیمهای ریموت:
ارتباطات عمدتا غیرهمزمان هستند.
برداشت اشتباه از پیامها بیشتر رخ میدهد.
افراد احساس انزوا میکنند.
هماهنگی زمانبندی دشوارتر میشود.
اعتمادسازی زمان بیشتری نیاز دارد.
به همین دلیل رهبر تیم باید فرآیندهای مشخصتر و ساختاریافتهتری نسبت به تیمهای حضوری داشته باشد.
بسیاری تصور میکنند وظیفه تک لید فقط تصمیمگیری درباره کد و معماری است.
در حالی که در پروژههای ریموت وظایف او شامل موارد زیر نیز میشود:
هدایت فنی پروژه
ایجاد شفافیت
مدیریت ارتباطات
حل تعارضها
منتورینگ اعضای تیم
حفظ انگیزه تیم
مدیریت ریسکهای پروژه
توسعه فرهنگ همکاری
در واقع یک رهبر فنی موفق باید هم مهارتهای تکنیکی قوی و هم مهارتهای نرم یا سافت اسکیل قدرتمندی داشته باشد.
بزرگترین دشمن تیمهای دورکار ابهام است.
هرچه ابهام بیشتر باشد:
تسکها اشتباه انجام میشوند.
زمان توسعه افزایش مییابد.
تعداد جلسات بیشتر میشود.
کیفیت خروجی کاهش پیدا میکند.
رهبران موفق تلاش میکنند تمام اطلاعات پروژه شفاف و مستند باشند.
مواردی که باید مستند شوند:
اعضای تیم باید بدانند:
چرا این پروژه ساخته میشود؟
چه مشکلی را حل میکند؟
اولویتهای کسبوکار چیست؟
مستندات باید شامل:
ساختار پروژه
دیاگرام سرویسها
وابستگیها
تصمیمات معماری
باشد.
اعضای جدید باید بدانند:
چگونه کد بزنند؟
Pull Request چگونه ثبت شود؟
کد ریویو چگونه انجام شود؟
فرآیند ریلیس چیست؟
یکی از اشتباهات رایج رهبران فنی این است که ارتباطات را به حال خود رها میکنند.
ارتباطات در تیمهای ریموت باید طراحی شوند.
ارتباطات و جلساتی که به صورت همزمان باید همه در جلسه حضور داشته باشند.
مانند:
دیلی
اسپرینت پلنینگ
جلسه مباحثه معماری
رترو
نیاز به جلسات همزمان ندارد ولی معمولا در اولین فرصت بررسی میشود.
مانند:
اسلک
دیسکورد
مترموست
Teams
ایمیل
مستندات
تیمهای موفق تلاش میکنند وابستگی به جلسات را کاهش دهند و اطلاعات را به صورت مکتوب ثبت کنند.
قاعده طلایی:
اگر اطلاعات قرار است بیش از یک بار استفاده شود، آن را مستند کنید.
یکی از بزرگترین اشتباهات مدیران در دورکاری، تمرکز بیش از حد روی زمان حضور افراد است.
برخی مدیران دائما:
آنلاین بودن افراد را چک میکنند.
زمان پاسخگویی را اندازه میگیرند.
فعالیت صفحه نمایش را مانیتور میکنند.
این رویکرد معمولا نتیجه معکوس دارد.
رهبران حرفهای روی خروجی تمرکز میکنند:
کیفیت کد
تحویل به موقع
رفع باگها
تحقق اهداف اسپرینت
معیار اصلی باید ارزش ایجاد شده باشد، نه تعداد ساعات پشت سیستم.
اعتماد مهمترین سرمایه یک تیم دورکار است.
بدون اعتماد:
افراد اطلاعات را پنهان میکنند.
مشکلات دیر گزارش میشوند.
همکاری کاهش مییابد.
روحیه تیمی ضعیف میشود.
برای ایجاد اعتماد:
اگر توسعهدهندهای باگی ایجاد کرده است، به دنبال یادگیری باشید نه سرزنش.
اگر پروژه مشکل دارد، آن را پنهان نکنید.
میکرومنجمنت بزرگترین دشمن اعتماد است.
یکی از دلایل کاهش بهرهوری در تیمهای دورکار، جلسات بیش از حد است.
جلسات باید:
هدف مشخص داشته باشند.
خروجی مشخص داشته باشند.
زمان محدود داشته باشند.
سه سوال ساده:
دیروز چه کاری انجام دادم؟
امروز چه کاری انجام میدهم؟
چه مانعی دارم؟
مدت زمان ایدهآل:
۱۰ تا ۱۵ دقیقه.
در تیمهای حضوری، دانش اغلب به صورت شفاهی منتقل میشود.
اما در تیمهای ریموت:
اگر مستند نشده، وجود ندارد.
مستندات مهم شامل:
معماری
APIها
استانداردهای کدنویسی
تصمیمات فنی
Runbookها
Incident Reportها
است.
Runbook یعنی یک راهنمای مرحلهبهمرحله برای انجام یک عملیات فنی.
معمولا شامل دستورالعملهایی است که توضیح میدهد وقتی یک اتفاق مشخص افتاد دقیقا چه کارهایی باید انجام شود.
مثالها:
نحوه ریاستارت کردن یک سرویس
مراحل بازیابی دیتابیس بعد از خرابی
روش رفع خطای یک سرویس در سرور
مراحل Deploy کردن یک نسخه جدید
Incident Report یعنی گزارش یک حادثه یا اختلال در سیستم.
بعد از اینکه یک مشکل مهم در سیستم رخ میدهد (مثلا قطعی سرویس)، تیم فنی گزارشی تهیه میکند که توضیح دهد:
چه اتفاقی افتاد
چه زمانی رخ داد
علت چه بود
چه تاثیری روی کاربران داشت
چگونه مشکل حل شد
چه اقداماتی انجام میشود تا دوباره تکرار نشود
این مستندات باعث میشوند وابستگی به افراد کاهش یابد.
در پروژههای دورکار، کد ریویو نقش حیاتی دارد.
یک کد ریویو خوب:
کیفیت کد را افزایش میدهد.
دانش را بین اعضا توزیع میکند.
باگها را زودتر کشف میکند.
استانداردهای تیم را حفظ میکند.
به جای نوشتن:
این اشتباه است.
بنویسید:
آیا میتوانیم این قسمت را با این رویکرد سادهتر کنیم؟
هدف باید یادگیری باشد نه انتقاد.
بسیاری از مشکلات تیمهای دورکار به دلیل کمبود بازخورد شکل میگیرند.
اعضا باید بدانند:
چه چیزی را خوب انجام میدهند.
چه چیزی نیاز به بهبود دارد.
بازخورد باید:
مشخص باشد.
محترمانه باشد.
به موقع باشد.
مبتنی بر رفتار باشد.
نه شخصیت افراد.
Burnout در تیمهای ریموت بسیار رایج است.
چرا؟
زیرا مرز بین خانه و محل کار کمرنگ میشود.
نشانهها:
کاهش انگیزه
افت کیفیت کد
خستگی مزمن
بیحوصلگی
کاهش مشارکت
رهبر تیم باید این علائم را زود تشخیص دهد.
یکی از بزرگترین چالشهای دورکاری، از بین رفتن حس تعلق است.
افراد ممکن است احساس کنند فقط مجموعهای از تسکها هستند.
برای ایجاد فرهنگ تیمی:
گاهی فقط برای گفتگو.
مثلا:
انتشار نسخه جدید
رسیدن به هدف اسپرینت
حل یک مشکل پیچیده
قدردانی عمومی انگیزه تیم را افزایش میدهد.
جیرا
ترلو
ClickUp
Linear
کانفلوئنس
نوشن
GitBook
اسلک
مایکروسافت تیمز
دیسکورد
گیت هاب
گیت لب
بیت باکت
گرافانا
پرومتئوس
Datadog
رهبران حرفهای فقط روی احساسات تکیه نمیکنند.
آنها از دادهها نیز استفاده میکنند.
شاخصهای مفید:
زمان بین شروع توسعه تا انتشار.
تعداد استقرارها در بازه زمانی مشخص.
درصد انتشارهایی که مشکل ایجاد میکنند.
میانگین زمان رفع خطا.
این معیارها تصویری دقیقتر از عملکرد تیم ارائه میدهند.
کنترل بیش از حد باعث کاهش اعتماد میشود.
جلسات زیاد تمرکز تیم را از بین میبرد.
دانش پروژه در ذهن افراد باقی میماند.
در بلندمدت باعث افزایش خروج نیروها میشود.
رهبر فنی باید روی انسانها نیز تمرکز کند.
یک رهبر فنی موفق:
شنونده خوبی است.
ارتباط موثر برقرار میکند.
اعتماد ایجاد میکند.
تصمیمگیری قاطع دارد.
توانایی منتورینگ دارد.
تعارضها را مدیریت میکند.
مستندسازی را جدی میگیرد.
دید محصولی دارد.
از داده برای تصمیمگیری استفاده میکند.
فرهنگ یادگیری مداوم ایجاد میکند.
با افزایش استفاده از مدلهای کاری ریموت و هیبرید، نقش رهبران فنی نیز در حال تغییر است.
رهبران آینده دیگر صرفا متخصصان تکنولوژی نخواهند بود، بلکه افرادی خواهند بود که بتوانند:
انسانها را مدیریت کنند.
فرهنگ سازمانی بسازند.
ارتباطات را تسهیل کنند.
فرآیندهای مقیاسپذیر طراحی کنند.
تیمهای توزیعشده جهانی را هدایت کنند.
توانایی رهبری از راه دور به یکی از ارزشمندترین مهارتهای صنعت نرمافزار تبدیل شده است.
رهبری تیمهای فنی در پروژههای دورکاری فقط مدیریت وظایف و پیگیری تسکها نیست. موفقیت یک تیم ریموت به توانایی رهبر در ایجاد شفافیت، اعتماد، ارتباطات موثر، فرهنگ همکاری و فرآیندهای پایدار وابسته است. رهبران فنی که بتوانند میان مهارتهای فنی و مهارتهای انسانی تعادل برقرار کنند، تیمهایی خواهند ساخت که حتی بدون حضور فیزیکی در یک دفتر، عملکردی منسجم، سریع و باکیفیت داشته باشند. در نهایت، ابزارها و تکنولوژیها مهم هستند، اما آنچه پروژههای دورکار را موفق میکند، نحوه هدایت انسانها و ایجاد یک فرهنگ کاری سالم و پایدار است.