اجایل (Agile) توانایی ایجاد تغییر و پاسخگویی به آن است. این روشی برای مواجهه با محیطهای نامطمئن و پرتلاطم و در نهایت موفقیت در چنین شرایطی است. نویسندگان مانیفست اجایل، این مفهوم را با عنوان "اجایل" نامگذاری کردند، زیرا این کلمه نشاندهنده توانایی تطبیقپذیری و پاسخگویی به تغییرات بود که برای رویکرد آنها بسیار حیاتی است.
در واقع، اجایل درباره این است که چگونه میتوانید محیط اطراف خود را درک کنید، عدم قطعیتهایی که با آنها مواجه هستید را شناسایی کنید و راههایی برای تطبیق با آنها در طول مسیر بیابید.
توسعه نرمافزار به روش اجایل، فراتر از چارچوبهایی مانند اسکرام (Scrum)، کانبان (Kanban)، برنامهنویسی افراطی (Extreme Programming) یا توسعه مبتنی بر ویژگی (Feature-Driven Development یا FDD) است. همچنین، این روش فراتر از تمرینهایی مانند برنامهنویسی جفتی (Pair Programming)، توسعه مبتنی بر آزمون (Test-Driven Development)، جلسات روزانه (Stand-ups)، برنامهریزی اسپرینت (Sprint Planning) و تکرارها (Iterations یا Sprints) است.
توسعه نرمافزار به روش اجایل، یک اصطلاح چتری برای مجموعهای از چارچوبها و تمرینها است که بر اساس ارزشها و اصول بیانشده در مانیفست توسعه نرمافزار اجایل و 12 اصل پشت آن شکل گرفتهاند. هنگامی که شما توسعه نرمافزار را به این روش خاص انجام میدهید، بهتر است به این ارزشها و اصول پایبند باشید و از آنها برای تصمیمگیری در مورد اقدامات مناسب در شرایط خاص خود استفاده کنید.
یکی از مواردی که اجایل را از سایر روشهای توسعه نرمافزار متمایز میکند، تمرکز بر افرادی است که کار را انجام میدهند و نحوه همکاری آنها با یکدیگر است. راهحلها از طریق همکاری بین تیمهای خودسازمانده و چندکاره (Cross-Functional) که از تمرینهای مناسب برای شرایط خود استفاده میکنند، تکامل مییابند.
در جامعه توسعه نرمافزار اجایل، تأکید زیادی بر همکاری و تیمهای خودسازمانده وجود دارد. این به معنای نبود مدیران نیست، بلکه به این معناست که تیمها این توانایی را دارند که خودشان تصمیم بگیرند چگونه کارها را انجام دهند.
تیمهای اجایل معمولاً چندکاره هستند، به این معنا که اعضای تیم دارای مهارتهای متنوعی هستند و نیازی به نقشهای ثابت و مشخص نیست. هنگامی که تیم تشکیل میشود، باید اطمینان حاصل شود که تمام مهارتهای لازم در تیم وجود دارد.
مدیران همچنان جایگاه خود را دارند. آنها اطمینان حاصل میکنند که اعضای تیم مهارتهای لازم را دارند یا آنها را کسب میکنند. مدیران محیطی را فراهم میکنند که تیم بتواند موفق شود. معمولاً مدیران به تیمها اجازه میدهند تا خودشان تصمیم بگیرند چگونه محصولات را تحویل دهند، اما در مواقعی که تیمها با مشکلاتی مواجه میشوند و نمیتوانند آنها را حل کنند، وارد عمل میشوند.
هنگامی که بیشتر تیمها و سازمانها شروع به توسعه اجایل میکنند، بر تمرینهایی تمرکز میکنند که به همکاری و سازماندهی کار کمک میکنند. این موضوع بسیار خوب است، اما یک مجموعه کلیدی دیگر از تمرینها وجود دارد که کمتر مورد توجه قرار میگیرند اما بسیار مهم هستند: تمرینهای فنی. این تمرینها مستقیماً با توسعه نرمافزار به گونهای سروکار دارند که به تیم شما کمک میکند با عدم قطعیتها مقابله کند. این تمرینهای فنی ضروری هستند و نباید نادیده گرفته شوند.
در نهایت، اجایل یک ذهنیت است که توسط ارزشها و اصول مانیفست اجایل شکل گرفته است. این ارزشها و اصول راهنماییهایی در مورد چگونگی ایجاد تغییر، پاسخگویی به آن و مقابله با عدم قطعیت ارائه میدهند. میتوان گفت که اولین جمله مانیفست اجایل کل این ایده را خلاصه میکند:
"ما در حال کشف روشهای بهتری برای توسعه نرمافزار هستیم؛ با انجام آن و کمک به دیگران برای انجام آن."
هنگامی که با عدم قطعیت مواجه میشوید، چیزی را امتحان کنید که فکر میکنید ممکن است جواب دهد، بازخورد بگیرید و بر اساس آن تنظیم کنید. هنگام انجام این کار، ارزشها و اصول اجایل را در ذهن داشته باشید. اجازه دهید شرایط شما تعیین کند که از کدام چارچوبها، تمرینها و تکنیکها برای همکاری با تیم خود و ارائه ارزش به مشتریان استفاده کنید.
اگر اجایل یک ذهنیت است، پس روششناسیهای اجایل چه میشوند؟ برای پاسخ به این سوال، بهتر است ابتدا تعریف روششناسی (Methodology) را بدانیم.
الیستر کوکبرن (Alistair Cockburn) پیشنهاد کرده است که روششناسی مجموعهای از قراردادهایی است که یک تیم توافق میکند از آنها پیروی کند. این بدان معناست که هر تیم روششناسی خود را خواهد داشت که به طرق کوچک یا بزرگ با روششناسی تیمهای دیگر متفاوت است.
بنابراین، روششناسیهای اجایل، قراردادهایی هستند که یک تیم انتخاب میکند تا به گونهای از آنها پیروی کند که با ارزشها و اصول اجایل همسو باشد.
ممکن است بگویید: "صبر کن، من فکر میکردم اسکرام و XP روششناسیهای اجایل هستند." الیستر این مفاهیم را به عنوان چارچوب (Framework) معرفی کرد. این چارچوبها از روششناسی یک تیم خاص نشأت گرفتهاند، اما زمانی که به صورت عمومی برای استفاده سایر تیمها درآمدند، به چارچوب تبدیل شدند. این چارچوبها به تیمها کمک میکنند تا نقطه شروع مناسبی برای روششناسی خود داشته باشند، اما نباید به عنوان روششناسی نهایی تیم در نظر گرفته شوند. تیم همیشه باید استفاده از چارچوب را با شرایط خود تطبیق دهد.
با افزایش محبوبیت توسعه نرمافزار به روش اجایل، افرادی که در فعالیتهای مرتبط با توسعه نرمافزار مشارکت داشتند اما مستقیماً نرمافزار توسعه نمیدادند، به دنبال راهی بودند تا بفهمند چگونه این ایدههای اجایل در حوزه کاری آنها اعمال میشود.
مانیفست اجایل و 12 اصل آن توسط گروهی از توسعهدهندگان نرمافزار (و یک تستر) نوشته شد تا مسائلی را که توسعهدهندگان نرمافزار با آنها مواجه بودند، حل کند. هنگامی که اجایل را به عنوان یک ذهنیت در نظر میگیرید، این ذهنیت میتواند به سایر فعالیتها نیز اعمال شود.
در این حالت، اجایل به عنوان یک صفت استفاده میشود. این صفت توصیف میکند که چگونه یک فعالیت را انجام میدهید. این موضوع یک روششناسی جدید ایجاد نمیکند.
برای درک مدیریت پروژه اجایل، باید بپرسید: "چگونه میتوانیم مدیریت پروژه را به گونهای انجام دهیم که به ما امکان ایجاد تغییر، پاسخگویی به آن و مقابله با عدم قطعیت را بدهد؟"
برای درک تحلیل کسبوکار اجایل، باید بپرسید: "چگونه میتوانیم تحلیل کسبوکار را به گونهای انجام دهیم که به ما امکان ایجاد تغییر، پاسخگویی به آن و مقابله با عدم قطعیت را بدهد؟"
دو مفهوم بالا نمونههایی از تلاش برای گسترش اجایل به خارج از حوزه نرمافزار هستند. این تلاشها اخیراً به جنبشی به نام چابکی کسبوکار منجر شدهاند.
اگر ایده اجایل را به عنوان یک ذهنیت گسترش دهید، افرادی که به دنبال چابکی کسبوکار هستند، از خود میپرسند: "چگونه میتوانیم ساختار و عملیات سازمان خود را به گونهای تنظیم کنیم که به ما امکان ایجاد تغییر، پاسخگویی به آن و مقابله با عدم قطعیت را بدهد؟"
میتوان گفت که چابکی کسبوکار به این معناست که برای اینکه افراد در یک سازمان با ذهنیت اجایل عمل کنند، کل سازمان باید از این ذهنیت حمایت کند. توسعه نرمافزار به روش اجایل تا زمانی که سازمان ساختار و عملیات خود را برای کار در یک محیط نامطمئن تغییر ندهد، به طور واقعی اجایل نخواهد بود.
خلاصه
اجایل یک ذهنیت است که بر اساس ارزشها و اصول مانیفست اجایل شکل گرفته است. این ذهنیت میتواند در توسعه نرمافزار، مدیریت پروژه، تحلیل کسبوکار و حتی در سطح کل سازمان اعمال شود. چابکی کسبوکار نشاندهنده این است که سازمانها باید ساختار و عملیات خود را به گونهای تغییر دهند که بتوانند در محیطهای نامطمئن و پرتلاطم موفق شوند.