برنامه نویسی

مهندسی در Quicksand – جامعه dev

به قسمت دوم سریال Microblog من در مورد قاتلان نادیده گرفته تیم های مهندسی خوش آمدید – مشکلاتی که بی سر و صدا بهره وری را در جامعه DevOps از بین می برد بدون اینکه توجه زیادی داشته باشد. من قبلاً توقف بیش از حد را به عنوان یک مسئولیت تحت پوشش قرار داده ام ، نشان می دهد که چگونه لایه های بیش از حد انتزاع بدهی فنی را معرفی می کنند.

امروز ، من در حال مقابله با قاتل ساکت دیگر هستم: زحمت. این تیم های کشیده شده وزن نامرئی به پایین است و مهندسان را وادار به حفظ به جای ساخت می کند. در حالی که برخی از زحمت ها اجتناب ناپذیر است ، بیش از حد از آن نوآوری را خفه می کند و جذابیت را به وجود می آورد. بیایید در مورد چگونگی وقوع آن صحبت کنیم و چگونه جلوی آن را بگیریم.

تولد زحمت


“نیاز به یک انسان در حلقه یک ویژگی نیست … این یک شکست است.


هنگامی که من برای اولین بار وارد دنیای مهندسی قابلیت اطمینان سایت شدم ، با مفهوم زحمت آشنا شدم. کتاب راهنمای SRE Google ، زحمت را به عنوان هر چیزی تکراری ، دستی ، خودکار ، واکنشی و مقیاس گذاری با رشد خدمات تعریف می کند – اما در واقعیت ، بسیار بدتر از این است. زحمت فقط چند بلیط تعمیر و نگهداری آزار دهنده در جیرا نیست. این مالیات نوآوری است. این قاتل ساکت است که به جای ساختن راه حل های معنی دار ، مهندسان را در حالت نگهداری گیر می کند.

من این دست اول را دیدم که به تیم جدیدی پیوستم که با تکرار بلیط های JIRA از یک ناکامی ، گرفتار شد dnsmasq خدمات در VMS دونده Gitlab AutoScaling آنها. هشدارها هرگز متوقف نشد. در ابتدا ، من وحشت کردم که اصلاح پیشنهادی به سادگی دوباره راه اندازی Daemon و علامت گذاری بلیط به عنوان حل شده بود. این تیم با سالها زحمت و آتش نشانی چنان فرسوده شده بود که آنها ترجیح می دادند SSH را به یک VM بپردازند و یک فرمان را اجرا کنند تا اینکه علت اصلی را بررسی کنند. آنها تنبل نبودند – آنها خسته شدند.

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

پرداختن به زحمت و حرکت به جلو

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

زحمت ثابت نیست – نوسان می کند. یک چهارم ممکن است سنگین باشد ، در حالی که دیگری بیشتر روی توسعه ویژگی ها متمرکز است. نکته مهم این است که مهندسان به طور نامحدود زحمت نمی کشند. گوگل توصیه می کند که در زیر 50 ٪ از زمان مهندس زحمت بکشید – من حتی بیشتر می روم و پیشنهاد می کنم که آن را در طی دوره های پایدار زیر 33 ٪ نگه دارید. البته این بستگی به برنامه های تماس ، پاسخ حادثه و سربار تیم دارد ، اما هدف مشخص است: زحمت را به حداقل برسانید ، یا اثربخشی تیم شما را به حداقل می رساند.

نحوه کاهش زحمت

  1. آن را زود شناسایی کنیدبشر اگر یک کار دستی ، تکراری است و به مداخله نیاز دارد ، آن را به عنوان زحمت بکشید.
  2. تهاجمیبشر اگر یک دستگاه می تواند این کار را انجام دهد ، باید این کار را انجام دهد.
  3. اولویت بندی زحمت کشیدنبشر حداقل 33 ٪ از زمان اسپرینت را برای حل مسائل مربوط به زحمت اختصاص دهید.
  4. یک عقب نشینی ساختاری ایجاد کنیدبشر بلیط های مربوط به زحمت را برچسب گذاری کنید (به عنوان مثال ، KTLO – چراغ ها را روشن نگه دارید) و به طور فعال منابع را برای رفع آنها اختصاص دهید.
  5. از زحمت جدید جلوگیری کنیدبشر Shift Left – سیستم های طراحی شده ای که در وهله اول زحمت غیر ضروری را معرفی نمی کنند.

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

در پایان ، بهترین راه برای مقابله با زحمت ، متوقف کردن معرفی آن در وهله اول است. ممکن است مانند یک پلیس به نظر برسد ، اما مهندسی خوب قبل از اینکه مشکل ایجاد شود ، مانع از زحمت می شود. Shift Left ، Automate و نگه داشتن مهندسان خود را در ساختمان نگه دارید – نه فقط حفظ.

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا