اگرچه مهارتهای عملی و دانش زبانها، ابزارها و فناوریهای برنامهنویسی خاص، کلید رسیدن به یک شغل تمام وقت بهعنوان توسعهدهنده نرمافزار است، شاخص ارزشمند دیگری وجود دارد که از بسیاری جهات میتواند به عنوان پیشفرض برای موفقیت در این حرفه تلقی شود: بهره وری. اندازهگیری بهرهوری چیزی است که همه توسعهدهندگان نرمافزار حرفهای باید بدانند و در نظر بگیرند، زیرا معیارهای عملکرد ذاتاً برای هر تیم توسعه نرمافزار در محیط تجاری امروزی مهم هستند.
چرا بهره وری شما به عنوان یک توسعه دهنده اهمیت دارد؟
در عصر توسعه Agile، DevOps و چرخههای انتشار نرمافزار در حال کاهش، زمانی که توسعهدهندگان باید نسخههای جدید محصولات را در سریعترین زمان ممکن ارسال کنند، شرکتها از معیارهای بهرهوری مختلف برای ارزیابی عملکرد برنامهنویسان فردی و یک تیم بهعنوان یک کل استفاده میکنند. با نگاهی به این موضوع از دیدگاه یک توسعهدهنده، اندازهگیری عملکرد میتواند اهداف ارزشمندی را دنبال کند، و به شما کمک میکند پیشرفت مهارتهای برنامهنویسی خود را پیگیری کنید، که به شما امکان میدهد به رشد حرفهای ثابت دست یابید. کدنویسان با بهره وری بالا کسانی هستند که در نهایت پیشنهادات حقوقی فوق العاده دریافت می کنند و روی هیجان انگیزترین پروژه ها کار می کنند. اما حتی اگر دقیقاً موفقیت بالایی ندارید و فقط می خواهید هر شغلی در توسعه نرم افزار داشته باشید و در آن به طور معقول موفق باشید، باز هم باید حداقل یک درک اولیه از شاخص های عملکرد و نحوه استفاده از آنها برای اندازه گیری بهره وری داشته باشید. ورودی شما در محل کار چیزی که امروز در مورد آن صحبت خواهیم کرد.
معیارهای اندازه گیری بهره وری توسعه نرم افزار
معیارهای بهره وری توسعه نرم افزار چیست؟
معیارهای توسعه نرمافزار حوزههایی از کار برنامهنویسی هستند که در آنها میتوان اندازهگیریهای کمی را برای ردیابی عملکرد، کیفیت کار و بهرهوری یک توسعهدهنده اعمال کرد. هر معیار بهرهوری مبتنی بر گرفتن دادهها از فرآیند توسعه و استفاده از آن برای اندازهگیری بهرهوری است. از آنجایی که تقریباً هیچ چیز مربوط به توسعه نرم افزار آسان و ساده نیست، می توان گفت که اندازه گیری بهره وری برنامه نویسی نیز در سراسر صنعت کاملاً ناسازگار و پراکنده است. یا به زبان ساده، تیم ها و شرکت های مختلف می توانند از شاخص های عملکردی کاملا متفاوت استفاده کنند و از زوایای مختلفی به این موضوع بپردازند. بنابراین نیازی نیست که برای یادگیری هر معیاری که ممکن است توسط تیم های توسعه نرم افزار استفاده شود، زحمت بکشید. اما مطمئناً توصیه می شود که به طور کلی محبوب ترین و رایج ترین معیارهای مورد استفاده در صنعت توسعه نرم افزار را بشناسید و درک کنید.
چه نوع معیارهای بهره وری توسعه نرم افزار وجود دارد؟
به طور طبیعی، چندین معیار بهره وری مختلف وجود دارد که به اندازه گیری عملکرد در سطوح و زوایای مختلف نزدیک می شود. در اینجا رایج ترین انواع این معیارهای بهره وری آورده شده است:
- معیارهای رسمی متمرکز بر اندازه
این معیارها بر اندازه گیری اندازه نتیجه کار یک برنامه نویس متمرکز هستند، مانند خطوط کد (LOC)، طول دستورالعمل های کد، پیچیدگی کد، و غیره.
- معیارهای بهره وری متمرکز بر زمان و عملکرد.
مجموعهای از معیارهای بهرهوری سنتی که در توسعه نرمافزار آبشار استفاده میشوند، مانند روزهای فعال، دامنه عملکرد ارسال شده در یک دوره زمانی معین، نرخ خروج کد، تعداد وظایف محول شده و غیره وجود دارد.
- معیارهای فرآیند توسعه چابک
معیارهای فرآیند توسعه چابک، مانند گزارش فرسودگی سرعت، سرعت، زمان هدایت، زمان چرخه و موارد دیگر، احتمالاً رایجترین معیارهای مورد استفاده در بین تیمهای توسعه نرمافزار امروزی هستند. در ادامه مقاله در مورد معیارهای Agile با جزئیات بیشتر صحبت خواهیم کرد.
این مجموعه از معیارها بر روی اندازه گیری عملکرد نرم افزار در محیط تولید فعلی آن متمرکز شده است. میانگین زمان بین خرابی ها (MTBF)، میانگین زمان بازیابی (MTTR) و نرخ خرابی برنامه بیشترین استفاده را در اینجا دارند.
تست نرم افزار مجموعه ای از معیارهای خاص خود را برای اندازه گیری کیفیت تست سیستم دارد، مانند درصد تست های خودکار، پوشش کد و غیره.
در نهایت، معیار نهایی برای هر نرم افزار، تجربه مشتری نهایی است و مجموعه کاملی از معیارها برای آن نیز وجود دارد، مانند امتیاز تلاش مشتری (CES)، امتیاز رضایت مشتری (CSAT)، امتیاز خالص تبلیغ کننده (NPS) و دیگران.
معیارهای توسعه نرم افزار چابک
همانطور که می بینید، گم شدن در تمام پیچیدگی های معیارهای بهره وری نرم افزار بسیار آسان است. با این حال، تنها مواردی که یک توسعهدهنده نرمافزار معمولی باید به خوبی با آنها آشنا باشد، معیارهای چابک است که امروزه معمولاً توسط تیمهای توسعه نرمافزار به عنوان استانداردهای اندازهگیری بهرهوری تیم در بخشهای مختلف چرخه عمر توسعه نرمافزار استفاده میشود. بیایید معیارهای اصلی و پرکاربرد Agile را فهرست کنیم.
1. Sprint Burndown.
گزارش های Sprint Burndown یکی از معیارهای کلیدی برای تیم های توسعه اسکرام چابک است. همانطور که در چابک، فرآیند توسعه از طریق اسپرینت های محدود به زمان سازماندهی می شود، Sprint Burndown به عنوان راهی برای ردیابی تکمیل وظایف در طول یک اسپرینت استفاده می شود. ساعت ها یا نقاط داستان به عنوان واحد اندازه گیری استفاده می شود. هدف دستیابی به پیشرفت مداوم و ارائه کار مطابق با پیش بینی های اولیه است. Sprint Burndown به تیم ها کمک می کند تا سرعت کار را اندازه گیری کرده و در صورت نیاز آن را تنظیم کنند.
2. سرعت تیم.
سرعت یکی دیگر از شاخص های کلیدی است که همچنین بر اساس ساعت ها یا نقاط داستانی به عنوان واحد اندازه گیری است. میانگین کاری را که یک تیم در طول یک اسپرینت انجام می دهد اندازه گیری می کند و برای تخمین و برنامه ریزی در کل پروژه استفاده می شود. سرعت ردیابی برای اطمینان از ارائه عملکرد ثابت تیم مهم است.
3. نکات داستانی.
در سطح تک تک اعضای تیم توسعه، نقاط داستان یک معیار ارزشمند است، زیرا اندازه داستانهایی که برنامهنویس در طول هر نسخه ارائه میکند، نشانگر بهرهوری این کدنویس است.
4. نمودار کنترل چرخه.
کل زمان را از لحظه ای که کار روی یک کار یا یک مورد عقب مانده دیگر شروع شده تا تکمیل آن اندازه گیری می کند. اجازه می دهد تا زمان های چرخه را ردیابی و کنترل کند و نتایج قابل پیش بینی بیشتری را ارائه دهد.
5. توان عملیاتی و ارزش ارائه شده.
مدیران پروژه وظایف محول شده به توسعه دهندگان را تجزیه و تحلیل می کنند و برای آنها ارزش قائل می شوند. سپس از این معیار برای اندازه گیری توان عملیاتی تیم یا به عبارت دیگر میزان ارزش افزوده کار انجام شده استفاده می شود.
6. Code Churn.
انحراف کد معیار دیگری است که قابل ذکر است زیرا برای اندازه گیری بهره وری یک تیم به عنوان یک کل و برای ردیابی عملکرد برنامه نویسان فردی استفاده می شود. انحراف کد اندازهگیری میکند که یک برنامهنویس چند وقت یکبار در خطوط کد اضافه شده قبلی حذف یا تغییراتی ایجاد میکند و چند درصد از کدهای نوشتهشده قبلی تغییر یا دور ریخته میشود.
نظرات کارشناسان
در نهایت، برای افزودن برخی دیدگاه ها، چند نقل قول در مورد این موضوع توسط متخصصان با تجربه صنعت توسعه نرم افزار. "امیدوارم شما به دنبال "مقایسه" معیارهای خود با نوعی استاندارد یا حتی با عملکرد تیم دیگری در شرکت دیگر نباشید. هر جایی که من کار کردهام، در تعاریف آنها از نقاط داستان، سرعت، تخمینهای ساعتی، وظایف و غیره تفاوتهای منحصر به فردی داشته است که واقعاً مقایسه عملکرد یک تیم از یک شرکت به طور مستقیم با عملکرد یک تیم دیگر در شرکت دیگر تقریباً غیرممکن میکند. Cliff Gilley، مدیر محصول فنی سابق و مربی چابک،
خاطرنشان کرد
. وقتی صحبت از هدایت عملکرد تیم به میان میآید، کمی از معیارها دور هستم. هنگامی که فقط به یک یا دو متغیر توجه کنید، بسیار آسان میشود که (عمداً یا غیرعمد) در بازی معیار قرار بگیرید و خودتان را گول بزنید که در حال بهبود هستید - وقتی تمام کاری که انجام میدهید بهبود معیار است. برای مثال، معیارهای مبتنی بر سرعت میتوانند با حرکت تیم به داستانهای کوچکتر «بهبود» شوند (کار کمتر در هر داستان - بنابراین داستانهای بیشتر تکمیل شده - بنابراین سرعت بالا میرود). اگر داستانها داستانهای کاربر مفیدی باشند که افزایشهای کوچکتری از ارزش کسبوکار ارائه میکنند، ممکن است چیز خوبی باشد.
آدریان هاوارد، یکی دیگر از متخصصان صنعت، گفت
، اگر داستانها به وظایف کوچکتر و «فنی»تر تبدیل شوند که به خودی خود ارزش واقعی را ارائه نکنند، ممکن است چیز بدی باشد . "هنگامی که در یک سیستم مبتنی بر کشش کار می کنم، من برای توان عملیاتی و زمان چرخه ارزش قائل هستم. اولی اطلاعات کلی در مورد ظرفیت تیم ما به من می دهد و با گذشت زمان می تواند به یک معیار پیش بینی بسیار قدرتمند تبدیل شود. دومی به عنوان یک معیار کلی برای کارایی خطوط لوله ما مفید است. اگر زمان چرخه زیاد است، زمان آن فرا رسیده است که به خط لوله نگاه کنیم، زیرا محدودیتی وجود دارد که احتمالاً میتوانیم در جهت تسهیل/استفاده از آن کار کنیم. اما معیارها فقط ابزار هستند. در آنها گم نشوید و مطمئناً شروع به برنامه ریزی برای یک معیار خاص نکنید. به این فکر کنید که به عنوان یک تیم چه چیزی می سازید و به طور طبیعی چگونه کار می کنید، سپس سیستم را حول افراد بسازید. معیارها باید به شما کمک کنند تا ببینید سیستم شما چگونه از کار همه پشتیبانی می کند. یا نه،” دیو سرا، یک تولید کننده بازی های ویدیویی،
نتیجه گرفت
.
GO TO FULL VERSION