مهمترین مشکل بررسی کد (Code review)، رفتوبرگشت غیرهمزمان پرسشوپاسخهای بسیار دشوار است. کاری غیرموثر و ناکارآمد که باعث ناامیدی افراد نیز میشود.
البته رویکرد دیگری هم وجود دارد که به کمک آن میتوان بررسی کد را با حداکثر سرعت ممکن انجام داد. با استفاده از این رویکرد، کار بررسی کد میتواند ظرف یک هفته انجام بگیرد. بله واقعیت دارد، اغراق نمیکنیم.
بررسی کد چه معایبی دارد؟
- حلقه بازخورد (feedback loop) طولانی
- انتظار
- تعداد زیادی کار ناتمام
- ارتباط کتبی به زمان زیادی نیاز دارد.
هدف از بررسی کد چیست؟
- بهاشتراکگذاشتن دانش
- تقسیم مسئولیت
- بهبود ساختار کد
- یادگیری
یک بررسی کد خوب تمام این جنبهها را پوشش میدهد. اما بررسی کد فقط یک ابزار است، اگر بتوانیم ابزار بهتری پیدا کنیم، میتوانیم روش بررسی کد را کنار بگذاریم.
رویکرد Mob
برنامهنویسی Mob به این معنی است که همه اعضای تیم در یک زمان در مقابل یک صفحه نمایش حضور دارند، یا از راه دور روی یک صفحه نمایش مشترک کار میکنند. برای مثال یک تیم۴ نفره که ۵ تا ۶ ساعت در روز به سبک Mob کار میکنند، ابتدا درباره کار تصمیم میگیرند و در هر جلسه گرداننده کار تعویض میشود.
جلسه به این معنی است که یک گرداننده وجود دارد، یعنی کسی که تایپ و کلیک را انجام میدهد، و یک هدایتگر وجود دارد یعنی کسی که به گرداننده میگوید چه کاری انجام دهد. ۲ عضو دیگر تیم توجه خود را متمرکز میکنند و تنها زمانی که هدایتگر در مسیر اشتباهی قرار میگیرد، به او هشدار میدهند. هدایتگر به مدت 3 دقیقه هدایت را برعهده دارد و پس از ۳ دقیقه، چرخش صورت میگیرد.
چرخش به این معنی است که گرداننده که حالا کار هدایتگری را انجام میدهد باید گام بعدی را بداند، هدایتگر استراحت میکند و یکی از آن دو نفر دیگر وظیفه گردانندگی را برعهده میگیرند. پس از ۳ دقیقه یک چرخش دیگر و دوباره…
این سبک از چرخش به نوعی فشرده و سخت است. شما باید همیشه دقت و توجه داشته باشید، چون در عرض چند دقیقه باید هدایت را برعهده بگیرید و اگر هیچ ایدهای نداشته باشید کار بهخوبی پیش نمیرود.
مزایای Mob؛ اهداف بررسی کد محقق میشود
- بهاشتراکگذاشتن دانش که فوراً انجام میشود؛ هر یک از اعضای تیم یک روند ذهنی را دنبال میکنند و دلیل انجام کارها را میدانند.
- تقسیم مسئولیت بهطور کامل صورت میگیرد؛ افراد مسئولیت هر آنچه که تولید میکنند را به عهده میگیرند، چون هر زمان که بخواهند میتوانند بگویند «من مخالفم» یا «من ایده بهتری دارم».
- ساختار کد مورد توافق همه اعضای تیم است؛ بنابراین بین اعضای تیم هماهنگی وجود دارد و بهترین کاری است که میتوانند ارائه دهند.
- یادگیری هم فوری و هم فشرده و سخت است؛ اگر هدایتگر خوب باشد، نهتنها میگوید که چه کاری باید انجام شود، بلکه نحوه انجام آن را نیز بهدرستی و بهشکل موثر به دیگران میگوید.
در مجموع، Mob از هر لحاظ در مقایسه با بررسی کد، بهتر است.
چه زمانی Mob میتواند ناکارآمد باشد
شاید برای چند هفته اول تصور کنید که Mob برای شما چندان کارایی ندارد و این موضوع قطعاً درست است آن هم زمانی که تیم در حال حلوفصل مسائل و رسیدن به یک توافق هستند یا زمانی که اعضای تیم هنوز تجربه کار با زبانها و ابزارها را ندارند.
اما زمانیکه تیم هفتههای ابتدایی را پشت سر بگذارد، وضعیت بسیار متفاوت میشود. حل کردن مشکلاتی که یک برنامهنویس بهتنهایی هنگام کار با آنها مواجه میشود ممکن است یک ساعت یا حتا چند ساعت زمان ببرد، اما در قالب یک کار تیمی، حل کردن همین مشکلات با توجه به راهحلها یا ایدههایی که از سوی دیگران ارائه میشود، ممکن است فقط چند دقیقه زمان ببرد.
هر یک از اعضای تیم ممکن است در رشتههای مختلف متخصص باشند. برای مثال، یکی ممکن است در پایگاه داده خوب باشد و دیگری در تصمیمگیری، بنابراین هنگامی که فرد هدایتگر به مشکل برمیخورد، با کمک این افراد «متخصص» میتواند بر موانع غلبه کند و این امر خیلی فوری اتفاق میافتد.
الزامات رویکرد Mob
برنامهنویسی Mob مناسب همه نیست.
- اول این که اگر همه اعضای تیمتان نمیتوانند همزمان حاضر باشند (البته دورکاری مشکلی ندارد)، این روش کار نمیکند.
- Mob به مهارتهای ارتباطی خوبی نیاز دارد. در این شیوه هیچ جایی برای افراد منفعل و تهاجمی وجود ندارد. اگر آدم مغروری هستید و میخواهید نشان دهید از همکاران خود بهتر هستید، Mob مناسب شما نیست.
- Mob مستلزم صبر و احترام است؛ هر آدمی ممکن است همیشه در بهترین حالت و شرایط نباشد. اگر بهدنبال راهحل سریع هستید و علاقهای به رهبری و همکاری ندارید، شیوه Mob مناسب شما نیست، زیرا همکاران شما شرایط بهتری پیدا نمیکنند و تیم پیشرفت نمیکند.
اگر میتوانید همزمان (حتا از راه دور) با هم باشید، صبور و به رویکردهای جدید علاقهمند هستید و دیدگاه مشابهی با همکارانتان دارید، Mob کاملا مناسب شماست!
تفاوت بررسی کد و Mob
در شیوه بررسی کد، برنامهنویس ممکن است ساعتها برای حل یک مشکل تلاش کند، سپس راهحل برای بررسی کد ارسال میشود و باید مدتی صبر کند تا بازبین تغییراتی را پیشنهاد دهد. برنامهنویس ممکن است راهحل خود را استدلال کند یا بخواهد که کد را تغییر دهد. بعد از ۲ تا ۵ روز برنامهنویس یک کد آماده برای ادغام دارد، اما پس از آن باید تضادهای ادغام را حل نماید! در برنامهنویسی Mob چنین چیزی وجود ندارد.
- با وجود تجربیات اعضای تیم کشمکشها محدود میشود.
- انتظاری وجود ندارد.
- استدلال/ تغییر کد فورا انجام میشود.
- تضادهای ادغام بسیار کمتر هستند.
Mob مزایای بسیار بیشتری دارد، اما ما به مهمترین آنها یعنی بهبود رابطه فرد با همکارانش پرداختیم. Mob کمک زیادی به برنامهنویسانی میکند که ارتباط اجتماعی قویتری دارند. بهطور خلاصه، برنامهنویسی بهشیوه Mob بهطور چشمگیری حلقه بازخورد را کوتاه میکند و نتایج فوقالعادهای دارد.
به این مطلب چند ستاره میدهید؟(امتیاز: 3 - رای: 6)
- منبع: medium
- مترجم: مهسا قنبری