داخل وبلاگها و وب سایتهای فارسی زبان(مربوط به برنامه نویسی) که جستجو میکنیم شاهد کلمه ای هستیم که تازه به چشممان میخورد:Agile(چابک). البته لازم به ذکر است این کلمه چیز جدیدی نیست و سابقه ای در حدود 10 سال دارد(February 2001 ).که جمعی از برنامه نویسان بیانیه ای را تحت عنوان چابک (Agile ) تهیه کردند که متن آن به شرح زیر است:
ما با توسعه نرم افزار و کمک به دیگران در انجام آن . در حال کشف راههای بهتری برای توسعه نرم افزار هستیم. از این طریق باید دست یابیم به ارزش :
- افراد و تعاملات بالاتر از فرآیندها و ابزارها
- نرم افزار کارکننده بالاتر از مستندات جامع
- مشارکت مشتری در انجام کار بالاتر از قرارداد کار
- پاسخگویی به تغییرات بالاتر از پیروی یک طرح
با وجود اینکه موارد سمت چپ نیز ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم .
که این بیانیه بر پایه 12 اصل(Agile principles)
- بالاترین اولویت ما جلب رضایت مشتری با تحویل زود و مداوم نرم افزاری ارزشمند میباشد
- استقبال از تغییر نیازمندی ها، حتی در اواخر فرآیند توسعه. فرآیندهای چابک، تغییر را در جهت مزیتِ رقابتی مشتری مهار میکنند
- تحویل زود به زود نرمافزار قابل استفاده دو، سه هفته یک بار تا دو ، سه ماه یک بار با ترجیح بر فاصلههای زمانی کوتاهتر
- ذی نفعان کسب و کار و توسعه دهندهها میبایست به صورت روزانه در طول پروژه با هم کار کنند
- پروژهها را بر دوش افراد با انگیزه بنا کنید. فضای لازم رابه آنها بدهید و از نیازهای آنها پشتیبانی کنید وبه آنها اعتماد کنید تا کارها را انجام دهند
- کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم ، گفتگوی چهره به چهره است
- نرم افزار قابل استفاده اصلیترین معیار سنجش پیشرفت است
- فرآیندهای چابک توسعه پایدار را ترویج میدهندحامیان مالی , توسعه دهندگان و کاربران باید بتوانند سرعت پیشرفت ثابتی را برای مدت نامحدودی حفظ کنند
- توجه مداوم به برتری فنی و طراحی خوب باعث افزایش چابکی میشود
- سادگی -- هنر به حداکثر رساندن مقدار کار انجام نشده -- ضروری است
- بهترین معماریها , نیاز مندیها و طراحیها از تیمهای خود سازمانده پدید آور میشود
- در فواصل منظم , تیم برچگونگی موثرتر شدن تامل وتفکر مینماید و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو مینماید
متاسفانه در ایران حالا یا به علت سواد کم و یا به هر علتی از این بیانیه برداشتهایی متفاوت و غلط عده ای اونو به بازی تشبیه کردن و عده ای هم با اون کار میکنن ولی هیچکدوم از اصلهای اونو رعایت نمیکنن و بعد که پروژه شکست خورد میگن:متدولوژی خوب نبود و ... .
وقتی کتاب Agile Principles, Patterns, and Practices in C# رو مطالعه میکنید به این نتیجه میرسید که بیشترین چیزی که تاکید داره روی ارتباطات هستش.
قصد دارم در قالب چند پست به شما این اصول رو معرفی کنم.