تکنیک Agile یا چابک در برنامه نویسی چیست؟

معمولا این سوال از من پرسیده میشود که Agile یا به زبان فارسی، چابک چیست؟ در جواب باید بگویم یک مفهوم ساده است. یا بهتر است بگویم Agile یک کلمه دهن پرکن است که در صنعت IT به عنوان یک جایگزین برای مدیریت پروژه استفاده میشود. برای آشنایی کامل با این مفهوم با برنامه چی همراه باشید.

در این مقاله سرفصل های زیر بررسی میشوند:
تعریف چابک (Agile) به زبان ساده
Agile (چابک) از کجا آمده است؟
Agile چگونه کار میکند؟
*یک لیست درست میکنید
*همه چیز را اندازه گیری میکنید
*کارهای خودتان را اولویت بندی کنید
*اجرای نرم افزار را شروع کنید
هنگام پیشرفت کردن باید برنامه خودتان را آپدیت کنید
چرا Agile متفاوت است؟
منابع بیشتر برای مطالعه


تعریف چابک (Agile) به زبان ساده

چابک یک تکنیک در توسعه نرم افزار است که با استفاده از کارهای زمان بندی شده و تکراری، باعث میشود نرم افزار به تدریج ساخته شود. به جای اینکه سعی کنید همه آن را یکدفعه بسازید.

Agile یک فرآیند است به تیم ها کمک میکند پاسخ های سریع و غیر قابل پیش بینی برای فیدبک هایی که از پروژه دریافت میکنند، آماده کنند. چابک فرصت هایی را به وجود می آورد که مسیر پروژه را در زمان چرخه توسعه ارزیابی و بررسی کنید. تیم شما، پروژه را در جلسه های معمولی که به آنها Sprint (سرعت) یا iteration (تکرار) گفته میشود، بررسی و ارزیابی میکنند.

تعریف چابک یا Agile به زبان ساده

چابک یک روش بسیار قدرتمند و توانا است که به شرکت ها کمک میکند که محصول درستی را طراحی و تولید کنند. نوع مدیریت پروژه در این تکنیک، برای شرکت های نرم افزاری بسیار سودمند است. زیرا به آنها اجازه میدهد محصول خودشان را در زمان توسعه دادن، آنالیز کرده و قدرتمند کنند. این فرآیند شرکت ها را قادر میکند محصولاتی با ارزش بالا تولید کنند و در نتیجه موفقیت بیشتری در بازار کسب کنند.

در اصل Agile یک متدولوژی یا روش کار است که باید در هنگام برنامه نویسی و ساخت برنامه های موبایل آن را اجرا کنید. یعنی یک تکنیک برای برنامه نویسی میباشد که با استفاده از آن باید کدها را بنویسید. پس یک مرحله قبل از نوشتن کدها باید سراغ آن بروید و زیاد با خود نوشتن کدها سر و کار ندارد.


Agile (چابک) از کجا آمده است؟

در سال ۲۰۰۱، تعدادی از مردم که از روش های سنتی برای توسعه نرم افزار خسته شده بودند، تکنیک Agile را طراحی کردند. پس یک روش قدرتمند تر برای مدیریت پیشرفت در پروژه های نرم افزاری است.

کل ایده چابک چهار ارزش مهم را دنبال میکند:

  • تمرکز بیشتر باید روی شخصیت ها و تعامل آنها باشد، به جای اینکه روی فرآیند ها و ابزار دقیق بشوید.
  • یک برنامه ای که کار میکند و عملکرد درست دارد، بسیار مهم تر از یک داکیومنتیشن جامع و کامل است (Documentation یک سند است که کل اجزا و عملکرد نرم افزار را توضیح میدهد).
  • همکاری و تعامل با مشتریان بسیار حیاتی تر از بحث کردن روی قرارداد است.
  • کل فرآیند باید بتواند به تغییرات پاسخ بدهد، به جای آنکه از یک برنامه خشک و از پیش تعیین شده پیروی کند.
تکنیک Agile از کجا آمده است

۱۲ اصل اساسی در توسعه نرم افزار با تکنیک Agile وجود دارد:

  • رضایت مشتری ها را با ارائه پیوسته نرم افزار های ارزشمند جلب کنید.
  • همیشه تغییرات موارد مورد نیاز را قبول کنید، فرقی نمیکند در اوایل یا اواخر پروژه باشند.
  • برنامه هایی را تولید کنید که کارها را در زمان های کوتاه تر انجام میدهند.
  • هردوی برنامه نویسان و متخصصان کسب و کار در طول پروژه باید هر روز، بصورت نزدیک با یکدیگر کار کنند.
  • بهترین روش انتقال اطلاعات، بصورت Face to Face یا دهان به دهان در جلسه ها است.
  • مردم را تشویق کنید که پروژه را بسازند در حالیکه محیط را برای قدردانی، اعتماد و قدرتمند شدن فراهم میکنند.
  • برنامه ای که عملکرد درست دارد، اصلی ترین میزان اندازه گیری پیشرفت است.
  • تکنیک چابک توسعه و تولید نرم افزار بصورت پایدار را ترویج میدهد.
  • توجه مداوم به کامل بودن و کیفیت در توسعه تکنیکی برنامه ها و طراحی آنها، Agile را تقویت میکند.
  • ساده بودن یک بخش بسیار ضروری از مدیریت سودمند بصورت چابک شده است.
  • تیم هایی که خودشان، خودشان را سازمان بندی میکنند، بهترین معماری، محصول و طراحی را تولید میکنند.
  • تیم ها خودشان را در بازرسی و توانایی تغییر پذیری برای بازدهی بیشتر نشان میدهند.

Agile چگونه کار میکند؟

Agile اینگونه کار میکند که ابتدا پروژه را به قسمت های کوچکی بر اساس عملکرد کاربر به نام User Strories تقسیم میکنیم، آنها را اولویت بندی میکنیم، سپس سعی میکنیم هرکدام از آنها را در چرخه های زمانی ۲ هفته ای تکمیل کنیم که به این چرخه ها iteration (به معنی تکرار) گفته میشود.

به زبان ساده تر چابک همان کاری را انجام میدهد که من و شما وقتی کارهای زیاد و زمان کمی داریم انجام میدهیم. حالا مرحله های این کار را با یکدیگر مرور میکنیم:


۱- یک لیست درست میکنید

وقتی که با مشتری یا کارفرمای خودتان صحبت میکنید، یک لیست از خصوصیت ها و ویژگی هایی که آنها میخواهند در نرم افزار خودشان داشته باشند درست میکنید. ما به مواردی که در این لیست هستند User Stories میگوییم. این موارد به یک To Do List تبدیل میشوند که برای پروژه باید از آن استفاده کنید.


۲- همه چیز را اندازه گیری میکنید

در این مرحله باید از تکنیک های تخمین زدن مربوط به Agile استفاده کنید، سپس همه این User Story ها را نسبت به یکدیگر زمان دهی کنید. باید بتوانید حدس بزنید که چه مدت زمان میبرد هرکدام از این موارد چه مقدار طول خواهد کشید.


۳- کارهای خودتان را اولویت بندی کنید

مانند بیشتر لیست ها، همیشه به نظر میرسد بیشتر از وقتی که دارید، کار برای انجام دادن درون آن وجود دارد. پس باید از مشتری یا کارفرمای خودتان بخواهید اولویت ها را برای شما مشخص کند تا بتوانید مهمترین موارد را اول انجام بدهید و آنهایی که کم اهمیت تر هستند را آخر انجام بدهید.


۴- اجرای نرم افزار را شروع کنید

سپس شروع میکنید یک مقدار ارزش برای مشتری درست میکنید. یعنی مواردی که در لیست نوشته اید را از بالا به پایین یکی یکی عملی میکنید. چرخه ساخت، تکرار و گرفتن فیدبک از مشتری یا کارفرما را ممکن است به دفعات انجام بدهید.


۵- هنگام پیشرفت کردن باید برنامه خودتان را آپدیت کنید

وقتی که شما و مشتری (کارفرما) ساختن را شروع میکنید، یکی از این دو مورد اتفاق خواهد افتاد. متوجه میشوید که:

  1. شما دارید با سرعت مناسب پیشروی میکنید، همه چیز خوب است. یا،
  2. کارهای بسیار زیادی برای انجام دادن دارید و وقت کافی ندارید.

در این مرحله شما دو انتخاب دارید. شما میتوانید یا کار کمتری انجام بدهید و محدوده کاری را کوتاه تر کنید (که همین روش پیشنهاد میشه). یا اینکه از کارفرمای خودتان زمان بیشتر و پول بیشتری را بخواهید.


چرا Agile متفاوت است؟

آنالیز کردن، طراحی، کدنویسی و تست کردن فعالیت هایی هستند که همواره با آنها درگیر هستید.

شما هیچوقت از دست آنالیز کردن، طراحی، کدنویسی و تست کردن در پروژه های چابک شده راحت نمیشوید. تا زمانی که هنوز امکانات جدیدی برای ساختن و پیاده کردن در برنامه وجود دارد، این فعالیت ها در طول پروژه ادامه خواهند داشت. در ادامه مقاله میخواهیم چند مورد از تفاوت های Agile را با یکدیگر بررسی کنیم. با ما همراه باشید.

چرا تکنیک agile‌ متفاوت است
  • توسعه، تکراری است: توسعه تکراری به این معنی است که شما با یک چیز واقعا ساده شروع میکنید و به تدریج و به طور مداوم در طول زمان به آن بقیه موارد را اضافه مینمایید.
    کل این پروسه به معنی این است که معماری تکامل یافته میشود. شما قبول میکنید که نیازهایتان قرار است تغییر کند، و محصول شما به صورت مداوم تصفیه و اصلاح میشود.
  • برنامه ریزی، قابل انعطاف است: وقتی که واقعیت برخلاف برنامه های شما پیش میرود، کسانی که از Agile استفاده میکنند برایشان تغییر برنامه، راحت تر از تغییر واقعیت هاست.
    در حالیکه راه های زیادی برای تغییر برنامه ها وجود دارد، راهی که ترجیح داده میشود این است که بر اساس هدف، برنامه ها را تغییر بدهید.
  • نقش ها محو هستند: نقش ها در پروژه های Agile واقعا محو هستند. وقتی که این تکنیک به درستی اجرا بشود، پیوستن به یک تیم چابک، مانند عضویت در یک استارتاپ کوچک است. یعنی افراد عضو گروه میشوند و هرکاری که لازم باشد (بدون توجه به عنوان و نقش خودشان) انجام میدهند تا پروژه موفق بشود.
برنامه ریزی منعطف

البته، مردم هنوز هم صلاحیت ها و استعداد های منحصر به فرد خودشان را دارند و بیشتر در حوزه هایی که در آنها صلاحیت بیشتری دارند مشغول کار میشوند. اما در یک پروژه Agile، عنوان های نزدیک به هم مانند آنالیز کننده، برنامه نویس و تست کننده واقعا وجود ندارند. حداقل میتوان گفت به شکل سنتی دیگر وجود ندارند.


منابع بیشتر برای مطالعه

توسعه تکراری در چابک

تکنیک های Agile (چابک) بحث های بسیار گسترده ای دارد که در فرصت های بعدی درباره آنها توضیحات بیشتری ارائه میدهیم. اکنون میتوانید با استفاده از منابعی که در این قسمت معرفی میکنیم، اطلاعات خودتان را کامل تر کنید.

اگر شما هم در این باره تجربه یا اطلاعاتی دارید، آن ها را با دیگر کاربران و ما، در قسمت نظرات (همین پایین)، به اشتراک بگذارید.

  1. بازتاب: اسکرام یا Scrum در برنامه نویسی چیست و چگونه آنرا اجرا کنیم؟ | برنامه چی

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا