چرا متدولوژی Agile برای توسعه اپلیکیشن موبایل

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

- ایده اپلیکیشن

- دیزاین

- برنامه‌نویسی یا توسعه

- اجرا

- و تست

توسعه اپلیکشن موبایل محصولی از کارهای زیادیه که متخصص‌ها در فیلدهای متفاوت انجام میدن، مهمتر از همه بحث مداوم بین کلاینت و شرکت توسعه دهنده است.

هر نرم‌افزاری، که شامل اپلیکیشن موبایل هم میشه، میتونه نتیجه ارتباط خوب با کلاینت در نظر گرفته بشه.

متدولوژی توسعه اپلیکیشن Agile یکی از مؤثرترین رویکردها برای هر نوع کسب و کار مربوط به توسعه نرم‌افزاره، Agile یه کانال ارتباطی مناسب رو تضمین میکنه که هم به کلاینت‌ها و هم توسعه دهنده‌ها کمک می‌کنه تا یه اپلیکیشن موبایل مطلوب یا در حقیقت هر نرم‌افزاری رو به اجرا در بیارن.

متدولوژی Agile دقیقا چیه؟

معنی دقیق Agile سریع بودن و قادر به ایجاد تغییرات سریعه، که با متدولوژی Agile هم به همین می‌خوایم برسیم.

مربوط به روشی برای مدیریت پروژه‌ست که من اونو با تقسیم کارها به مراحل کوتاه کار و ارزیابی مکرر و انطباق پلن‌ها توصیف کردم.

مشخصات متدولوژی Agile برای توسعه اپلیکیشن موبایل کار ساده‌ای ایجاد می‌کنه و بنابراین اپلیکیشن خروجی بعد از انتشارش با شرایط جدید تطبیق‌پذیره.

خب بریم در مورد Agile بیشتر بدونیم، ببینیم اصول توسعه نرم‌افزارش چیه

با توجه به مانیفستش، 12 اصل لیست شده

1- رضایت مشتری با تحویل زودهنگام و مداوم نرم‌افزارهای ارزشمند

2- پذیرفتن تغییر در الزامات، حتی در اواخر توسعه

3- نرم‌افزار تست شده و کارا به طور مکرر تحویل داده می‌شود

4- همکاری نزدیک و روزانه بین افراد تجاری و توسعه دهندگان

5- پروژه‌ها پیرامون اشخاص با انگیزه و مورد اعتماد ساخته می‌شود

6- مکالمه چهره به چهره (face to face) بهترین شکل ارتباط است

7- نرم‌افزار تست شده و کارا، اندازه اصلی پیشرفت است

8- توسعه پایدار، قادر به حفظ سرعت ثابت

9- توجه مستمر به کیفیت فنی و دیزاین خوب

10- سادگی - هنر به حداکثر رساندن میزان کار انجام نشده ضروری است

11 - بهترین معماری‌ها، الزامات، دیزاین‌ها، از تیم‌های خود-سازمان‌دهنده خارج می‌شوند

12- به طور منظم، تیم در مورد چگونگی مفیدتر شدن تامل می‌کند و منطبق بر آن تنظیم می‌کند

خب! یه بررسی اجمالی مناسب از متدولوژی Agile داشتیم و می‌دونیم برای توسعه اپلیکیشن موبایل شما عالی به نظر می‌رسه، اما در مقایسه با متدولوژی Waterfall چقدر بهتره؟

شما فکر می‌کنید کدوم یکی برای توسعه اپلیکیشن شما بهتره؟

متدولوژی Agile یا متدولوژی waterfall؟

یه درک مختصر از مدولوژی waterfall داشته باشیم بعدش هر دو رو کنار هم مقایسه می‌کنیم.

متدولوژی waterfall چیه؟

خیلی خیلی شبیه جریان کار ساخت‌وساز و تولیده; متدولوژی waterfall یک فرآیند طراحی متوالیه. معنی این حرف اینه که با تموم شدن هر یک از هشت مرحله (درک و پلن ایده، شروع، آنالیز، دیزاین، ساخت، تست، اجرا و نگهداری) توسعه‌دهنده‌ها به مرحله بعدی میرن.

این پروسه کاملا پی در پیه، تنها بعد از کامل شدن یک مرحله، مرحله بعدی پیاده‌سازی میشه، یک توسعه‌دهنده نمیتونه به مرحله قبلی برگرده.

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

مطلقا جایی برای خطا و تغییر وجود نداره، بنابراین یک نتیجه برای پروژه و یک برنامه گسترده باید در ابتدا تنظیم و سپس باید این برنامه رو با دقت دنبال کرد.

بسیار خب! در مورد تفاوت‌های بزرگ این دو روش صحبت کنیم

- متدولوژی Waterfall ساختاری داره که شما باید رعایتش کنید، و میتونه کاملا سفت و سخت باشه

متدولوژی Agile برای انعطاف‌پذیریش شناخته شده‌س و به همین دلیله که بیشتر شرکت‌های توسعه اپلیکیشن موبایل رفتن به سمتش.

- توسعه اپ موبایل باید به عنوان یک پروژه واحد، در متدولوژی Waterfall، که سپس به فازهای مختلفی تقسیم میشه، تکمیل بشه و هر فاز فقط یکبار در طول SDLC (چرخه حیات توسعه سیستم) ظاهر میشه.

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

- اگه متدولوژی waterfall رو برای توسعه اپلیکیشنتون انتخاب کنید، باید همه نیازها رو در ابتدا واضح و روشن مشخص کنید چون به محض شروع پروژه دیگه نمی‌تونید تغییرشون بدید.

در طرف دیگه، متدولوژی Agile واقعا انعطاف پذیره و اجازه تغییر در نیازمندی‌های توسعه پروژه رو میده، حتی بعد از تکمیل برنامه‌ریزی اولیه.

- همه فازهای توسعه پروژه مثل دیزاین، توسعه، تست و غیره در مدل waterfall یکبار تکمیل می‌شن درحالیکه به عنوان بخشی از متدولوژی Agile از رویکرد توسعه تکرار شونده پیروی می‌کنن. در نتیجه، برنامه‌ریزی، توسعه، نمونه‌سازی و سایر مراحل توسعه نرم افزار می‌تونه بیش از یک بار در طول SDLC ظاهر بشه. یکی از مزایای رویکرد توسعه تکرار شونده (iterative development approach) تولید سریع نرم‌افزار تست شده و کارا در طول چرخه توسعه‌ست.

- بسیار خب! یکی از تفاوت‌های بزرگ بین این دو، رویکرد به خصوص هر یک در مورد کیفیت و تسته. در مدل Waterfall، فاز "تست کردن" بعد از ساخت کامل پروژه میاد، اما در متدولوژی Agile تست معمولا همزمان با برنامه‌نویسی یا حداقل در تکرار یکسان برنامه‌نویسی انجام میشه (منظور در چرخه حیات توسعه سیستمه، همونطور که گفته شد در Agile ممکنه چند بار این چرخه رو کامل بگذریم و به فاز برنامه‌نویسی برگردیم و باید هر بار قبل از گذر از فاز برنامه‌نویسی، تست این فاز رو کامل کنیم و به چرخه بعدی واگذار نکنیم).

- درحالیکه متدولوژی Waterfall یک فرآیند داخلیه و نیازی به مشارکت مشتری‌ها نداره، رویکرد توسعه اپلیکیشن Agile روی رضایت مشتری تمرکز می‌کنه و در نتیجه، مشارکت مشتری‌ها رو وارد فاز توسعه می‌کنه.

- متدولوژی Waterfall می‌تونه به عنوان فرآیند متوالی سختگیرانه تعریف بشه، اما، متدولوژی Agile فرآیند توسعه نرم‌افزار مبتنی بر همکاریه، در نتیجه به ورودی بهتر تیم و حل سریع‌تر مشکل منتهی میشه.

- متدولوژی Waterfall بهترین گزینه برای پروژه‌هایی با نیازمندی‌هایی که واضحانه تعریف شدن و انتظار هیچگونه تغییری هم به طور کلی وجود نداره است، درحالیکه توسعه Agile از فرآیندی که تغییر در نیازمندی‌ها و تکامل یافتن انتظار میره پشتیبانی می‌کنه.

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

- و در آخر متدولوژی Waterfall طرز فکر پروژه رو نشون میده و تمرکزش رو به شدت روی تکمیل توسعه پروژه می‌ذاره، در حالی که Agile طرز فکر یک محصول رو معرفی می‌کنه که تمرکزش روی اینه که اطمینان پیدا کنه که محصول خوبی برآورده بشه و رضایت مشتری‌ها رو جلب کنه، و خودش رو بر اساس نیازهای کلاینت‌ها یا مشتری‌های شما تغییر بده.

خب دقیقا چه نیازی به متدولوژی Agile در توسعه اپلیکیشن موبایل داریم؟

می‌تونم به نوشتن در مورد متدولوژی Agile ادامه بدم، اما بذارید در چند نکته بفهمیم کجا واقعا بهش نیازه

- وقتیکه به تولید سریع نیاز دارید و نه کیفیت محصول، Agile بسیار مفید خواهد بود.

- کلاینت‌هاتون قادرن که هر موقع که نیاز داشتن، طرح نهایی پروژه رو تغییر بدن.

- اگه نمی‌دونید که محصول نهایی چطور باید باشه، حتما باید از Agile پیروی کنید.

- اگه توسعه دهنده‌های شما خیلی با استعدادن، و فکر می‌کنید وفق‌پذیرن و مستقلا فکر می‌کنن، قطعا Agile باید انتخابتون باشه.

- برای توسعه اپلیکیشن موبایل واقعا کمک کننده‌ست، چون انتظارات و استانداردها به سرعت در حال تغییره و Agile به راحتی وفق پیدا می‌کنه.

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

منبع:

https://medium.com/@edeskhub/why-agile-methodology-for-mobile-app-development-e685b41ea462