در کسب و کار، از “مدیریت چابک (Agile)” برای توصیف روشهای برنامهریزی و انجام کارهائی استفاده میشود که در آن ایجاد تغییرات در صورت لزوم بخش مهمی از کار است. «استعداد کاری» به معنای این است که یک شرکت همیشه در موقعیتی است که میتواند تغییرات بازار را در نظر بگیرد. در توسعه نرم افزار، اصطلاح “چابک” به معنای “توانایی پاسخگویی به تغییرات (تغییر در مورد نیاز، فناوری و افراد)” مورد نظر قرار میگیرد.
مانیفست چابک
تیمی از توسعه دهندگان نرم افزار با انتشار و برجسته کردن برخی موارد مهم به جهت سازگاری با نیازهای در حال تغییر و درگیری مشتری، مانیفست چابک را در سال ۲۰۰۱ منتشر کردند. در مانیفست چابک آمده است که:
“ما با انجام این کار و کمک به دیگران در انجام مدیریت تجارتشان، در حال کشف روشهای بهتر توسعه نرم افزار هستیم. از طریق این کار، ما به چنین ارزشهائی رسیدهایم:
- افراد و تعاملات بیش از فرایندها و ابزارها
- نرم افزار در حال کار بیش از مستندات جامع
- همکاری مشتری بیش از مذاکره جهت قرارداد
- پاسخ به تغییر بیش از پیروی از یک برنامه
این تعابیر به معنا آن هستند که اگر چه موارد سمت چپ ارزشمند محسوب میشوند اما در این مبحث عناوین سمت راست (که به صورت بُلد نوشته شدهاند) اولویت به حساب میآیند.
خصوصیات چابک
- چابک بر فرهنگ کل تیم با تیمهای چند رشتهای و چند منظوره متمرکز است که دارای قدرت و خود سازماندهی هستند.
- این مهم مسئولیتپذیری مشترک را تقویت میکند
- ارتباط موثر و همکاری مستمر را تسهیل میبخشد
- رویکرد کل تیم از تأخیر و هدر رفتن زمان جلوگیری میکند
- تفویضهای مکرر و مداوم بازخورد سریع را تضمین میکنند که به نوبه خود تیم را قادر میسازد تا با نیازمندیها هماهنگ شود.
- همکاری، ترکیب دیدگاههای مختلف به موقع در اجرا، رفع نقص و تغییرات سازگار را تسهیل میکند.
- پیشرفت با تأکید بر شفافیت ثابت، پایدار و قابل پیشبینی را مد نظر دارد
متدولوژی XP یا برنامهنویسی سریع چیست؟
متدولوژی XP روشی سبک، کارآمد، کم خطر، انعطافپذیر، قابل پیشبینی، علمی و سرگرم کننده برای تولید یک نرم افزار است. به بیان دیگر برنامه نویسی XP، برای پاسخگویی به نیازهای خاص توسعه نرم افزار توسط تیمهای کوچک در مواجهه با نیازهای مبهم و تغییر یافته، طراحی و توسعه یافته است.
این مهم یکی از روشهای توسعه نرم افزار چابک است که ارزشها و اصولی را برای هدایت رفتار تیم فراهم میکند و انتظار دارد تیم به مرحله خود سازماندهی برسد. برنامه نویسی سریع اقدامات اصلی خاصی را فراهم میکند تا:
- هر تمرین به جهت رسیدن به اهداف ساده باشد
- ترکیبی از شیوهها رفتار پیچیده و ظهور پذیرتری ایجاد شوند
متدولوژی XP به طور خلاصه
متدولوژی XP که مخخف عبارت Extreme Programming میباشد، شامل نوشتن تستهای واحد قبل از برنامه نویسی و نگه داشتن همه تستها در همه زمانها است. تستهای واحد به صورت خودکار انجام میشوند و نقص را زود برطرف میکنند. بنابراین هزینهها را کاهش میدهد. از طرفی شروع کار با یک طراحی ساده و به اندازه برای کدگذاری که دارای ویژگیهای موجود و طراحی مجدد در صورت لزوم باشد، خواهد بود.
برنامهنویسی به صورت جفت یا دونفره (Pair Programming)، با دو برنامهنویس در یک صفحه، طرحریزی میشود. در حالی که یکی از آنها در حال کار است، دیگری دائماً بررسی میکند و ورودیهایی را فراهم میکند. از دیگر موارد مهم این متودولوژی:
- یکپارچهسازی و آزمایش کل سیستم چندین بار در روز
- وارد کردن حداقل سیستم کاری در سرعت تولید و ارتقا آن هر زمان که لازم باشد
- مداوم نگه داشتن مشتری و گرفتن بازخورد
- تسهیل تغییرات سازگار با تکرار همزمان با تکامل نرم افزار با تغییر نیازمندیها
چرا از واژه “سریع” استفاده میکنیم؟
متدولوژی XP اصول و روشهای موثر را به سطوح سریع میرساند به صورتی که:
- بررسی کد به دلیل مرور مکرر، موثر است
- از آنجا که رگرسیون در نظر گرفته میشود، آزمایش مکرر موثر است
- طراحی موثر است زیرا همه افراد نیاز به انجام بازسازی روزانه دارند
- تست ادغام به عنوان یکپارچهسازی و آزمایش چندین بار در روز مهم است
- تکرارهای کوتاه به عنوان بازی برنامهریزی برای انتشار و تکرار موثر هستند
منشأ متدولوژی XP چیست؟
در دهه ۱۹۹۰، توسعه نرم افزار دو تأثیر اساسی داشت:
- داخلی: برنامهنویسی رویهای با برنامه نویسی شیگرا جایگزین شد.
- خارجی: فراوانی اینترنت بر رشد شرکتها و سرعت در بازار به عنوان عوامل تجاری رقابتی تأکید کرد.
پس نیازمندیها به سرعت در حال تغییر بود و این مهم به چرخههای عمر کوتاهتر محصول نیاز داشت. این روش اغلب با روشهای سنتی توسعه نرم افزار سازگار نبود در نتیجه همکاران حرفهای در مورد ایدههای مختلف بحث کرده و در نتیجه برخی روشهای جدید ایجاد شدند.
تاریخچه متدولوژی XP
در ابتدا کنت بک، وارد کانینگهام و رون جفریس به همراه رابرت مارتین و مارتین فاولر متدولوژی XP را در سال ۱۹۹۹ تنظیم کردند. در اواسط دهه ۸۰، کنت بک و وارد کانینگام برنامهنویسی جفت را در Tektronix آغاز کردند. سپس در دهه ۸۰ و ۹۰، زبان برنامهنویسی انعکاسی (Smalltalk Culture Refactoring)، ادغام مداوم، آزمایش مکرر و درگیری نزدیک مشتری را تولید کردند. این فرهنگ بعداً به سایر محیطها تعمیم یافت.
در اوایل دهه ۹۰، ارزشهای اصلی در انجمن الگوها، گروه هیل ساید (Hillside) توسعه یافتند. در سال ۱۹۹۵، کنت این موارد را در بهترین شیوههای اسمال تالک خلاصه کرد و در سال ۱۹۹۶، وارد کانینگام آن را در قسمتهایی خلاصه کرد.
در سال ۱۹۹۶، کنت تست واحد و استعاره را در Hewitt اضافه کرد. در سال ۱۹۹۶، کنت پروژه کرایسلر C3 را به کار گرفت که ران جفریس به عنوان مربی به آن اضافه شد. این روشها در C3 اصلاح و در ویکی منتشر شد.
در ادامه نیز شیوههای اسکرام به عنوان بازی برنامهریزی گنجانیده و سازگار شد. در سال ۱۹۹۹، کنت کتاب خود را با عنوان Extreme Programming Explained منتشر کرد. در همان سال، فاولر نیز کتاب خود را با عنوان Refactoring منتشر کرد. متودولوژی XP از آن زمان در حال تکامل بود.
نقشهای سازمانی موثر در متدولوژی XP
متدولوژی XP نقشهای خاصی را برای اعضای تیم تعیین نمیکند، گرچه روشهای خاصی را برای تیم تعیین میکند. چهار نقش معمول در ارتباط با مفهوم متودولوژی XP عبارتند از:
مشتری
مشتری مسئول کلیه تصمیمات پروژه است، از جمله اینکه: سیستم چه کاری باید انجام دهد؟ چگونه میتوان زمان تمام شدن سیستم را دانست؟ بودجه موجود چقدر است؟ کار بعدی چیست؟ مشتریان در این سیستم اغلب به طور فعال درگیر پروژه هستند، در واقع آنها بخشی از تیم میشوند.
مجموعه
مدیریت چابک
- همه چیز درباره مدیریت پروژه چابک
- برداشتهای نادرست از رویکرد مدیریت چابک
- مروری بر تاریخچه مدیریت چابک (Agile) و اصول آن
- مدیریت ناب (Lean Management) چیست؟
- پیاده سازی رویکرد چابک (Agile) در مقایسه با رویکرد آبشاری (Waterfall)
- آموزش مدیریت پروژه چابک با متد کانبان
- متد اسکرام در مدیریت چابک چیست؟
- معرفی انواع جلسات اسکرام (Scrum Meetings) برای بهبود عملکرد شما
- متدولوژی XP در مدیریت چابک چیست؟
- مقایسه روش چابک (Agile) و اسکرام (Scrum)، بررسی تفاوتها و شباهتها
- متد اسکرام بان چیست و چه اهمیتی در مدیریت پروژه دارد؟
- روش کانبان (Kanban) چه تفاوتی با روش اسکرام (Scrum) دارد؟
- اسکرام مستر کیست و چه وظایفی دارد؟
- امتحان و مدرک PSM (اسکرام مستر حرفهای) چیست و چگونه میتوان آن را اخذ کرد؟
- اولویتبندی رایس (RICE) چیست و چه کاربردی دارد؟
- هر آنچه باید در مورد تیم چابک (Agile Team) بدانید
- معیارهای برتر برای سنجش موفقیت در پروژه چابک
- برنامهریزی اسپرینت (Sprint Planning) در متد چابک چیست؟
- تفاوت مدیر محصول و مالک محصول چیست؟
- تفاوت میان دو نقش اسکرام مستر و مالک محصول در چیست؟
- چرخه حیات توسعه نرمافزار چیست و چه مراحلی دارد؟
- راهنمای تکنیکهای تست نرمافزار
- راهنمای کامل چارچوب چابک مقیاسپذیر (SAFe) برای رهبران
- رویکرد چابک در پشتیبانی از مشتری