زمان خواندن 4 دقیقه
اجایل (Agile) یک متد جدید برای مدیریت پروژه و توسعه نرمافزار است که روی بهبود مستمر و ارزشهای مهم تمرکز میکند.
بعد از صحبت درمورد چابکی سازمان و اسکرام، حالا نوبت به اجایل میرسد!
تلفظ صحیح این کلمه «اَجایل» و معادل انگلیسی آن «Agile» است. ترجیح میدهم بدون هیچ مقدمه و حرف اضافهای برویم سراغ معرفی اجایل تا بدانیم این کلمهی عجیب و غریب، چیست و بعد تصمیم بگیریم که با آن چه کار کنیم!
واژهی «اجایل» در لغت به معنی «چابک» است. اجایل توانایی ایجاد و پاسخدهی به تغییرات است. درواقع، راهی برای مقابله با تردیدها و پیشرفت در یک محیط نامطمئن و آشفته است. اجایل یک طرز تفکر ساده و مفید است. این طرز تفکر به ما کمک میکند تا در کمترین زمان و با کمترین هزینه یک خروجی کاربردی، ملموس، باکیفیت و ارزشمند از محصولمان به مشتری عرضه کنیم. اجایل به ما آموزش میدهد هنگام کار در برابر تغییرات مقاومت نکنیم، جسور باشیم، ارتباط برقرار کنیم و سعی کنیم واقعیتها و نیازمندیهای مشتری را در طول پروژه ببینیم و در تصمیمگیریهایمان آنها را نیز لحاظ کنیم.
نکته: مفهوم اجایل به صورت تخصصی برای مدیریت پروژه، برنامهریزی و توسعه نرمافزار استفاده میشود که در ادامه به آن می پردازیم.
مانیفست اجایل سندی است که روی چهار ارزش و اصول توسعه نرمافزار اجایل تمرکز میکند. مانیفست اجایل در سال 2001 توسط 17 توسعه دهنده نرمافزار منتشر شد که برای فرآیندهای خطیتر توسعه محصول به جایگزینی نیاز داشتند.
همانطور که اشاره شد، مدیریت پروژه اجایل، 4 ستون اصلی دارد که عبارتند از:
اگر در زمینه مدیریت پروژه و یا توسعه نرمافزار فعالیت کرده باشید، به احتمال زیاد با عباراتی همچون: مدیریت پروژه چابک، توسعه نرمافزاری چابک، کنترل پروژه اجایل، برنامهریزی چابک و امثال آنها مواجه شدهاید. اجایل هم همان چابک است و ما اینجا هستیم تا همه چیز درباره مدیریت پروژه چابک را به شما بگوییم.
همانطور که پیشتر نیز اشاره شد، Agile یک طرز تفکر است و با هدف پیشرفتهای جزئی کار میکند. این تفکر چابک (Agile thinking) از 4 ارزش و 12 اصل تشکیل شده است. پس برای اینکه بتوانیم مدیریت پروژهی چابک یا اجایل را یاد بگیریم و پروژههایمان را به روش چابک مدیریت کنیم، باید ابتدا این اصول و ارزشها را بدانیم. فکر میکنم الآن بهترین زمان برای رو کردن ارزشها و اصول اجایل است!
تیمها برنامه ریزی اجایل یا چابک را انتخاب میکنند تا بتوانند به سرعت به تغییرات بازار یا بازخورد مشتریان پاسخ دهند بدون اینکه به برنامهریزیهای طولانی مدت آسیب بزنند. برنامه ریزی و اقدام با تغییرات کوچک و مکرر به تیم شما اجازه میدهد تا در مورد هر تغییر بازخورد بگیرید و با حداقل هزینه این بازخوردها را در برنامهریزیهای خودتان به کار ببندید.
اما این فقط یک بازی با اعداد نیست. ما داریم درباره افراد صحبت میکنیم. تعاملات انسانی واقعی مهمتر از فرآیندهای سفت و سخت هستند. همکاری با مشتریان و هم تیمیها مهمتر از ترتیبات از پیش تعریف شده است و ارائه یک راه حل کارآمد برای مشکل مشتری مهمتر از ثبت مستندات دقیق است.
وقتی برای یک تیم اجایل چشم انداز تعریف میکنید، بین آنها اتحاد ایجاد میشود. سپس تیم برای عملی کردن این چشم انداز، بهترین عملکرد خودش را به نمایش میگذارد. هر تیم استانداردهای خود را برای کیفیت، قابلیت استفاده و کامل بودن دارد. تعریف آنها از کار انجام شده نشان میدهد که با چه سرعتی کار را انجام میدهند. اگرچه در ابتدا میتواند برای مدیران کمی ترسناک باشد، اما رهبران شرکت متوجه خواهند شد که وقتی به یک تیم چابک اعتماد می کنند، آن تیم احساس مالکیت بیشتری میکند و برای خیلی بهتر انتظارات مدیریت را برآورده میکنند.
به زبان ساده ارزشهای اجایل میخواهند به ما بگویند که خواهر و برادر گرامی کمی راحتتر بگیر! آنقدر نچسب به ابزارها، فرایندها و قوانین و قراردادهای نوشته شدهی روی کاغذ! اگر لازم بود در طول پروژه هم به نیازها و خواستههای مشتری گوش کن و آنها را لحاظ کن. ما انسان هستیم و از طریق تعامل با یکدگیر ارتباط برقرار میکنیم، پس برای تعاملات انسانی ارزش قائل باش. هر جا لازم است تغییر کنی و روش کاریات را تغییر دهی، این کار را انجام بده تا شکست نخوری، چون تنها چیز ثابت در دنیا تغییر است! ارزشهای اجایل ما را دعوت میکنند که کار ارزشمند انجام دهیم و محصول یا خدمات باکیفیتی ارائه کنیم که در نهایت برای مشتری قابل لمس و به درد بخور باشد.
برای اجرا و پیادهسازی 4 ارزش اجایل، 12 اصل معرفی شدهاند تا با در نظر گرفتن آنها جلو بروید:
بالاترین اولویت اجایل جلب رضایت مشتری از طریق تحویل زودهنگام و مستمر نرمافزارهای ارزشمند است.
از تغییرِ نیازمندیها استقبال کنید، حتی در اواخر توسعه. فرآیندهای چابک، تغییر را برای مزیت رقابتی مشتری مهار میکنند.
نرمافزار قابل اجرا (working Software) را به طور مکرر، از چند هفته تا چند ماه، با اولویت در بازههای زمانی کوتاهتر، تحویل دهید.
افراد تجاری و توسعهدهندگان باید روزانه در طول پروژه با یکدیگر همکاری و تعامل کنند. هیچکس با تنها کار کردن به موفقیت نمیرسد.
پروژهها را حول افراد با انگیزه بسازید. محیط و حمایتی را که نیاز دارند به آنها بدهید و برای انجام کار به آنها اعتماد کنید. (این آپشن واقعا فوق العادهاس! اینطور نیست؟!)
کارآمدترین و مؤثرترین روش انتقال اطلاعات به تیم توسعه و درون آن، گفتوگوی رو در رو است. (میفرمایند که فیس تو فیس، نفس تو نفس و چشم تو چشم صحبت کنید تا موثر واقع بشه!)
این نرمافزار معیار اولیه پیشرفت است.
فرآیندهای چابک توسعهی پایدار را ترویج میکنند. حامیان مالی، توسعه دهندگان و کاربران باید بتوانند به طور نامحدود یک سرعت ثابت را حفظ کنند.
توجه مداوم به برتری فنی و طراحی خوب، چابکی را افزایش میدهد.
سادگی ضروری است. سادگی یعنی هنر به حداکثر رساندن کارهای انجام نشده! (زیبا نیست؟!)
بهترین معماریها، نیازمندیها و طرحها از تیمهای خودسازمانده به وجود میآیند. (تیمهای خودسازمانده تیمهایی هستند که آزادی، اختیار، مسئولیت و انعطاف بیشتری در فعالیتهایشان دارند.)
در فواصل زمانی منظم، تیم در مورد چگونگی موثرتر شدن فکر میکند، سپس رفتار خود را بر اساس آن هماهنگ و تنظیم میکند.
توسعه نرم افزار اجایل چیزی فراتر از چهارچوبهایی مثل اسکرام و کانبان است. همچنین توسعه نرم افزار اجایل ورای روشهایی همچون برنامه نویسی جفتی، توسعه آزمون محور و برنامه ریزی اسپرینت است.
توسعه نرم افزار اجایل یک عبارت کلی برای چهارچوبها و شیوههای مبتنی بر ارزشها و اصول بیان شده در مانیفست توسعه نرم افزار اجایل است. وقتی به توسعه نرم افزار به شیوه خاصی فکر میکنید، خیلی خوب است که با این ارزشها و اصول زندگی کنید و برای کشف چیزهای جدید از آنها استفاده کنید.
یک چیزی که اجایل را از سایر رویکردهای توسعه نرم افزار متمایز میکند، تمرکز آن روی افراد و همکاریشان با یکدیگر است. راهکارهایی که از طریق همکاری بین تیمها حاصل میشوند، کارایی بسیار بیشتری دارند. یکی از نرم افزارهایی که در این رابطه کمک زیادی میتواند بکند، نرم افزار CRM است. چرا که CRM با ذخیره سازی یکپارچه دادهها به همکاری بین تیمها کمک زیادی کرده و عملکردشان را یکپارچه میکند.
در متدهای اجایل ویژگیهای با ارزش بالا با چرخههای کوتاه و سریعتر از چرخههای طولانیتر در فرآیندهای کلاسیک «آبشار» توسعه یافته و ارائه میشوند. مشتریان متوجه میشوند که فروشنده بیشتر به درخواستهای توسعه پاسخ میدهد.
فروشندگان با تمرکز تلاش توسعه بر روی ویژگیهای با ارزش بالا، هدر رفت را کاهش میدهند و به دلیل کاهش هزینه سربار و افزایش کارایی، زمان عرضه به بازار را نسبت به فرآیندهای آبشاری کاهش خواهند داد. بهبود رضایت مشتری باعث حفظ مشتری بیشتر و ارجاع به مشتراین جدید توسط مشتریان قدیمی می شود.
اعضای تیم از کار توسعه لذت میبرند و دوست دارند کارشان مورد استفاده و ارزش گذاری قرار گیرد. با کاهش کارهای غیرمولد (به عنوان مثال، نوشتن مشخصات یا سایر مصنوعاتی که هیچ کس از آنها استفاده نمیکند) و دادن زمان بیشتری به آنها برای انجام کاری که از آن لذت میبرند، باعث رضایت بیشتر اعضای تیم توسعه میشود. اعضای تیم همچنین میدانند که کار آنها ارزشمند است، زیرا مواردی انتخاب میشود که به مشتری ارزش ارائه بدهد و نه فقط یک محصول.
مدیران محصول، که معمولاً نقش مالک محصول را ایفا میکنند، در واقع مسئول جلب رضایت مشتریان هستند. به این ترتیب که باید مطمئن شوند کار توسعه محصول همسو با نیاز مشتری است. از سوی دیگر با ارائه فرصتهای جدید برای اولویتبندی مجدد کار و اطمینان از ارائه حداکثر ارزش، این همسویی را آسانتر میکند.
برای مدیران پروژه و کسانی که نقش اسکرام مستر را به عهده دارند، برنامه ریزی و پیگیری در مقایسه با فرآیندهای آبشار (سنتی) آسانتر و دقیقتر است. تمرکز بر ردیابی در سطح کار، استفاده از نمودارهای کار باقیمانده (Burndown) برای نمایش پیشرفت روزانه و جلسات روزانه، به مدیر پروژه آگاهی فوق العاده ای در مورد وضعیت پروژه در هر زمانی میدهد. این آگاهی برای نظارت بر پروژه و رسیدگی سریع به مسائل، لازم است.
اجایل به صورت روزانه امکان بررسی وضعیت یک پروژه توسعه محصول را برای همه اعضای تیم فراهم می کند. ذینفعان خارجی، مانند مدیران سطح C و پرسنل در دفتر مدیریت پروژه، میتوانند از این قابلیت برای برنامه ریزی موثرتر استفاده و استراتژیهای خود را بر اساس اطلاعات فشردهتر تنظیم کنند و کمتر نیاز به استفاده از قوه تخیل و حدسشان داشته باشند.
قبل از تولد روش چابک، اکثر پروژهها به روش آبشاری (Waterfall) مدیریت میشدند. بزرگترین محدودیت روش آبشاری عدم امکان تغییر نیازمندیها و خواستههای مشتری در حین انجام پروژه بود. در مدیریت پروژه به روش سنتی آبشاری همهی نیازمندیهای مشتری قبل از شروع پروژه تعیین میشد و محصول بر اساس قراردادی از پیش تعیینشده ساخته میشد.
بنابراین استفاده از روش آبشاری اغلب باعث ایجاد یک محصول بیکیفیت، کم ارزش، و غیرقابلاستفاده برای مشتری میشد و حتی خیلی اوقات پروژه را قبل از اتمام ساخت محصول با شکست مواجه میکرد. بنابراین نیاز به یک روش توسعه سازگار با نیازمندیهای بهروز مشتری و انعطافپذیر به شدت احساس میشد. سرانجام در سال 2001 روش توسعه چابک توسط عدهای از توسعهدهندگان نرم افزار پیشنهاد شد.
اسکرام(Scrum) و کانبان(Kanban) دو نمونه از مهمترین فریمورکهای چابک یا اجایل هستند و به اعضای تیم کمک میکنند تا با استفاده از آنها پروژه را با همکاری یکدیگر جلو ببرند.
همانطور که در مقالهی اسکرام هم گفتیم، تفاوت اجایل و اسکرام این است که اجایل بیشتر شبیه به یک طرز تفکر است و اسکرام شبیه به عملیاتی برای پیادهسازی آن تفکر. به زبان ساده اسکرام یک جلسهی روزانه است که اعضای تیم هر روز قبل از شروع فعالیت در آن شرکت میکنند و از برنامههای انجام شده و آنی میگویند با مقایسهی این فعالیتها بازدهی و سرعت کارها به صورت قابل توجهی افزایش پیدا میکند. یکی دیگر از مزایای استفاده از اسکرام افزایش و بهبود ارتباط بین اعضای تیم است.
کانبان هم مانند اسکرام یک فریمورک توسعه چابک است. کانبان به زبان ساده یک بورد یا تابلو است که به صورت تصویری مشخص میکند چه کاری، در چه زمانی توسط اعضای تیم انجام شود. در واقع برای هر عنوان یک ستون در نظر گرفته میشود و در آن ستون آیتمهای مربوط به آن عنوان نوشته میشود. کانبان یک تابلوی منحصر به فرد نیست و هر تیم میتواند به مرور زمان با توجه به نیازمندیها و تجربیات خود، بورد شخصیاش را ایجاد کند.
خب رسیدیم به پایان مطلب و بحث ما در مورد اجایل و توسعه چابک به اتمام رسید. اگر این محتوا برای شما مناسب بود باید به شما بگویم که به دنیای چابک خوش آمدید! دنیای تیمهای سریع، جسور، کارآمد و ارزشمند! به نظرم بهتر است بعد از خواندن این مطلب، دو سوال زیر را از خود بپرسید و در مورد آنها تأمل کنید:
اجایل چیست؟
اجایل یک طرز تفکر ساده و مفید است که کمک میکند در کمترین زمان و با حداقل هزینه، یک خروجی باارزش داشته باشیم.
اصول اجایل چیست؟
در این مقاله به 12 اصل اجایل اشاره کردیم، از جمله شکستن موانع بین افراد، جلب رضایت مشتریان، برقراری ارتباط حضوری و داشتن یک سرعت ثابت.