Agile یکی از متداول ترین متدولوژی های مدیریت و توسعه پروژه های وب است. یک نظرسنجی نشان می دهد که بیش از نیمی از 601 پاسخ دهنده در حال حاضر از Agile در مقابل رویکردهای سنتی مانند Waterfall استفاده می کنند.
اگر قبلاً نام Agile را شنیده اید، ممکن است بخواهید بدانید که چگونه می تواند به شما در دستیابی به اهداف توسعه وب سایت کمک کند. خواه توسعه دهندهای باشید که میخواهید روشهای مختلف مدیریت پروژههای وب را یاد بگیرید یا کارآفرینی که میخواهید بدانید چگونه با توسعهدهندگانی که از Agile استفاده میکنند کار کنید، این مقاله اطلاعات اولیهای را که برای یادگیری در مورد آن نیاز دارید پوشش میدهد. این موارد عبارتند از Agile چیست، ارزشهای اصلی و اصول راهنمای آن، چگونه کار میکند، و مزایا و معایب آن چیست.
Agile اصطلاحی جامع برای متدولوژیهای مختلف توسعه نرمافزار است که از “sprints” یا چرخههای توسعه کوتاه استفاده میکنند تا بهترین محصول را از طریق بازخورد مداوم، تکرار و همکاری به مشتریان ارائه دهند. این شامل:
هدف Agile افزایش بهره وری در توسعه نرم افزار است. این شامل تقسیم یک پروژه به چند مرحله است. هر فاز را میتوان تکمیل، آزمایش، اصلاح و راهاندازی کرد، بهجای اینکه منتظر بمانیم تا کل پروژه به پایان برسد و آن را به یکباره اجرا کنیم.
Agile ریشه های خود را در اوایل سال 1957 دنبال می کند، زمانی که رویکردهای توسعه نرم افزار افزایشی معمول بود. تنها در دهه 1970 توسط ویلیام رویس، که مطالعه ای در مورد توسعه سیستم های نرم افزاری در مقیاس بزرگ انجام داد، به طور عمیق مورد بحث قرار گرفت.
سه دهه بعد، 17 توسعهدهنده نرمافزار Agile Manifesto را ایجاد کردند. این چهار ارزش اصلی و 12 اصل Agile و همچنین مزایای آن را به عنوان یک رویکرد کارآمد و مردم محور برای توسعه نرم افزار ارائه می دهد.
این چهار ارزش اصلی به عنوان پایه و اساس Agile عمل می کنند.
Agile برای افراد بیشتر از ابزارها یا فرآیندها ارزش قائل است. افراد پشت سر پروژه باید به همه نیازها و تغییرات در زمان بروز پاسخ دهند و در نهایت روند توسعه را هدایت کنند، نه برعکس.
زمان مهم است. توسعه دهندگان نباید هر یک از مشخصات فنی، طرح، آزمایش یا تأیید را مستند کنند. Agile یک فرآیند ساده را برای آنها فراهم می کند تا بر آنچه واقعاً برای تکمیل پروژه نیاز دارند تمرکز کنند.
در حالی که مذاکره در مورد قرارداد و الزامات مشتری مهم است، مشارکت آنها در طول فرآیند توسعه وب اغلب به نتایج بهتری منجر می شود. هنگامی که یک مشتری به طور فعال در جلسات یا دموهای دوره ای شرکت می کند، می تواند به راحتی نیازهای خود را بیان کند. از این رو، آنها به احتمال زیاد از محصول راضی خواهند بود.
تغییر اغلب به عنوان یک هزینه سربار در نظر گرفته می شد، بنابراین توسعه دهندگان می خواستند از آن اجتناب کنند. اما بر اساس مانیفست چابک، تغییر مانند زبانهای برنامهنویسی یا فناوریهای جدید میتواند ابزار ارزشمندی برای ایجاد محصولات عالی باشد. توسعه دهندگان تشویق می شوند که به این تغییرات و همچنین تغییراتی که توسط مشتریان، کاربران و بازار آنها ایجاد می شود، فوراً پاسخ دهند.
اصول Agile توسعه دهندگان وب را راهنمایی می کند که در حال حاضر روش مدیریت پروژه چابک خالص را اتخاذ می کنند یا به آن تمایل دارند تا بتوانند شانس موفقیت خود را در پروژه های توسعه وب خود افزایش دهند.
Agile به رضایت مشتری اهمیت زیادی می دهد. تغییر همیشه در طول فرآیند توسعه وب مورد استقبال قرار می گیرد. به همین دلیل است که Agile از اسپرینت استفاده می کند، که یک تخصیص زمانی برای مجموعه ای از وظایف و نقاط عطف خاص است که توسط مشتری تعریف شده است.
مشتریان نقش اصلی را در این فرآیند ایفا می کنند و باید آماده باشند تا قبل از اینکه تیم بتواند به مرحله بعدی برود، زمان و تلاش خود را برای ارزیابی و بررسی هر توسعه صرف کنند. می توانند وب سایت را قبل از راه اندازی آزمایش کنند یا نسخه بتا را برای جمع آوری بازخورد کاربران منتشر کنند. سپس، توسعهدهندگان هنگام ایجاد تغییرات لازم در وبسایت، بازخورد کاربر را در نظر خواهند گرفت. تعمیر و نگهداری مداوم نیز به همان اندازه مهم است.
به طور کلی، Agile یک رویکرد مناسب برای مشتریانی است که خواهان حضور و کنترل هر چه بیشتر در پروژه توسعه وب هستند. همچنین برای صنایعی که در محیطی پرسرعت فعالیت می کنند، مانند فناوری اطلاعات، مخابرات و بانکداری ایده آل است. این صنایع به انعطاف پذیری، سرعت و بهره وری برای همگام شدن با سرعت سریع و تقاضاهای در حال تغییر مشتریان خود وابسته هستند. از آنجایی که این مشتریان از ابتدا تا انتها با توسعه دهندگان وب کار می کنند، پروژه آنها می تواند در مدت زمان کوتاه تری تکمیل شود.
چابک ممکن است متدولوژی مناسبی برای موارد زیر نباشد:
توسعه وب شامل چندین مرحله است که در آن ارتباط مداوم بین مشتری و توسعه دهنده در اولویت قرار دارد. در صورتی که نیاز به تغییر برخی ویژگیها وجود داشته باشد، توسعهدهندگان و روشی که استفاده میکنند باید به اندازه کافی انعطافپذیر باشند تا بدون ایجاد تأخیر قابل توجه در فرآیند، آن تغییرات را تطبیق دهند.
با این حال، اگر بازخوردها و درخواستهای مشتری پس از اتمام کل پروژه ارائه میشد، توسعهدهندگان باید همه چیز را دوباره انجام دهند تا آن را مطابق با آن اصلاح کنند. بنابراین می توان انتظار تاخیر داشت. Agile این مشکل بالقوه را از بین می برد زیرا یک پروژه توسعه وب را به چندین مرحله تقسیم می کند که می توانند یک به یک تکمیل شوند. همچنین از اسپرینت برای سرعت بخشیدن به روند توسعه استفاده می کند. به مشتریان به اندازه خود توسعه دهندگان کنترل پروژه داده می شود. این به این معنی است که هر تغییری که مایل به اعمال آنها هستند میتواند فوراً ارتباط برقرار و اجرا شود و در وقت و هزینه همه صرفهجویی شود.