5 سوال که باید درباره برنامه ریزی ظرفیت در متدولوژی Agile در نظر بگیرید

دوشنبه 11 بهمن 1400

برنامه ریزی ظرفیت در متدولوژی Agile از اهمیت بسیار زیادی برخوردار است، ما در این مطلب قصد داریم بیشتر درباره برنامه ریزی ظرفیت در متدولوژی Agile صحبت کنیم.

 5 سوال که باید درباره برنامه ریزی ظرفیت در متدولوژی Agile در نظر بگیرید

در ارزش های متدولوژی Agile افراد و تعاملات بسیار بیشتر از فرآیندها و ابزارها حائز اهمیت هستند. یکی از اصول کلیدی این متدولوژی این است که بهترین معماری ها نیازمندی ها و طراحی ها توسط تیم هایی که قابلیت خودسازماندهی دارند ظاهر می شوند. با وجود این که این مسئله از نظر تئوری کاملا درست است ولی این مسئله که چگونه تیم هایی که قابلیت خودسازماندهی دارند باید عمل کنند و این تیم ها چقدر اختیارات تصمیم گیری دارند سوالات زیادی وجود دارد. به عنوان مثال توانمندسازی یک تیم برای انتخاب معماری و طراحی ایده آل خود ممکن است عملکرد تیم را به میزان زیادی بهینه سازی کند ولی 20 تیم که معماری های مختلف را مدیریت می کنند ممکن است در این مسئله با مشکلات زیادی مواجه شوند.

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

تیم های خودسازمانده متدولوژی Agile به برنامه ریزی ظرفیت نیاز دارند

یکی از زمینه هایی که بسیاری از تیم های فعال در حوزه متدولوژی agile از آن بیزار هستند برنامه ریزی ظرفیت agile است. برنامه ریزی ظرفیت معانی متفاوتی را برای افراد مختلف دارد. به همین علت است که امروزه درخواست های زیادی برای تجزیه و تحلیل معنی ظرفیت یا برنامه ریزی توسط این تیم ها وجود دارد. علاوه بر این باید دقت داشته باشید که شیوه ها و متدهای برنامه ریزی ظرفیت توسط رشته مهندسی سیستم و مدیریت برنامه که برخی از افراد آنها را سیستم هایی ضد متدولوژی agile می دانند طراحی و توسعه داده شده است.

چالش موجود در برنامه ریزی ظرفیت

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

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

نکته پایانی که باید درباره این موضوع بدانید این است که زمینه ها و آنالیزهای متفاوت در واقع جزئی از برنامه ریزی ظرفیت در متدولوژی agile به شمار می آیند. در ادامه چند سوال وجود دارد که تیم های agile باید در پاسخ دادن به آنها با یکدیگر همکاری لازم را داشته باشند.

با سرعت مشخص چه حجمی از کار را می توان انجام داد؟

هدف تیم هایی که امروزه از روش scrum استفاده می کنند این است که متعهد به کارهایی هستند که می توانند با حداکثر سرعت ممکن آنها را انجام دهند و برای حفظ سرعت ثابت یا افزایش سرعت انجام کارها تلاش می کنند. این در حالی است که تیم های Kanban دارای جریان کاری روان تری هستند اما ذینفعان این متدولوژی همچنان علاقه مند هستند تا پیش بینی تیم درباره داستان ها، درخواست ها و وظایف کاربران را درک کنند.

اولین سطح از برنامه ریزی ظرفیت در سطح تیم انجام می شود و به تیم های agile کمک می کند تا پاسخ دهند که چه حجم از کار با سرعت مشخص و در زمان معینی قابل انجام است. تیم های متدولوژی agile که مبتنی بر داده هستند معمولا می توانند کار خود را تخمین بزنند و اغلب از داستان هایی که برای بخش مختلف پروژه تعریف می شود برای تعیین پیچیدگی و میزان تلاش برای انجام دادن یک وظیفه مشخص استفاده می کنند.

یک گروه چند ویژگی را می تواند زمان بندی کند؟

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

نکاتی درباره ارائه ویژگی ها در متدولوژی agile

تیم هایی که از متدولوژی Agile بهره می برند به چیزی فراتر از برنامه ریزی به موقع برای پیش بینی زمان انتشار برنامه نیاز دارند. یکی از رویکردهایی که در این زمینه استفاده می شود استفاده از برنامه ریزی مداوم Agile برای تخمین سرعت در انجام کارهای عقب مانده استفاده از این تخمین برای بحث در مورد اولویت ها می باشد. سازمان های بزرگی که از Scaled Agile Framework استفاده می کنند از برنامه ریزی افزایشی برای بررسی ظرفیت، برنامه ریزی sprint ها و همینطور درک وابستگی تیم ها استفاده می کنند.

این برنامه ریزی ها و نقشه راه به تیم های مبتنی بر متدولوژی Agile کمک می کنند تا سرعت ثابت انجام کارها را تخمین زده و این سرعت را حفظ کنند. Sprint و برنامه ریزی کوتاه مدت از جمله عناصر سازنده بسیار مهم برای تیم های Agile هستند که در همکاری با کسب و کارها از اهمیت زیادی برخوردار می باشند.

در یک تیم Agile برای انجام وظیفه ای مشخص به چند نفر نیاز داریم؟

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

-          برای دستیابی به اهداف استراتژیک کسب و کار به چه مهارت ها و چه تعداد فرد نیاز است؟

-          جدول زمانی پیش بینی شده برای تکمیل محدوده مورد نظر کار چیست؟

-          چگونه سرمایه گذاری های اضافی در یادگیری، افراد، مشارکت ها و همکاری ها یا تکنولوژی ها می تواند جدول زمانی را تسریع کند؟

-          خطرات موجود برای جدول زمانی چیست؟ یک تیم مبتنی بر متدولوژی Agile چه مراحلی را می تواند برای کاهش خطرات با احتمال زیبا و با تاثیرگذاری بالا در اولویت خود  قرار دهد؟

-          چه هزینه هایی با سناریوهای مختلف برنامه ریزی در یک تیم مبتنی بر متدولوژی Agile مرتبط است؟

نگرانی هایی درباره پاسخ به سوالات بالا در تیم های مبتنی بر متدولوژی Agile

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

یک نکته مهم در پاسخ به این سوالات تیم های مبتنی بر متدولوژی Agile

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

ظرفیت کدام سیستم ها در متدولوژی Agile مورد نیاز است؟

برنامه ریزی استراتژیک اغلب مواقع بر امور مالی، افراد، مهارت ها و جدول زمانی متمرکز است. برنامه ریزی ظرفیت سیستم ها نیز بر روی زیرساخت های مورد نیاز برای توسعه، تست و مستقر کردن کدها و همینطور استقرار ویژگی ها و قابلیت های جدید تمرکز دارد. برخی از رایج ترین سوالات موجود در این زمینه شامل موارد زیر هستند:

-          چگونه افزایش اندازه محیط های تست می تواند زمان مورد نیاز برای اجرای تست های خودکار را کاهش دهد؟

-          زمانی که تیم مبتنی بر متدولوژی Agile قصد دارد تعداد افرادی که در حال توسعه نرم افزار هستند را افزایش دهد به چند محیط توسعه جدید نیاز است؟

-          آیا عملیات باید به دلیل افزایش استفاده از اپلیکیشن یا افزایش توان داده، زیرساخت را مقیاس بندی کرده یا معماری را مورد بازبینی قرار دهد؟

-          آیا هر یک از اجزا و کامپوننت های تکنولوژی مورد استفاده در کوتاه مدت به پایان عمر خود می رسند یا نیاز به ارتقا اساسی پیدا می کنند؟

-          آیا تغییرات در قوانین یا انطباق ها نیاز به ارتقا برنامه یا تغییرات معماری نرم افزار دارند؟

نکاتی درباره پاسخ دادن به سوالات بالا توسط تیم های مبتنی بر متدولوژی Agile

پاسخ دادن به این سوالات معمولا بر عهده تیم های فناوری اطلاعات و IT یا تیم های معماری سازمانی است چرا که همه آنها زمینه هایی هستند که می توانند بر اولویت های توسعه نرم افزار تاثیرگذار باشند. تیم های مبتنی بر متدولوژی Agile همچنین دارای تخصص لازم برای بررسی تخمین های لازم در توسعه نرم افزار، وابستگی ها و گزینه های پیاده سازی نیز می باشند.

چه فناوری ها، تغییرات فرایند یا مشارکت هایی می توانند بهره وری را بهبود ببخشند؟

برنامه ریزی استراتژیک و برنامه ریزی ظرفیت سیستم ها اغلب توسط دپارتمان هایی مانند دفتر مدیریت برنامه، عملیات فناوری اطلاعات و IT، معماری سازمانی، امنیت اطلاعات، مدیریت ریسک و ... از بالا به پایین انجام می شود اما تیم های توسعه Agile فعال و سازمان های توسعه دهنده به شکل دیگری این کار را انجام می دهند.

رهبران کسب و کارها علاقه مند هستند بدانند چه چیزی باعث افزایش سرعت تیم، بهبود بهره وری تیم مبتنی بر متدولوژی Agile، رسیدن به ضرب الاجل های زمانی، رسیدگی به شکاف های کیفیت نرم افزار یا افزایش دفعات استقرار می شود. این رهبران از برنامه ریزی ظرفیت برای فرمول بندی پرسش تیم درباره آنچه که برای موفقیت بیشتر مورد نیاز است استفاده می کنند.

به عنوان مثال اتوماسیون CI/CD (continuous integration and continuous delivery) و IaC (infrastructure as code) قابلیت اطمینان استقرار کدها را بهبود می دهند و همچنین گام های کلیدی برای افزایش فرکانس استقرار هستند. گره زدن و متصل کردن این سرمایه گذاری ها به اهداف کسب و کار به همسو کردن رهبران کسب و کار درباره چرایی و زمان اولویت بندی متدهای توسعه کمک می کند.

نکات پایانی

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

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید