اندر احوالات یک تیم اسکالا

می خوام از زبان آقای امیر کریمی مدیر فنی تیمی که در حدود یک ماهه دارم باهاشون همکاری می‌کنم مطلبی را نقل قول کنم. البته قبلش توضیح بدم که من در این تیم بر روی یک پروژه back-end با زبان اسکالا کار می کنم  و این نقل قول توضیحاتی در مورد یک تیم نسبتاً موفق هست که با اسکالا کد می‌زنند و اما نقل قول (البته من از خود آقای کریمی اجازه کتبی برای انتشار دارم):

ما ساختارمون منظم نیست و Code Review مون هم ضعیفه ولی به طور کلی مشکل خاصی نداریم که مستقیم ناشی از اسکالا باشه. تا حالا نشده یکی از بچه‌ها یه کدی رو ببینه و بره هوا بگه یا یا ابوالفضل این دیگه چه کدیه؟ معنیش چیه و این چیزا. همه چیز آروم و خوبه تقریباً.

بیشترین مشکل همون نیروی انسانی هست که خدا رو شکر فعلا حل شده و قدرتمون بیشتر شده و کارها رو با سرعت خیلی بیشتری انجام میدیم. داریم Jenkins رو هم را میندازیم که متأسفانه بخاطر تحریم و اینها نصبش داره اذیت میکنه. برای بالا بردن کیفیت هم فعلا فقط یه مکانیزم داریم اون هم اینه که وقتی بچه‌ها Merge Request میفرستن من review میکنم و اگر مشکلی ببینم یا نکته‌ای، بهشون میگم و اصلاح میکنن. Pair Programming هم خیلی کمک میکنه

همیشه سعی میکنم همه افراد تیم در جریان همه اتفاقات باشن این سیاست باعث پایین آوردن ریسک منابع انسانی میشه مثلا اگر یکی از اعضای تیم کم بشه و یه نفر دیگه جاش بیاد مشکل خاصی نخواهیم داشت و بعد از یک هفته به روال عادی بر میگردیم. ما یه تیم کوچیک ولی نسبتاً قوی هستیم.

در مورد کیفیت کد، ایده آل نیست ولی من راضی هستم مخصوصاً که از اول همیشه برای همه چی تست داشتیم و این خیلی کمکمون کرده. معمولاً هر مشکلی توی برنامه پیش میاد از سمت ما نیست و یا Logic ایراد داشته یا سمت Front یه مشکلی داشتند و این خیلی حال میده! کاملاً مشخصه کد ما Stable و محکم هست و در عین حال سرعت کارمون خوبه.

جالبه که هر موقعه Refactor اساسی داریم، برای ما خیلی خیلی راحتتر و سریعتر هست تا بچه‌های تیم‌های Front و ما هیچوقت ترسی از این بابت نداریم و به سرعت تغییرات رو با کیفیت بالا انجام میدیم.

نکته جالب اینه که تیم ما کلا کمتر ۵۰٪ هفته رو حضور داره و غیر حضوری هم کار نمیکنیم. سه نفر از ما، یک روز در میون میاییم و یک نفر تقریبا یک روز در هفته میاد. یعنی روی هم رفته میشیم ۱۰ نفر هفته به عبارتی از نظر زمانی برابر با دو تا آدم فول تایم هستیم ولی به نظر من خروجی تیممون خیلی بیشتر از دوتا آدم فول تایم هست.

ما کلا یه سرور بیشتر نداریم واسه همین Deployment خیلی سخت نبوده ولی همینکه بدون حضور همیشگی، همیشه سرور رو آپ نگه داشتیم در عین حال که توسعه داریم سرور تقریباً همیشه آپ بوده، راضی کننده هست.

یه نکته خیلی خوب اینه که به نظر من اگر کسی ندونه ما با اسکالا کار میکنیم یا جاوا فکر میکنه با جاوا کار میکنیم. تا حالا نشده به خاطر اسکالا یه کاری رو دیرتر انجام بدیم یا گیر کنیم یا طول بکشه یا هر چی. حتی برعکس باعث شده سریعتر و با کیفیت‌تر کارهای خفنتری انجام بدیم. مثلا کل کدهای ما ۱۰۰٪ Async هست و اگر کسی بخواد معادل همین کد رو با جاوا بزنه پیر میشه و کلاً نمیتونه از کتابخونه‌های معروفی که وجود داره به راحتی استفاده کنه و میتونید تصور کنید که چه فرق فاحشی بین کد Async و غیر Async در کارایی وجود داره.

بعضی وقتا میان به ما میگن چرا اسکالا؟ برای این پروژه زیادی نیست؟ یا امثال این. ولی من با قطعیت میگم که اسکالا نه تنها باعث نشده که هزینه‌ها اضافه بشن بلکه هزینه‌ها کاهش پیدا کردن و کیفیت کار بالاتر رفته. تنها ریسکی که این وسط وجود داره اینه که یه دفعه برای همه اعضای تیم یه مشکلی پیش بیاد، مثلا همه با هم یکجا بمیریم 😀 بعد دوباره جمع کردن یه تیم اسکالا سخته :))) واسه همین مثل مؤسسان کوکاکولا همه مون با هم سوار یه هواپیما نمیشیم 😀


پاسخ دهید

Your email address will not be published / Required fields are marked *