فلسفه، ذهنیت، رویکرد یا حتی متدولوژی؛ فارغ از آنکه «اجایل/Agile» را تحت چه عنوانی معرفی کنیم، باید با انبوهی از عبارات و اصطلاحات مرتبط با آن آشنا شویم تا به درکی بهتر از این مفهوم برسیم.
این دقیقاً همان کاری است که اینجا میخواهیم به سادهترین شکل ممکن انجام دهیم. در این مطلب فهرستی از حدود 100 کلمه، عبارت و اصطلاح مربوط به ذهنیت «چابک» را گرد هم آوردهایم؛ شما میتوانید از این یادداشت بهعنوان مرجعی برای یادگیری، یادآوری یا شفافسازی تمامی مفاهیم مرتبط با اجایل استفاده کنید.
راهنمای استفاده: نیازی نیست تمام عبارات و اصطلاحات موجود در این مطلب را از ابتدا به حافظه بسپارید. بلکه میتوانید تنها زمانی که به یک اصطلاح یا ترکیب جدید برخوردید، آن عبارت را در این صفحه جستجو کرده و به تعریف آن دست پیدا کنید. یا برای مثال، اگر میخواهید با متد اسکرام کار کنید به سرفصل موردنظر آن رفته و اصطلاحات تخصصی آن موضوع را مطالعه کنید. این فهرست حالت مرجعگونه دارد.
اجیلیتی مرکز آموزش تخصصی اجایل، مدیریت پروژه و مهارتهای نرم است؛ با منابع حرفهای ما، آموزش Agile را از پایه تا پیشرفته یاد بگیرید.
مفاهیم پایهای اجایل
-
ذهنیت اجایل/Agile Mindset
روشی از تفکر که سازگاری، همکاری، تمرکز بر مشتری و بهبود مستمر را به فرایندها و برنامههای سختگیرانه از پیشتعیینشده ترجیح میدهد. این ذهنیت تغییر را میپذیرد، یادگیری بر مبنای بازخورد را تشویق میکند و اولویت را به ارائه سریع و مداوم ارزش میدهد. این رویکرد بیش از هر چیز در سازمانها و تیمهای توسعه محصولات دیجیتال و نرمافزار و اپلیکیشن کاربرد دارد.
-
مانیفست اجایل/Agile Manifesto
سندی بنیادین که در سال 2001 توسط 17 توسعهدهنده نرمافزار نوشته شد و چهار ارزش اصلی و اصول کلیدی در راه و روش اجایل را بیان میکند. مانیفست اجایل آغازگر تحول بزرگی در دنیای توسعه نرمافزار به سمت روشهای چابک و انسانیتر بود.
-
اصول اجایل/Agile Principles
12 اصل اساسی که دستورالعمل و نحوه بهکارگیری متدهای اجایل و پایهگذار رفتارهای عملی در تیمهای اجایل هستند. هدف این اصول تمرکز بر خلق ارزش، همکاری سازنده بین اعضای تیم، ذینفعان پروژه و کاربران و مشتریان است. این 12 اصل عبارتند از:
-
رضایت مشتری را از طریق تحویل زودهنگام و مداوم ارزش جلب کنید.
هدف اصلی اجایل، ارائه سریع و پیوسته محصولات مفید برای جلب رضایت مشتری است. -
تغییرات نیازمندیها را حتی در مراحل پایانی پروژه بپذیرید.
اجایل تغییر را فرصتی برای بهبود محصول میداند، نه تهدیدی برای برنامه. -
نرمافزارهای کارآمد را بهطور منظم، در بازههای زمانی کوتاه تحویل دهید.
تحویل مکرر باعث بازخورد سریعتر و پیشرفت مداوم میشود. -
توسعهدهندگان و صاحبان محصول باید هر روز در طول پروژه با هم کار کنند.
ارتباط روزانه باعث همراستایی و تصمیمگیری سریعتر میشود. -
پروژهها را با انگیزهبخشیدن به افراد توانا بسپارید و به آنها اعتماد کنید.
افراد باانگیزه و خودگردان، نتایج بهتری تولید میکنند. -
مؤثرترین روش انتقال اطلاعات، گفتوگوی رودرروست.
ارتباط مستقیم سریعتر، شفافتر و بدون سوءتفاهم است. -
نرمافزار کارآمد، معیار اصلی پیشرفت است.
پیشرفت واقعی فقط با تحویل محصول قابلاستفاده سنجیده میشود. -
فرایندهای چابک توسعه پایدار را تضمین میکنند.
تیمها باید بتوانند با سرعت ثابت و قابلدوام در طول زمان کار کنند. -
توجه مداوم به برتری فنی و طراحی خوب، چابکی را افزایش میدهد.
کد تمیز و طراحی اصولی، سرعت و کیفیت را در آینده تضمین میکنند. -
سادهسازی هنر بیشینهکردن کار انجامنشده است.
اجایل از پیچیدگی پرهیز میکند و فقط آنچه واقعاً لازم است انجام میدهد. -
بهترین معماریها، الزامات و طرحها از تیمهای خودسازمانده پدید میآیند.
وقتی تیمها کنترل تصمیمات خود را داشته باشند، نتایج بهتری خلق میکنند. -
تیمها باید در بازههای زمانی منظم، عملکرد خود را بازتاب دهند و آن را بهبود بخشند.
بازنگری دورهای باعث یادگیری، رشد و پیشرفت پایدار تیم میشود.
-
ارزشهای اجایل / Agile Values
در قلب مانیفست اجایل، 4 ارزش بنیادین وجود دارد که همه روشها و چارچوبهای اجایل بر پایه آنها بنا شدهاند. این چهار ارزش که پایههای تفکر چابک هستند، عبارتند از:
-
ارجحیت افراد و تعاملات نسبت به فرایندها و ابزارها
-
ارجحیت نرمافزار کارآمد نسبت به مستندسازیهای بیمورد
-
ارجحیت همکاری با مشتری نسبت به مذاکرات تجاری و قراردادها
-
ارجحیت انعطافپذیری در برابر تغییرات نسبت به پیروی از یک برنامه سفتوسخت
-
مربی اجایل / Agile Coach
فردی حرفهای که به افراد، تیمها یا سازمانها کمک میکند تا تفکر و شیوههای اجایل را یاد بگیرند، بهکار بگیرند و در آنها رشد کنند. مربی اجایل نقش راهنما، تسهیلگر و مشاور را دارد، موانع را برمیدارد، فرهنگ یادگیری و همکاری را تقویت میکند و مسیر تحول اجایل را هموار میسازد. او مدیر نیست، بلکه بیشتر شبیه یک منتور حرفهای عمل میکند.
-
چارچوبهای اجایل / Agile Frameworks
رویکردها و متدهایی ساختارمند برای پیادهسازی اصول و ارزشهای اجایل در عمل؛ چارچوبها به تیمها کمک میکنند تا نقشها، فرایندها و همکاری خود را بهتر سازماندهی کنند. هر چارچوب تفسیری متفاوت از اجایل ارائه میدهد که متناسب با اندازه تیم، اهداف و شرایط سازمان است. از جمله چارچوبهای معروف اجایل میتوان به اسکرام / Scrum، کانبان / Kanban، سیف / SAFe و برنامهنویسی افراطی / XP اشاره کرد.
چارچوبها و متدهای اجایل
در ابتدا اگر میخواهید با «انواع متدولوژی های اجایل» آشنا شوید، به مطلب آن مراجعه کنید.
-
اسکرام / Scrum
چارچوبی چابک برای مدیریت پروژه که کار را به بخشهای کوچک به نام اسپرینت تقسیم میکند و با تیمهای خودسازمانده و تحویل مستمر، ارائه خروجی ارزشمند را تضمین میکند.
این چارچوب دارای نقشهایی مشخص مانند مالک محصول / Product Owner، اسکرام مستر / Scrum Master و تیم توسعه /ِ Developers و همینطور جلسات منظم مانند اسپرینت ریویو / Sprint Review، اسپرینت رتروسپکتیو / Sprint Retrospective و دیلی استندآپ / Daily Standup است. تمامی این مفاهیم در بخش اختصاصی مربوط به اسکرام شرح داده شدهاند.
-
کانبان / Kanban
روشی تصویری برای مدیریت جریان کار است که با استفاده از برد کانبان / Kanban Board، تمرکز بر تحویل پیوسته، محدودسازی کار در حال انجام / Work In Progress و بهینهسازی جریان دارد. این سیستم به تیمها کمک میکند تا گلوگاهها و گرههای پروژه را شناسایی کرده و بهرهوری را با جریان کاری بدون اصطکاک و روان بهبود دهند.
اسکرامبان / ScrumBan
ترکیبی از Scrum و Kanban است که ساختار اسپرینت و نقشهای Scrum را با انعطاف و بصریسازی Kanban ادغام میکند تا تیمها تطبیقپذیرتر و چابکتر باشند. مناسب برای تیمهایی است که محدودیتهای اسپرینت در اسکرام برایشان دستوپاگیر است ولی همچنان به ساختار نیاز دارند.
-
نکسوس / Nexus
چارچوبی برای مقیاسدادن به Scrum است که چند تیم اسکرام را در یک ساختار هماهنگ میکند و با نقشها و رویدادهای مشترک، یکپارچگی محصول را حفظ میکند. مناسب برای پروژههایی است که تیمهای متعدد روی یک محصول یا هدف مشترک کار میکنند.
-
کریستال / Crystal
مجموعهای از متدولوژیهای چابک با رنگهای مختلف است که بسته به اندازه تیم و سطح حساسیت پروژه، روش مناسب را انتخاب میکند و تمرکز زیادی بر افراد، تعاملات و انطباقپذیری دارد. رویکرد آن «انسانمحور» است و باور دارد که تیمها بهترین شیوه کار خود را بهتر از دیگران میدانند.
-
مدل اسپاتیفای / Spotify Model
مدلی الهامگرفته از سازمان Spotify است که ساختار شرکت را به جوخه / Squad، قبیله / Tribe، چپتر یا شعبه / Chapter و صنف / Guild تقسیم میکند تا نوآوری، خودمختاری تیمها و مقیاسپذیری اجایل را تقویت کند. ساختار آن بیشتر فرهنگی و سازمانی است تا فرآیندی و آزادی عمل را با همراستایی تلفیق میکند.
-
اجایل انضباطی / Disciplined Agile
یک متد جامع و قابل تنظیم برای چابکسازی کل سازمان است که با ترکیب بهترینهای اجایل، لین و اسکرام به شما امکان میدهد مسیر درست را «انتخاب» کنید، نه فقط از یک نسخه پیروی کنید. شعار آن «انتخاب هوشمندانه» است و به سازمانها اجازه میدهد چارچوبی متناسب با نیاز خاص خود طراحی کنند.
-
تحویل اجایل منظم / Disciplined Agile Delivery
زیرمجموعه DA است که بر چرخه کامل تحویل محصول تمرکز دارد - از آغاز تا اجرا و پشتیبانی - با تأکید بر تحویل ارزش در دنیای واقعی. برخلاف Scrum که بیشتر بر توسعه تمرکز دارد، DAD کل مسیر تولید تا تحویل و عملیات را پوشش میدهد.
-
برنامهنویسی مفرط / Extreme Programming
XP روشی چابک برای توسعه نرمافزار است که با تکنیکهایی مانند برنامهنویسی دونفره / Pair Programming، توسعه مبتنی بر تست / Test-Driven Development و ادغام مداوم / Continuous Integration، کیفیت کد را بالا میبرد و به تغییرات سریع پاسخ میدهد. هدف اصلی آن کاهش ریسک در توسعه و ارائه نرمافزاری با بالاترین کیفیت در کوتاهترین زمان است.
-
سیف / SAFe
سیف یا Scaled Agile Framework چارچوبی برای پیادهسازی اجایل در سطح سازمانی است که ذهنیت چابک را به سطح تیمها، برنامهها و مدیریت سازمانی گسترش میدهد تا همه بخشها همراستا باشند. با استفاده از مفاهیمی مانند قطار انتشار چابک / Agile Release Train، همزمان چند تیم را در راستای یک هدف استراتژیک هماهنگ میکند.
-
توسعه نرمافزار ناب / Lean Software Development
تفکری ناب برای حذف اتلافها، بهینهسازی جریان ارزش، تمرکز بر مشتری و تحویل سریع با حداکثر کیفیت؛ در توسعه نرمافزار، تولید، مدیریت و فراتر از آن. ریشه در تولید ژاپنی (تویوتا) دارد و اکنون در تمام صنایع از استارتاپ تا سازمانهای بزرگ کاربرد دارد.
-
توسعه سریع نرمافزار / Rapid Application Development
روشی برای توسعه سریع نرمافزار است که با نمونهسازی مکرر، بازخورد کاربر و تیمهای چندتخصصی، چرخه توسعه را به شدت کوتاه میکند. هدف آن کاهش زمان تولید و ارائه نرمافزارهایی با کیفیت قابل قبول در بازههای زمانی فشرده است.
-
توسعه ویژگیمحور / Feature-Driven Development
رویکردی مدلمحور و تکرارشونده است که توسعه نرمافزار را حول محور فیچرها سازماندهی میکند، با تمرکز بر طراحی از ابتدا و تحویل گامبهگام. در پروژههای بزرگ با نیاز به برنامهریزی دقیق و تیمهای متعدد، بسیار مؤثر است.
-
توسعه رفتار محور / Behaviour-Driven Development
روشی توسعهمحور بر رفتار سیستم است که نیازها را با زبان قابل فهم برای همه (حتی غیرتوسعهدهندگان) تعریف میکند تا ارتباط بین تیم فنی و بیزینس روانتر شود. سناریوهای BDD معمولاً با فرمت «Given-When-Then» نوشته میشوند تا وضوح و قابلیت تست را بالا ببرند.
-
روش توسعه سیستمهای پویا / Dynamic Systems Development Method
یکی از متدهای اولیه Agile است و در پروژههای بزرگ سازمانی همچنان محبوب است. چارچوبی چابک و جامع است که در آن، تحویل بهموقع محصول مهمتر از عملکردهای کامل است و از طریق اولویتبندی، نمونهسازی و همکاری مستمر انجام میشود.
-
فرایند یکپارچه چابک / Agile Unified Process
روشی ساختارمند برای توسعه نرمافزار است که فازبندیشده و مستندسازیشده پیش میرود و نسخه چابک آن یعنی AUP سعی دارد اصول Agile را درون ساختار RUP بیاورد. مناسب برای پروژههایی است که هم به انعطاف نیاز دارند و هم به کنترل و پیروی از استانداردها.