Mehrdad Esmaeilpour
Mehrdad Esmaeilpour
خواندن ۵ دقیقه·۲ سال پیش

نت (نگهداری و تعمیر) پیشگیرانه در تیم‌های نرم‌افزاری

نت پیشگیرانه در تیم‌های کوچک
نت پیشگیرانه در تیم‌های کوچک


Fix it before it breaks


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

به طور خلاصه نت پیشگیرانه:

  • یه استراتژی فعال‌ه یعنی پیش از اینکه یه اتفاق کوچک تبدیل به یه مساله بزرگ بشه باهاش رو‌به‌رو می‌شیم.
  • روتین و چک‌لیست داره یعنی بر اساس یه برنامه از پیش تعیین شده پیش می‌ریم.
  • چک‌لیست کارهای نت پیشگیرانه رو میشه با سه پارامتر اصلی از هم تفکیک کرد: ضروری یا غیرضروری بودن، هرمی یا غیر هرمی و کارهای بازبینی محور یا تسک‌محور

نت پیشگیرانه چیه؟

یکی از نکات اصلی که نت پیشگیرانه رو از انواع دیگه استراتژی‌های نگهداری متمایز می‌کنه روتین بودن کارهاست. نگهداری تو یه زمان‌بندی از پیش تعیین‌شده انجام می‌شه تا اطمینان حاصل کنیم که ابزار درست کار می‌کنن و مشکلی براشون پیش نمیاد. بنابراین این روش بیشتر برای ابزاری مناسبه که این ویژگی‌ها رو داشته باشن:

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

کارهایی که باید برای نت پیشگیرانه انجام بدیم وابسته به ابزارمون‌ه. برای مثال، یه وسیله نیاز به تمیزکاری یا روغن‌کاری دوره‌ای داره یا نیازه که به شکل دوره‌ای قطعات داخلیش بازبینی و در صورت نیاز تعمیر یا تعویض بشن که کل دستگاه درست و دقیق کار کنه. نت پیشگیرانه فقط روی ماشین‌آلات و دستگاه‌ها کاربرد نداره و منابع آب، سیستم‌های الکتریکی و ... هم باید به شکل منظم بررسی بشن.

انواع نت پیشگیرانه

چک‌لیست کارهای نت پیشگیرانه رو میشه با سه پارامتر اصلی از هم تفکیک کرد: ضروری یا غیرضروری بودن، هرمی یا غیر هرمی و کارهای بازبینی محور یا تسک‌محور

ضروری یا غیر ضروری بودن کارها

به کارهایی که برای حفظ امنیت و سلامت بهشون نیازمندیم و انجام‌شون محدودیت زمانی داره، کارهای ضروری می‌گیم. کارهای ضروری رو نمی‌شه لغو کرد یا به زمان دیگه‌ای موکول کرد. از طرف دیگه کاری که بدون آسیب جدی یا کاهش کارایی میشه به زمان‌ دیگه‌ای موکول کرد یه کار غیر ضروریه.

هرمی (pyramiding) یا غیر هرمی (non-pyramiding) بودن کارها

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

بازبینی‌محور یا تسک‌محور بودن کارها

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


نت پیشگیرانه در تیم‌های نر‌م‌افزاری

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

نگهداری از ابزار

اگرچه اعضای تیم مهم‌ترین بخش تیم‌های نرم‌افزاری هستن اما بدون ابزار مناسب تیم‌ها کارایی مناسبی نخواهند داشت. اما برای ارتباطات درون تیمی، بین تیمی، بین تیم و مشتری ابزارهای مختلفی وجود داره که می‌تونن به شکل self-hosted یا cloud-based مورد استفاده قرار بگیرن. همچنین برای کنترل نسخه کد، دیزاین‌ها، مستندات، مدیریت کارها، workflowها و ... هم همین مدل انتخاب‌ها وجود داره. نت پیشگیرانه در زمینه انتخاب بین self-hosted و cloud-based پیشنهاد ویژه‌ای برامون نداره.

اگه از ابزارهای self-hosted استفاده می‌کنین:

  • بروزرسانی دوره‌ای نرم‌افزارها برای حل مشکلات امنیتی، کارایی و ...
  • تهیه نسخه پشتیبان از داده‌های موجود. بازه اجرایی این روتین با توجه به نرخ تغییرات برای تیم‌های مختلف متفاوته.
  • افزایش/کاهش منابع سخت‌افزاری مصرفی با مانیتور کردن مصرف فعلی. این کار بهتره به صورت بازبینی‌محور انجام بشه.

اگه از ابزارهای cloud-based استفاده می‌کنین:

  • تهیه نسخه پشتیبان از داده‌های موجود (سازگار با سایر ابزارهای cloud-based) با توجه به امکان فیلتر/تحریم
  • بررسی دوره‌ای و پیش‌ از موعد امکان تمدید (در صورت subscription-based بودن ابزار)

برگزاری جلسات تک‌به‌تک با اعضای تیم

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

تیم‌سازی به صورت دوره‌ای

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

تیم‌سازی هم باید به صورت دوره‌ای و برنامه‌ریزی شده و هم با اهداف مشخص انجام بشه. افزایش حس تعلق و تعهد شغلی (Loyalty/Engagement) با روش‌های مختلف (پاداش مالی و ...)، کمک به اعضا برای ارتباط گرفتن با کار معنادار (با جابجایی نقش، سمت و مسئولیت‌ها) می‌تونن از اهداف تیم‌سازی باشن. گاهی هم لازمه با بررسی بازبینی‌محور افراد رو از تیم حذف یا به تعدادشون اضافه کنیم.

چرا باید نت پیشگیرانه رو تو تیم نرم‌افزاری جدی بگیریم؟

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

منابع:

[1] Preventive Maintenance as the Key to Efficient Production

تیم‌های نرم‌افزارینتهزینه فرصتنت پیشگیرانهپیشگیرانه تیم‌های
مهندس نرم افزار، نویسنده، شاعر و خیال پرداز
شاید از این پست‌ها خوشتان بیاید