اجایل (Agile) چیست؟ هر آنچه باید از متدولوژی اجایل بدانید
امروزه سازمانها در جستوجوی روشهایی برای همگام شدن با فناوریهای در حال تغییر و بازارهای در حال تحول هستند. وقتی رقابت بر سر سرعت است تیمهای توسعهدهنده باید منعطفتر و چالاکتر از قبل عمل کنند. این، نقطهی ورود متدولوژی چابک (Agile Methodology) به مدیریت پروژه است. در ادامه یاد میگیرید که متدولوژی توسعهی اجایل (Agile Development Methodology) چیست و چه کمکی به تیم شما در ارائه سریعتر، بهتر و قدرتمندتر محصولات میکند.
متدولوژی اجایل چیست؟
در توضیح اینکه متدولوژی اجایل چیست و شامل چه ارزشهاییست، باید گفت متدولوژی اجایل یا چابک توسط تعدادی توسعهدهندهی نرمافزار و با هدف رویکردی بهتر نسبت به فرایند سنتیِ توسعه (Development) ارائه شد؛ زیرا فرایند سنتی توسعه بسیار پیچیده و تحتفشار الزامات مربوط به مستندات (Documentation) بود.
این گروه در سندی ابتدایی بهنام بیانیهی اجایل (Agile Manifesto) به بیان ۴ ارزش و ۱۲ اصل هدایتکنندهی فلسفهی اجایل (Agile Philosophy) میپردازند:
۴ ارزش فلسفهی اجایل
- ارجحیت افراد و تعاملات بر فرایند و ابزارها؛
- ارجحیت نرمافزار کارکننده بر مستندات جامع؛
- ارجحیت مشارکت مشتری بر مذاکرات قرارداد؛
- ارجحیت پاسخ به تغییرات بر پیروی از یک برنامهی مشخص.
ارزشهای فلسفهی اجایل با پاسخ به نیازهای مشتریان و سازگاری مؤثرتر با تغییرات کمک میکنند فرایند توسعهای ایجاد کنیم که به شکلی مطمئن محصولات باکیفیت و مشتریان راضی را در پی خواهدداشت. حال که میدانید متدولوژی اجایل چیست و با ۴ ارزش فلسفهی اجایل آشنا شدید، در ادامه قصد داریم ۱۲ اصل فلسفهی اجایل را نیز مرور کنیم.
۱۲ اصل فلسفهی اجایل
- مشتری را با ارائهی سریع و مداوم نرمافزار ارزشمند راضی نگه دارید؛
- پذیرای تغییرات باشید و از آنها برای مزیت رقابتی مشتری استفاده کنید، حتی در اواخر فرایند توسعه؛
- نرمافزار کارکننده را از چند هفته گرفته تا چند ماه، بهصورت مکرر ارائه دهید و اولویتی برای بازههای زمانی کوتاهتر نیز داشتهباشید؛
- در طول پروژه مشارکتی روزانه بین اهالی کسبوکار و توسعهدهندگان داشتهباشید؛
- پروژهها را در کنار افراد باانگیزه بسازید، نیازهای توسعهدهندگان را برآورده سازید، محیط موردنیازشان را ایجاد و به آنها برای انجام کار اعتماد کنید؛
- به گفتوگوهای حضوری بهعنوان کارامدترین و مؤثرترین روش انتقال اطلاعات در تیم توسعه اولویت دهید؛
- پیشرفت را بهاندازهی میزان تکمیل یک نرمافزار قابل استفاده بسنجید؛
- بهصورت مداوم، یک سرعت پایدار و ثابت برای فرایند توسعه داشتهباشید؛
- چابکی (Agility) را با توجه مداوم به برتری فنی و طراحی خوب بهبود ببخشید؛
- ساده باشید. سادگی یا همان حذف فرایندهای غیرضروری امری اجنتابناپذیر است؛
- در نظر بگیرید که بهترین الزامات، معماری و طراحیها برآمده از تیمهای خودسازماندهنده هستند؛
- بهطور منظم رفتاری را برای بهبود مستمر اتخاذ کنید و آن را به دیگران نشان دهید.
ارزشها و اصول اجایل نشاندهندهی فلسفهی جامعالشمولی است که توانستهاست در چارچوب و متدولوژیهای مختلفی بهکار برده شود و در توسعهی نرمافزار و سایر فرایندهای مدیریت پروژه کاربرد دارد. ذهنیت اجایل با پیروی از این ارزشها و اصول به انعطافپذیری اولویت میدهد و سازگاری با تغییر در محیطی ناشناخته را ممکن میسازد. این امر متدولوژی اجایل را تبدیل به فلسفهای محبوب میکند؛ زیرا روش اجایل به تیمها کمک میکند محصولات را سریع و همراه با برآورده ساختن بهتر نیازهای مشتری، کاربر و کسبوکار ارائه دهند.
در ادامهی مطلب میخوانید مزایای اجایل چیست.
مزایای اجایل
روش اجایل به عنوان یک انتخاب برتر برای رهبران و توسعهدهندگان، توانستهاست شتابی فزاینده بگیرد و تعجبی از این موضوع نیست. حال که میدانیم متدولوژی اجایل چیست و با ۱۲ اصل فلسفهی اجایل آشنا شدیم در ادامه بهتر به مزایای روش اجایل نیز بپردازیم. در اینجا، تنها به برخی از مزایای مدیریت پروژهی اجایل (Agile Project Management) و توسعهی اجایل (Agile Development) اشاره میکنیم:
همکاری و مشارکت بیشتر ذینغعان از مزایای روش اجایل
اجایل باعث بهوجود آمدن میزان زیادی مشارکت بین مشتری و تیم توسعه میشود. این امر منجر به مشتریانی راضیتر میشود؛ زیرا فرایند شفاف است و توسعهدهندگان از نیاز و خواستههای مشتری بهتر آگاهند.
آشکار بودن میزان هزینهها و بازههای زمانی
آشکار بودن میزان هزینهها و بازههای زمانی از دیگر مزایای روش اجایل است. مدیران پروژه به کمک تقسیم فرایند توسعه به بُرهههای زمانی مشخص میتوانند هزینهی کار را بهصورتی دقیقتر تخمین بزنند و دورههای زمانی قابل پیشبینی و قابل درکی مشخص کنند. ذینفعان در نتیجهی این عمل راضیتر میشوند؛ چون میدانند چه در پیش دارند و میتوانند برنامه ریزی دقیقتری برای بودجه و استراتژیهای بازاریابی داشتهباشند.
همینطور چون تیمها میتوانند بر ارائه سریع و مطمئن محصول و آزمایش کیفیت و کارایی نرمافزار بهشکلی منظم تمرکز کنند، این امر فرایند توسعه را برای آنها سادهتر میسازد.
انعطافپذیری در مواجهه با تغییرات از دیگر مزایای روش اجایل
تمام مدیریت پروژهی اجایل دربارهی چالاک بودن است. تیمها سریعتر با تغییرات سازگاری پیدا میکنند و درعینحال میزان هزینههای برگشتناپذیر (Sunk costs) را کاهش میدهند. اجایل این اجازه را به تیمها میدهد که در رویهی کار خود تغییراتی اساسی ایجاد کنند. این تغییرات همگام با تغییر در نیازهای مشتری، تغییر در تقاضای بازار و یا در پاسخ به الزامات محصولات که روزبهروز دگرگون میشوند هستند.
همینطور به تیمها اجازهی اصلاح و اولویتبندی مجدد لیست بکلاگ محصول (Product Backlog) را میدهد تا آنها همیشه محصولات باکیفیت و مرتبط را بهموقع و با بودجهای محدود ارائه دهند.
محصولات باکیفیتتر
توسعهی محصول اجایل (Agile Product Development) آزمایش منظم را وارد فرایند توسعه میکند. این به مالک محصول کمک میکند تا مشکلات را در همان شروع کار تشخیص دهد و تغییراتی که نیاز است را اعمال کند. نتیجه، محصولاتی باکیفیتتر، مناسب و کاملاً بررسیشده است.
ریسک کمتر و بازگشت سرمایهی سریعتر از مزایای متدولوژی اجایل
بازگشت سرمایهی سریعتر از دیگر مزایای روش اجایل است. متدولوژی چابک میزان ریسک را کاهش میدهد؛ زیرا بهطور منظم محصولات را آزمایش میکند و اجازهی تغییراتی در حین فرایند توسعه را میدهد. تیمها با قدمبهقدم تکرار یک پروژه بهجای به انجام رساندن آن با یک طرح end-to-end قادر به تولید محصولاتی پایدار بهشکلی قابل پیشبینی هستند. اگر در اواسط کار پروژه متوجه مشکلی شوند، میتوانند سریع روش کار را جهت رفع آن مشکل تغییر دهند و این متفاوت از آن است که در پایان پروژه متوجه مشکلات محصول شوند.
بهعلاوه چون اجایل کاربرمحور است، تیمهای اجایل تصمیمات خود را بر اساس داستان کاربر (User Stories)، بازخورد آزمایشات (Testing Feedback) و توصیهی مشتریان (Client Input) در طول فرایند میگیرند. این امر اطمینان میدهد که هر ویژگی محصول تنها یک مؤلفهی کاربردی در فناوری اطلاعات (functional IT component) نیست، بلکه محصولی ارزشمند برای کاربران نهایی (End-users) است.
همهی این فرایندها در کنار هم میزان ریسک را کاهش میدهند و به تیمها کمک میکنند که سریعتر به ارائه ارزش بپردازند، نتیجهی آن چیزی نیست جز سرعت بیشتر در بازگشت سرمایه (ROI). در ادامه مراحل چرخهی متدولوژی اجایل را مرور میکنیم.
قدمهای متدولوژی اجایل
حالا که میدانیم متدولوژی اجایل چیست و با اصول و مزایای روش اجایل آشنا شدیم، وقت آن است که مراحل چرخهی متدولوژی اجایل را نیز مرور کنیم. چرخهی متدولوژی چابک شامل ۶ قدم است:
۱. ایده (Concept)
اولین قدم روش اجایل مشخص کردن و اولویتبندی پروژههاست. بنشینید و با تیم خود و ذینفعان به همفکری بپردازید و فرصتهای کسبوکار را شناسایی کنید. زمان و هزینهی موردنیاز برای تکمیل هر پروژه را نیز باید تخمین بزنید. سپس میتوانید پروژههای مناسب و ارزشمند را مشخص کنید و از این طریق به اولویتبندی لیست بکلاگ پروژهتان (Project Backlog) بپردازید.
۲. نقطهی شروع (Inception)
پس از اینکه نوع پروژه خود را دانستید نوبت به آن میرسد که چگونه آن را به پایان برسانید. به چه کسانی در تیم خود نیاز دارید؟ الزامات ابتدایی مشتری چیست؟ بهکمک یک دیاگرام به شرح مسئولیتهای تیم و کارهایی که باید در هر برههی زمانی انجام شوند بپردازید.
۳. تبدیل ایده به واقعیت (Iteration)
تبدیل ایده به واقعیت مرحلهی بعدی از روش اجایل است. پس از مشخص شدن و تأیید اولین پروژه، نوبت به تیم توسعه میرسد که در اولین مرحله از تبدیل ایدهی محصول به واقعیت، وارد عمل شود. اولین گردش کار (Workflow) در این مرحله شامل موارد زیر است:
- الزامات (Requirements): الزامات را بر اساس بکلاگ محصول و بازخورد ذینفعان مشخص کنید؛
- توسعه (Development): طبق الزامات مشخصشده به توسعهی محصول بپردازید؛
- آزمایش (Testing): برای ارزیابی ویژگیهای محصول و کشف مشکلات به تضمین کیفیت بپردازید؛
- ارائه (Delivery): محصولی قابل استفاده تولید کنید؛
- بازخورد (Feedback): به دریافت بازخورد از مشتریان و ذینفعان بپردازید تا در تبدیل ایده به واقعیت برای محصولی دیگر الزامات را مشخص کنید.
۴. انتشار (Release)
پس از تبدیل چندین و چندباره ایدهها به واقعیت زمان انتشار محصولی نهایی میرسد. شما طی مرحلهی انتشار به آزمایش و تضمین کیفیت نهایی میپردازید تا هرگونه اشکال (Bug) شناسایی، ایرادات رفع و مستند سازی کاربر (User Documentation) پیش از عرضهی محصول، نهایی شود.
۵. تولید (Production)
اکنون محصول شما در دسترس مردم است! مرحلهی تولید یعنی نمایش شما در حال اجراست. آیا تیم شما پایش و پشتیبانی مستمری دارد تا روند کار محصول را بدون مشکل نگه دارد و مطمئن شود کاربران نحوهی استفاده از آن را بلد هستند؟
۶. بازنشستگی (Retirement)
بازنشستگی آخرین مرحله از چرخهی متدولوژی اجایل است. وقتی محصول شما بلااستفاده، غیرضروری و آمادهی جایگزین شدن است وارد مرحلهی بازنشستگی میشود. این مرحله از روش اجایل شامل تمامی فعالیتهای مربوط به پایان عمر مفید محصول (End-Of-Life Activities) است مانند اطلاعرسانی به مشتریان و خارج کردن محصول از مرحلهی تولید.
نمونههایی از متدولوژی اجایل
اجایل فلسفهای راهگشاست که میتواند به مدلهای مختلفی از توسعه اعمال شود. حال که پاسخ دادیم متدولوژی اجایل چیست و مراحل چرخهی متدولوژی چابک را مرور کردیم، در ادامه به بررسی چهار نوع محبوب از متدولوژی چابک نیز میپردازیم:
اسکرام (Scrum)
اسکرام یک چارچوب اجایل است که بر کار گروهی چندوظیفهای، مسئولیتپذیری و تبدیل ایده به واقعیت متمرکز است تا محصولات پیچیده را توسعه و ارائه دهد و به پشتیبانی از آنها بپردازد. در اصل از این چارچوب اجایل برای توسعهی نرمافزار (Software Development) استفاده میشود اما میتوان اصولش را در سایر گروههای مدیریت پروژه نیز اعمال کرد. این چارچوب اجایل شامل نقشها، فعالیتها و محصول کلیدی است.
نقشهای اسکرام:
- مالک محصول (Product Owner)؛
- اسکرام مستر (Scrum Master)؛
- تیم توسعهی اسکرام (Scrum Development Team).
فعالیتهای اسکرام:
- جلسهی اسکرام روزانه (Daily Scrum)؛
- جلسهی برنامهریزی اسپرینت (Sprint Planning Meeting)؛
- جلسهی بررسی اسپرینت (Sprint Review)؛
- جلسهی رتروسپکتیو (Sprint Retrospective).
مصنوعات اسکرام:
- بکلاگ محصول (Product Backlog)؛
- بکلاگ اسپرینت (Sprint Backlog)؛
- اینکریمنت (Increment) یا هدف اسپرینت (Sprint Goal).
تیمهای اسکرام از ابزارهایی مانند scrum task boards استفاده میکنند تا در سازماندهی وظایف و برهههای زمانی و کسب اطلاع اعضای تیم از وضعیت فعلی پروژهها کمک کنند.
کانبان (Kanban) نمونهای از متدولوژی اجایل
کانبان مدلی اجایل است که طراحی شده تا به تیمها کمک کند به شکل کارامدتری با یکدیگر کار کنند. این مدل از اجایل شامل سه اصل هدایتکننده است:
- گردش کار خود را ترسیم کنید؛
- مقدار کار در گردش را محدود کنید؛
- گردش کار را بر اساس اولویت منظم کنید.
این مدل اجایل بر خلاف اسکرام نقشهای تجویزشده یا برههی زمانی محدود ندارد. بلکه بر دورههای زمانی کوتاهتر متمرکز است تا محصولات را سریعتر ارائه دهد و به شفافیت در طول فرایند توسعه دست پیدا کند. نتیجهی این شفافیت این است که همگی میدانند چهکسی برای چه زمانی و چه موقعیتی مسئول است.
ابزارهایی مانند Online Kanban Board به اعضای تیم این فرصت را میدهد تا ایدههای خود را بیان کنند، وضعیت وظایف (Tasks) را تغییر دهند و میزان پیشرفت خود را اندازهگیری کنند تا همه در کنار هم به شکلی موثرتر و کارامدتر کار کنند.مجسم کردن فرایند کمک میکند تا همه با هم اتفاقنظر داشتهباشند و مطمئن شوند بر روی کاری تمرکز دارند که دارای اولویتی بالا و تأثیری زیاد است.
برنامهنویسی مفرط (XP)
XP یا برنامهنویسی مفرط (Extreme Programming) دقیقترین چارچوب اجایل برای روشهای توسعهی نرمافزار (Software Development Practices) است. نهتنها در تولید نرمافزارِ باکیفیت کمککننده است بلکه تمام فرایند را برای تیم توسعه آسانتر میکند. ارزشهای XP شامل ارتباط، بازخورد، سادگی، اراده و احترام است. در صورتی XP بهترین نتیجه را خواهد داشت که:
- الزامات دائما در حال تغییر باشند؛
- تیمها در ضیق وقت باشند؛
- ذینفعان قصد کاهش ریسک در موعد مقرر تعیین شده را داشتهباشند؛
- تیمها بتوانند تستهای واحد و عملکردی (Unit and Functional Tests) را خودکار کنند.
توسعه ویژگیمحور
FDD یا توسعه ویژگیمحور (Feature Driven Development) یک متدولوژی اجایل مشتریمحور است که بر توسعهی افزایشی (Incremental Development) و گزارش وضعیت (Status Reporting) در همهی سطوح تمرکز دارد. این روش برای غلبه بر دو مانع بزرگ در توسعهی نرمافزار کمککننده است؛ سردرگمی و دوبارهکاری. FDD شامل پنج قدم ابتدایی است:
- توسعهی یک مدل کلی؛
- ایجاد لیستی از طرحها؛
- برنامهریزی بر اساس طرحها؛
- طراحی بر اساس طرحها؛
- ساختن بر اساس طرحها.
FDD مدلی انعطافپذیر است که طرحها را در یک بازهی زمانی کوتاهتر نسبت به سایر چارچوبهای اجایل ارائه میدهد. برای مثال اگر برههای زمانی برای فرایند توسعه در اسکرام ۴ هفته است، FDD طرحها را زمانی ۲ تا ۱۰ روز ارائه میدهد. این مسئله به تیمها کمک میکند تا خطاها (Error) را شناسایی و رفع کنند، با خواستههای مشتری مطابقت داشتهباشند و اعضای جدید خود را سریع بهروز کنند.
نکتهی مهم دربارهی اجایل این است که بیشتر یک دستورالعمل است تا قاعدهای خاص. مطمئن شوید هر متدولوژی چابکی که استفاده میکنید از پس رفع نیازهای تیم و مشتریان شما برآید. در کل، هدف اجایل کمک به تیمها در ارائه بهتر و سریعتر پروژههاست. بنابراین بهترین آنها را انتخاب و به کمک آن شروع بهکار کنید.
خلاصه
در این مطلب توضیح دادیم متدولوژی اجایل چیست و هر آنچه باید درمورد متدولوژی اجایل بدانید را ذکر کردیم. متدولوژی اجایل توسط تعدادی توسعهدهندهی نرمافزار و با هدف رویکردی بهتر نسبت به فرایند سنتیِ توسعه ارائه شد. متدولوژی اجایل به تیمها کمک میکند محصولات را سریع و همراه با برآورده ساختن بهتر نیازهای مشتری، کاربر و کسبوکار ارائه دهند. اگر سؤال و یا نظری در زمینهی متدولوژی اجایل دارید، لطفا با ما به اشتراک بگذارید.
منبع: lucidspark.com
دیدگاه