روش یا متدولوژی انجام کارها، مدیریت پروژهها و پیشبرد فعالیتها در هر سازمانی از اهمیت ویژهای برخوردار است. استفاده از روشهای نامناسب مدیریت پروژه، عاملی برای کندتر پیش رفتن پروژه، ایجاد ناهماهنگیها، انجام دوبارهکاری، نارضایتی مشتریان و سایر مشکلات مرتبط با آن میشود. بنابراین بسیار مهم است که کسبوکارها، بهخصوص استارتاپها، از همان ابتدا روشهای مناسبی را برای مدیریت پروژههای خود انتخاب کنند. یکی از متدولوژیهای مورد توجه در این زمینه اجایل (Agile) است. در پروژههای تولید و توسعه نرمافزاری و بهخصوص در مورد استارتاپهای این حوزه که باید به شیوهای چابک محصول خود را توسعه دهند؛ استفاده از متدولوژی اجایل گزینهای محبوب است. در حال حاضر بیش از دو دهه از ابداع این روش گذشته است. در این مدت این روش تغییرات و بهبودهایی را نیز تجربه کرده است. بر همین اساس نیز انواع مختلفی از روشهای اجرای این متدولوژی در یک سازمان مطرح شده است. با این حال اصول اولیه این متدولوژی همچنان همان موارد اولیه است. در این مقاله میخواهیم ابتدا با این متدولوژی آشنا شده و سپس به معرفی انواع آن بپردازیم.
متدولوژی اجایل چیست؟
ترجمه تحتالفظی متدولوژی اجایل را میتوان روششناسی چابک دانست. بنابراین همانطور که از نام آن پیداست؛ به دنبال هرچه چابکتر کردن یک تیم در اجرای یک پروژه است. بهطور کلی متدولوژیهای ساخته شده بر اساس اجایل رویکردهای مدرنی را برای مدیریت پروژه و توسعه نرمافزار ارائه میدهند. در این رویکردها اولویت با سازگاری (با نیازهای متغیر بازار)، همکاری (اعضای تیم با یکدیگر) و رضایت مشتری است. بر همین اساس این متدولوژیها چارچوبی برای مدیریت پروژهها و ارائه محصولات با کیفیت بالا در محیطی به سرعت در حال تغییر فراهم میکنند.
روشهای سنتی توسعه آبشاری محصولات نرمافزاری شامل یک رویکرد متوالی و از بالا به پایین است. به زبان ساده در این روش توسعهدهندگان یک طرح دقیق ایجاد میکنند؛ سپس آن طرح را اجرا میکنند؛ و در نهایت نتایج را آزمایش و تایید میکنند. این روش اغلب و بهخصوص در پروژههای وسیع و پیچیده، کند و دست و پا گیر است. زیرا نیاز به برنامهریزی و هماهنگی زیادی دارد. همچنین مستعد تاخیر بیش از حد و رخ دادن مشکلات پیشبینی نشده در پروژه است. در مقابل اجایل بهمنظور غلبه بر برخی از این مشکلات توسعه داده شده است. این متدولوژی فرآیندی انعطافپذیر، سریع و تطبیقی را ارائه میدهد. به زبان ساده این روش از مفهومی بهنام تکرارها (یا اسپرینتها) استفاده میکند. در هر اسپرینت توسعهدهندگان در فواصل زمانی کوتاه، بر روی دامنه محدودی از ویژگیها کار میکنند. هدف از این رویکرد این است که محصولات به سرعت و با خطاهای کمتر تولید شوند. همین ویژگی موجب میشود که توسعه حداقل محصول اولیه (MVP) توسط این متدولوژی برای استارتاپها سادهتر و منطقیتر باشد.
در حوزه توسعه نرمافزار، این متدولوژی بر توسعه تکراری و همکاری نزدیک بین تیمهای متقابل تاکید میکند. این ویژگی امکان انطباق سریع با نیازمندیهای به سرعت در حال تغییر و آمادهسازی مداوم نرمافزار را با کیفیت بالا فراهم میکند. از آنجا که در دنیای نرمافزار سرعت تغییرات در نیاز بازار و تکنولوژیها به شدت بالا است؛ استفاده از روش اجایل میتواند انتخابی خوب برای مدیریت پروژه توسعه نرمافزار باشد.
انواع متدولوژیهای اجایل
رویکردهای مدیریت پروژه بر اساس روش چابک در انواع مختلفی توسعه داده شده است. اگرچه اصول کلی متدولوژی اجایل در همه آنها وجود دارد؛ اما جزئیات متفاوت، موجب شده تا هر یک از روشهای مطرح شده دارای کاربردها، مزایا و محدودیتهای خاص خود باشند. در ادامه میخواهیم مطرحترین متدولوژیهای اجایل را بهطور خلاصه مرور کنیم.
اسکرام (Scrum)
اسکرام یک فرآیند مبتنی بر تکرار و تکامل، برای توسعه هر محصول یا مدیریت هر کاری است. در این روش در پایان هر دوره تکرار یا اسپرینت، مجموعهای از قابلیتهای بالقوه قابل استفاده تولید میشود. به عبارت دیگر متدولوژی اسکرام یک چارچوب توسعهِ فرآیندمحور است. همچنین از آنجا که بر ارائه محصولات بهصورت تدریجی و مداوم تمرکز دارد؛ در صنعت نرمافزار مورد توجه است. به زبان ساده در این روش محصول اولیه ساخته شده و به تدریج و در هر اسپرینت، ویژگیهای پیچیدهتر و بیشتر به آن اضافه شده یا مشکلات آن برطرف میشود.
متدولوژی اسکرام توسط اسکرام مستر (Scrum Master) و تیم اسکرام اجرا میشود. اسکرام مستر مسئول اطمینان از کامل شدن وظایف تیم اسکرام است. تیم اسکرام نیز متشکل از توسعهدهندگان، آزمایشکنندگان و تحلیلگران تجاری است. قابلیت سازگاری با نیازهای خاص پروژه، سرعت بخشیدن به روند توسعه نرمافزار، شفافیت در روش اجرا، تشویق مشارکت اعضا در پروژه و انعطافپذیری، مهمترین ویژگیهای روش اسکرام در متدولوژی اجایل هستند.
کانبان (Kanban)
یکی دیگر از متدولوژیهای اجایل کانبان است. این روش در واقع اقتباسی از یک سیستم ژاپنی با همین نام است. این سیستم اولینبار توسط تویوتا به عنوان یک رویکرد برنامهریزی برای تولید بهموقع توسعه یافته و مورد استفاده قرار گرفت. قابلیت درک ساده و استفاده آسان از این روش، امکان سنجش بهتر کیفیت و بهرهوری نیروی کار و قابلیت تطبیق با پروژههایی در ابعاد و موضوعات مختلف، روش کانبان را در بسیاری از تیمها، بهخصوص تیمهای استارتاپی و نرمافزاری محبوب کرده است.
چندین روش مختلف برای پیادهسازی متدولوژی کانبان وجود دارد؛ اما یک شیوه کلی از آن را میتوانید در ابزارهای مدیریت پروژهای مثل ترلو (Trello) بیابید. بهطور خلاصه در این روش یک تابلو (board) کلی وجود دارد که همه وظایف پروژه بهصورت تفکیک شده در آن ثبت میشود. این وظایف در واقع یک جریان پیوسته از آیتمهای کاری هستند که بدون هیچگونه تکرار برای رسیدن به هدف خود یعنی کامل شدن، ثبت شدهاند. به عنوان مثال یک برد اصلی در کانبان میتواند دارای سه بخشِ برای انجام (To Do)، در حال انجام (Doing) و انجام شده (Done) باشد. به این شکل وظایف یا کارهای تعریف شده میتوانند برای تکامل یافتن از این سه مرحله عبور کنند.

برنامهنویسی افراطی (XP)
این روش در متدولوژی اجایل به عبارت Extreme Programming اشاره دارد. در واقع این روش بر توسعه نرمافزار در مدتزمان کوتاه و با کیفیت بالا متمرکز است. در این رویکرد همچنان تمرکز بر روی مشتری است. به همین دلیل پذیرش اجتنابناپذیر بودن تغییر در نرمافزار و در نتیجه ارائه مکرر آن بسیار مهم است. همین موارد نیز باعث میشود تا پاسخگویی به بازخوردها در اولویت باشد.
توسعه ناب (Lean Development)
توسعه ناب یک فرآیند است که به استارتاپها در تولید نرمافزارهای بهتر کمک میکند. تمرکز این متدولوژی بر ایجاد یک محصول سریع، موثر و کارآمد است. به همین دلیل این روش نیز به سایر سیستمهای معرفی شده در متدولوژی اجایل شباهت دارد. البته بهطور کلی در توسعه ناب سه اصل بهبود مستمر، جریان و کانبان مورد توجه است.
بهطور دقیقتر توسعه ناب تیمها را تشویق میکند تا بهطور مداوم فرآیندها و محصولات خود را بهبود بخشند. آنها این کار را با اندازهگیری پیشرفت خود و ایجاد تغییرات بر اساس نتایج آن انجام میدهند. این کار باعث میشود که فرآیند مورد استفاده آنها برای توسعه محصول، همیشه انعطافپذیر و پاسخگو به تغییرات باشد. همچنین توسعه ناب بر جریان کار در یک تیم متمرکز است. هدف این است که همه اعضای تیم بتوانند بدون وقفه روی وظایف خود کار کنند. اصل جریان به اعضای تیم اجازه میدهد تا سریعتر و با تلاش کمتر به اهداف خود دست یابد. در نهایت اصل سوم یعنی کانبان در این رویکرد، ابزاری است که به تیمها برای پیگیری پیشرفت خود کمک میکند. در واقع در این روش از یک برد کانبان برای نمایش وظایف، منابع و پیشرفت پروژه استفاده میکنند. این کار به تیمها کمک میکند تا بهتر سازماندهی شده و به سمت اهداف خود حرکت کنند.
مقاله مرتبط:
استارتاپ ناب یا لین استارتاپ
کریستال (Crystal Methodology)
متدولوژی کریستال یک رویکرد خاص برای توسعه نرمافزار بر اساس متدولوژی اجایل است. این رویکرد نیز همچنان بر تحویل مکرر محصول تاکید دارد. با این حال این روش بر اساس تکنیک پرسشگری «پنج چرا» است؛ و بر استفاده از استوریبردها و یوزر استوریها تکیه دارد.
بهطور خلاصه رویکرد کریستال برای مطابقت با نیازهای پروژههای مختلف از طریق خانوادهای از متدولوژیهای چابک ارائه شده است.
توسعه مبتنی بر ویژگی (FDD)
توسعه مبتنی بر ویژگی (Feature Driven Development) رویکردی برای توسعه نرم افزار است که ابتدا به توسعه ویژگیها پرداخته و سپس بر کار روی سیستم، به عنوان یک کل واحد تاکید میکند. به کمک این رویکرد توسعه محصول سریعتر میشود. چراکه ویژگیها میتوانند مستقل از سیستم بهعنوان یک کل توسعه یابند. از سویی کیفیت بهتر میشود. زیرا ویژگیها را میتوان زودتر و بیشتر آزمایش کرد. در نتیجه شانس یافتن و رفع نواقص بیشتر میشود. همچنین انعطافپذیری محصول بیشتر میشود. چراکه ویژگیها را میتوان برای نیازهای خاص مشتری تنظیم کرد.
با این حال این روش ممکن است مشکلاتی نیز داشته باشد. به عنوان مثال هنگام ساخت کل واحد، برخی ویژگیها ممکن است انتظارات را برآورده نکرده و نیاز به توسعه مجدد داشته باشند. همچنین ممکن است ویژگیها به روشهای مختلف پیادهسازی شوند؛ و به این دلیل پیچیدگیهای ساخت محصول اصلی بیشتر شود. از سویی مجموع زمان ساختن کل ویژگیها بهصورت جداگانه، در برخی پروژهها از ساختن یک کل واحد از ابتدا بیشتر است.
در پایان به یاد داشته باشید که متدولوژی اجایل مجموعهای از قوانین سفت و سخت نیست. بلکه مجموعهای از اصول است که میتوانید آنها را متناسب با نیازهای خاص استارتآپ خود شخصیسازی کنید.