وظایف یک CTO در تیم‌های کوچیک

یک مسئله‌ مهم توی تیم‌های کوچیک اینه که یک مدیر فنی یا CTO چه وظایفی به عهده داره. من مدتی هست که دنبال جواب این سوال بودم و الان به دیدگاه راجب این موضوع رسیدم. همین اول باید بگم این نظرات شخصی من هست که با مطالعه بلاگ‌های بقیه و گفتگو با افراد با تجربه بدست اومده.

اولین نقشی که یک مدیر فنی میتونه به عهده بگیره اینه که نقش تسهیل‌گر توی تصمیمات فنی تیم داشته باشه. اینطوری که اگر تیم خواست در مورد معماری مورد استفاده، تکنولوژی مورد استفاده یا چگونگی ارتباط بین محصولات تصمیمی بگیره (بدون اینکه نقش رییس رو پیدا کنه) به تیم کمک کنه به انتخاب درست برسه.

نقش تسهیل‌گر اینطور نیست که هیچ نظری نده. اینطوری هست که با دانش و رودمپی که از محصول میدونه، نظراتی میده که به تیم در مورد انتخاب درست کمک بشه.

دومین نقش و به نظر من اصلی ترین نقشی که میتونه به عهده بگیره اینه که برای تیم فنی پلن رشد داشته باشه. چه پلن رشد برای اعضای تیم فنی، چه پلن رشد برای محصولات فنی.

رشد بچه‌ها اینطوریه که برنامه‌ای برای ارتقا دانش فنی‌شون داشته باشه یا با روش‌هایی مسئولیت پذیری بچه‌هارو نسبت به کدی که می‌زنن بیشتر کنه. مسئولیت پذیری یعنی مثلا کدی که زده میشه با تست نویسی گارانتی بشه یا اطمینان از اجرای بقیه چرخه توسعه نرم افزار.

پلن رشد محصولات فنی چطوریه؟ به طور خلاصه بهینگی محصولات و سرویس‌ها

یک مدیر فنی باید دید کاملی نسبت به کل نرم‌افزارهای توسعه داده شده داشته باشه. باید بدونه وضعیت هر سرویس چجوری هست، رنگ وضعیت هر سرویس یا حتی رنگ وضعیت بخش‌های هر سرویس چی هست، کجای سیستم سبز یا زرد یا قرمز هست، کجای سیستم کی کند میشه، کجای سیستم از نظر امنیتی مهم‌تر هست و باید براش فکر بیشتری بشه و یا گلوگاه‌های سیستم کجاست و …

حالا سوال پیش میاد چطور به این دید برسه؟

با مانیتورینگ و رصد کل سیستم. بهترین جایی که نرم‌افزار با ما صحبت میکنه، آمار و لاگ‌هایی هست که تولید میکنه. در واقع خود نرم‌افزار به ما میگه کجا مشکل وجود داره. اونجایی که نرم‌افزار زیر بار قرار میگیره، گلگوگاه‌های سیستم خودشون رو نشون میدن و مدیر فنی میتونه برای مرحله های بعدی رشد، برنامه برای بهینگی داشته باشه.

یک جای دیگه که میتونه به دید مدیر فنی کمک کنه جلسات روزانه اسکرام هست. وقتی بچه‌ها در مورد چجوری حل تسک‌هاشون صحبت می‌کنن، بهترین جا هست که مدیر فنی درگیر جزییات بشه و از نحوه پیاده‌سازی آگاه بشه؛ بدون اینکه یک خط کد بخونه.

اسکرام رو با مشارکت پیش ببریم.

شاید شما هم توی تیم‌تون با این مشکل مواجه باشین که بچه‌های توسعه دهنده اونطوری که مناسب هست با تسک درگیر نمیشن یا احساس مسولیت نسبت به تسک یا اسپرینت ندارن. این مسئله، یکی از چالش‌های ما در تیم خودمون بود.

برای حل این مسائل من با چند نفر صحبت کردم و نهایتا به این نتیجه رسیدم که با رعایت ۳ نکته این مسئله می‌تونه به قدر قابل توجهی حل بشه.

اول اینکه شکستن استوری‌ها توسط خود بچه‌ها انجام بشه. به این صورت که به بچه‌ها به جای راه‌حل، مسئله رو بدیم. اینجوری بچه‌ها مسئولانه شروع به ریز کردن تسک ها می‌کنن و سعی می‌کنن راه‌حل هایی که به ذهنشون میرسه رو به تیم منتقل کنن.

دوم اینکه ابتدای اسپرینت به کسی تسک اختصاص ندیم. بچه ها باید در طول اسپرینت تسک‌هایی که علاقه دارن انجام بدن رو بردارن. اینجوری ما بچه‌هارو از هم جدا نکردیم که هرکسی بره تسکی که داره رو خودش انجام بده و اخر اسپرینت بیاد تحویل بده.

بچه ها برای توسعه تسک هاشون نیاز به صحبت و مشارکت با بقیه اعضای تیم دارن. این اتفاق باید توی جلسات daily بیفته. چطور؟ بچه‌ها در جلسه daily در مورد راه‌حل هاشون برای تسک روز قبل توضیح میدن. جلسه daily برای توضیح بورد نیست. چون بورد همیشه در دسترس هست و نیازی به توضیح نداره. اینطوری با ارائه راه‌حل‌ها مشارکت تیمی بچه‌ها هم در جلسه daily افزایش پیدا می‌کنه.

و سوم اینکه بچه ها تخمین story-point رو خودشون با همکاریِ هم انجام بدن. به این صورت که همه تخمین‌شون رو اعلام کنن و روی این تخمین گفتگو انجام بشه و نهایتا تیم به یک جمع‌بندی روی تخمین برسه.

چگونه با نیروی ریموت کار کنیم؟

چند روز پیش با خانم فرزام صحبت داشتم برای نحوه تعامل با نیروی ریموت. چندین نکته رو گفتن که اگر این‌هارو رعایت کنیم احتمالا تعامل بهتری با نیروی ریموت داریم.

اول اینکه بدونیم این یک انتخاب هست که نوع همکاری ما ریموت هست. باید ماینست کار ریموت رو داشته باشیم. باید بدونیم حتما برای مشکلاتمون راهی وجود داره. این انتخاب یکسری مضایا داره یکسری معایب. مضایایی که داره اینه که گستره جذب نیرومون کل ایران هست و محدود به شهر خودمون نیستیم، ما می‌تونیم تلنت‌های بهتری رو پیدا کنیم و نیرویی پیدا کنیم که به خواسته‌های ما شبیه‌تر باشه. ولی معایبی هم داره مثل اینکه نیروی ریموت حس تعلق کمتری به تیم داره، یا تعامل‌ش با تیم سخت تر هست یا ازین قبیل مشکلات.

برای حل مشکلات این سیستم باید یکسری فرایندهای درون تیمی درست کنیم. من چندتاشون رو می‌نویسم ولی اینها یکسری رفتارهای کلی هست و برای درون شرکت خودتون باید اینهارو بومی سازی کنید.

  • جلساتتون رو حتما به صورت تصویری برگزار کنید. این تصویری دیدن همدیگه باعث میشه بچه‌ها حس تعلق بیشتری باهم داشته باشن.
  • اگر از متد اسکرام استفاده می‌کنید احتمالا جلسات دیلی دارید، بیاید قبل جلسات دیلی با بچه‌های ریموت یک مقداری راجب چیزهایی غیر کار صحبت کنید. موضوعاتی مثل اب‌و‌هوا، مسائل انسانی فردی یا هرچیزی که هرروز با بقیه همکاران داخل شرکت خودتون حرف می‌زنید.
  • یکی از ابزارهای مهم ارتباط درون تیمی اسلک هست. توی اسلک به ازای هر epic یک چنل مخصوص داشته باشید و هرکسی که به اون epic مربوط هست رو داخلش اضافه کنید. میتونید برای راحتی کار حتی id جیرای اون epic رو هم اول چنل اضافه کنید.
  • یک سیستم afk راه بندازید. این سیستم اینجوریه که اگر یکی از بچه‌ها خواست برای چند دقیقه نباشه توی یکی از چنل‌های اسلک که مخصوص این کار درست کردیم میاد میگه من برای n دقیقه نیستم.
    اینجوری بقیه بچه‌ها میدونن که هرکسی کی هست و کی نیست. از طرفی باعث میشه ادم‌ها خودش، خودشون رو بررسی کنن که چقد حواسشون جمع بوده و سرکار بودن و چقدر نبودن.
  • کلا جلسات دیلی برای این نیست که بخوایم از ادم‌ها جواب پس بگیریم. برای اینه که بچه‌ها اگر مانعی دارن اون مانع رو مطرح کنن و بقیه در جریان باشن تا اگر می‌تونن کمکی بکنن
    ۳تا سوال رو باید جواب بدیم:‌ اول اینکه امروز قراره چیکار بکنی – دوم اینکه اگر مانعی برای کارای امروزت پیش‌بینی میکنی بگی – و سوم اینکه دیروز چیکار کردی و اگر اونجوری که میخای پیشرفت نداشتی چه چیزی باعث‌ش بوده
scrum team
  • یادمون باشه اسکرام اومده که تیم، خودش خودش رو مدیریت کنه. اومده که تیم‌های خود مدیریت کن درست کنه.
    ما اگر تسک‌هارو تا میتونیم در حد امکان ریز کنیم به شکلی که هر تسک فقط برای یک روز باشه، دوتا دستاورد مهم داریم: اول اینکه اگر کاری اون طوری که می‌خوایم پیشرفت نداشته باشه زودتر اینو می‌فهمیم و دوم اینکه وقتی توی جلسات دیلی همه یک تسک رو تموم کردن و رفتن سراغ تسک دوم، بچه‌هایی که عقب هستن و نتونستن تسک‌شون رو تموم کنن حسی میده که سریع تر تسک‌م رو تموم کنم تا به بقیه دوستام برسم
  • سعی کنیم چالش‌هارو خیلی شفاف بگیم و از هم تشکر کنیم که چالش رو به ما یاداوری کردن.
  • حتما راه ارتباطی جایگزین داشته باشیم و این خیلی شفاف باشه
    مثلا اگر فلانی بعد ۱۵ دقیقه توی اسلک جواب نداد بهش اسمس بزنیم و بازهم اگر جواب نداد بعد زنگ بزنیم یا از این قبیل گاین‌لاین ها
پومودورو

 

  • و در اخر حتما حتما از تکنیک پومودورو استفاده کنیم.

امیدوارم از این تکنیک‌ها استفاده کنید و تعامل بهتری با همکاراتون داشته باشید.

اگر شماهم نکته‌ای داشتید خوشحال میشم توی کامنت‌ها برام بنویسید.