مدیریت افراد
چهار معیار DORA چیست و چه کاربردی در تیمهای توسعه نرمافزار دارد؟
چگونه DevOps را بهبود ببخشیم و عملیات خود را تقویت کنیم؟ همه چیز با اندازهگیری شروع میشود. شما باید دریابید که از کجا شروع میکنید و به کجا میخواهید بروید.
وقتی صحبت از تحویل نرمافزار به میان میآید، تیمهای توسعه معیارهای مختلفی دارند که میتوانند برای اندازهگیری و پیگیری عملکرد از آنها استفاده کنند. تیمها برای درک نقاط قوت و ضعف خود و اینکه چگونه میتوانند قابلیتهای DevOps خود را بهبود بخشند، نیاز به بررسی دادهها دارند.
دقیقاً به همین دلیل است که چهار معیار DORA در چارچوب DevOps ایجاد شدهاند. در این راهنما بررسی میکنیم که DORA کیست، چهار معیار آن کدامند و چه مزایا و معایبی دارند.
معیارهای DORA کدامند؟
قبل از اینکه چهار معیار کلیدی DORA در DevOps را بیان کنیم، بیایید تاریخچه مختصری را پوشش دهیم تا بفهمیم این معیارها از کجا آمدهاند.
DevOps Research and Assessment (DORA) یک تیم تحقیقاتی DevOps است که گوگل در سال ۲۰۱۸ آن را خریداری کرد. DORA از بینشهای مبتنی بر داده برای ارائه بهترین شیوهها در DevOps با تأکید بر کمک به سازمانها برای توسعه و ارائه سریعتر و بهتر نرمافزار استفاده میکند. امروز، DORA به همکاری با تیم Google Cloud برای انتشار تحقیقات و گزارشهای DevOps جهت بهبود تحویل نرمافزار در سازمانها ادامه میدهد.
DORA در گزارش تحقیقاتی خود در سال ۲۰۱۸ (Accelerate: The State of DevOps)، بینشهایی را از شش سال تحقیق گردآوری کرد تا چهار معیار کلیدی را که به عنوان معیارهای DORA شناخته میشوند، شناسایی کند. شما میتوانید از این چهار معیار کلیدی برای اندازهگیری عملکرد تیم توسعه نرمافزار و بهبود کارایی و اثربخشی عملیات DevOps خود استفاده کنید.
ما در ادامه به این چهار معیار نگاه دقیقتری خواهیم داشت، اما در حال حاضر یک مرور کلی بر آنها خواهیم کرد:
- دفعات استقرار (Deployment Frequency)
- زمان انجام برای تغییرات (Lead Time for Changes)
- نرخ شکست تغییرات (Change Failure Rate)
- زمان بازیابی خدمات (Time to Restore Service)
از زمان انتشار این معیارها، بسیاری از سازمانها شروع به اتخاذ و استفاده از آنها به عنوان استاندارد طلایی برای نرمافزارها و تیمهای DevOps کردهاند.
چهار معیار کلیدی DORA چیست؟
بیایید به هر یک از چهار معیار کلیدی DORA جزئیتر نگاه کنیم تا بفهمیم چگونه میتوانند به شما در اندازهگیری عملکرد تیمتان کمک کنند.
۱- دفعات استقرار
ممکن است از قبل با دفعات استقرار آشنا باشید زیرا یک معیار اساسی در تولید نرمافزار است. دفعات استقرار به معنی تعداد دفعاتی است که سازمان یا تیم شما تغییرات کد را در تولید به کار میبرد. این در نهایت نشاندهنده سرعت تیم شما است زیرا نشان میدهد تیم با چه سرعتی نرمافزار را تحویل میدهد. در حالی که سرعت ممکن است با دید مثبت دیده شود، مهم است که کیفیت را در ذهن خود نگه دارید. دفعات مهم است، اما شما همچنین باید ارزشی را به کاربران خود ارائه دهید.
بنابراین، آیا در مورد دفعات استقرار پاسخ درست یا غلط وجود دارد؟ نه لزوما، اما DORA در گزارش ۲۰۱۸ خود، برنامههای استقرار مختلف را تأیید کرد. در Accelerate: State of DevOps 2018، DORA پیشنهاد کرد که مجریان نخبه در صورت تقاضا در دسترس بوده و متعهد به استقرار چندگانه در روز هستند. افراد با عملکرد بالا بین یک بار در روز و یک بار در ساعت کار میکنند، در حالی که این آمار در افرادی با عملکرد متوسط و پایین بین یک بار در هفته تا یک بار در ماه است. اگر در حال حاضر در گروههایی با عملکرد ضعیف یا متوسط قرار دارید، وحشت نکنید. همیشه جا برای بهبود و تغییر مسیر به سمت تبدیل شدن به یک مجری نخبه که تغییرات کد کوچکتر را در دفعات بیشتر ارائه میدهد، وجود دارد.
۲- زمان انجام برای تغییرات
این معیار دیگری است که میتواند برای اندازهگیری سرعت تیم شما استفاده شود. زمان انجام برای تغییرات به عنوان مدت زمانی که طول میکشد تا یک تعهد وارد تولید گردد، تعریف میشود. به عبارت دیگر، چقدر طول میکشد تا از تعهد کد به اجرای موفقیتآمیز کد در تولید منتقل شود؟
شما میتوانید این معیار را با میانگین زمان انجام تغییرات در یک دوره زمانی برای تعهدات مختلف محاسبه کنید. محاسبه میانگین مهم است زیرا هیچ کدام از تغییرها یکسان نیستند و زمان تحویل در دامنهها و انواع مختلف تغییرات متفاوت خواهد بود.
چرا این متریک اهمیت دارد؟ زیرا اندازهگیری میکند که تیم شما چقدر سریع میتواند به نیازها و اصلاحات پاسخ دهد، که در دنیای توسعه بسیار مهم است. تیم شما میتواند با درک اینکه چه مدت طول میکشد تا تغییرات در تولید اعمال شوند، برای تعهد دادن بهتر برنامهریزی کند؛ و شاید مهمتر از همه، این معیار برای کمک به مشتریان شما ضروری است. اگر مشتری یک اشکال فوری داشته باشد که نیاز به رفع آن دارد، احتمالاً نمیخواهد با تیمی کار کند که رفع مشکل هفتهها زمان نیاز دارد. او تیمی را میخواهد که بتواند کدها را در عرض چند ساعت دوباره راهاندازی و اجرا کند. تیمی که بتواند به سرعت تغییرات را اعمال نماید، مشتریان را راضی نگه میدارد.
طبق تحقیقات DORA، مجریان نخبه برای انجام تغییرات کمتر از یک ساعت زمان دارند. افراد با عملکرد بالا در جایی بین یک روز تا یک هفته تغییرات را اعمال میکنند. این آمار در افرادی با عملکرد متوسط بین یک هفته تا یک ماه افزایش مییابد، در حالی که در افراد با عملکرد پایین بین یک تا شش ماه طول میکشد.
اگر به مشتری برگردیم که نیاز به اصلاح فوری در برنامه خود دارد، به نظر شما احتمالش بیشتر است که با تیمی با عملکرد بالا کار کند یا پایین؟ در حالی که پاسخ ممکن است تحت تأثیر عوامل زیادی باشد، به نظر میرسد به احتمال زیاد مشتری زمان تحویل سریعتری را انتخاب کند و به تیم با عملکرد بالا پایبند باشد.
۳- نرخ شکست تغییر
در مرحله بعدی، نرخ شکست تغییر، یا به بیان ساده، اندازهگیری درصد استقرارهایی است که باعث شکست در تولید میشوند.
در دفعات استقرار همه چیز در مورد سرعت استقرار تغییرات کد در تولید بود، و نرخ شکست تغییر بر کیفیت تغییراتی که به سمت تولید تحت فشار قرار میگیرند تأکید میکند. توجه به این نکته مهم است که شکست در تولید بسته به نرمافزار یا برنامه کاربردی میتواند متفاوت باشد. خرابی ممکن است در قالب بازگشت، قطع سرویس، یا سرویس ضعیف خود را نشان دهد. هنگام استفاده از این معیار، ضروری است که تعریف کنید که در کار و تیم شما شکست چگونه تعریف میشود.
ناگفته نماند که باید نرخ شکست تغییر خود را پایین نگه دارید. در حالی که اجتناب از شکست در اکثر مواقع غیرممکن است، نباید به ناامیدی تیم یا مشتری منجر شود. همانطور که ضررهای خود را اندازهگیری میکنید، یادگیری از آنها را به عنوان یک هدف تیمی در نظر بگیرید تا بتوانید دفعه بعد عملکرد بهتری داشته باشید.
DORA افراد نخبه، بالا و متوسط را با نرخ شکست تغییر ۰-۱۵٪ و افرادی با عملکرد پایین را با نرخ شکست تغییر ۴۶-۶۰٪ طبقهبندی میکند. DORA با بررسی حتی بیشتر نرخ شکست تغییر گزارش داد که اجراکنندگان نخبه، هفت برابر نرخ شکست تغییر کمتری نسبت به افراد با عملکرد پایین دارند.
جمعبندی
تا به امروز، DORA ثابت کرده که بهترین راه برای تجسم و اندازهگیری عملکرد تیمهای مهندسی و DevOps است. با این حال، سازمانها نباید به همین جا بسنده کنند. به منظور آزادسازی ارزش کاملی که نرمافزار میتواند به مشتری ارائه دهد، معیارهای DORA باید بخشی از تمام تلاشهای مدیریت جریان ارزش باشند.