CodeGym /وبلاگ جاوا /Random-FA /متدولوژی های توسعه نرم افزار
John Squirrels
مرحله
San Francisco

متدولوژی های توسعه نرم افزار

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

آبشار

روش آبشار یکی از قدیمی‌ترین روش‌ها است و شامل اجرای کاملاً متوالی است: هر مرحله باید قبل از شروع مرحله بعدی تکمیل شود. به عبارت دیگر، انتقال به مرحله بعدی به این معنی است که کار مرحله قبل 100٪ کامل شده است. تصویر نحوه کار را نشان می‌دهد: ابتدا مسئله را تجزیه و تحلیل می‌کنیم (وظایف را مستند می‌کنیم، چالش‌ها را مورد بحث قرار می‌دهیم)، سپس طراحی می‌کنیم (ساختار پروژه در این مرحله شکل می‌گیرد)، و سپس کدنویسی و آزمایش می‌کنیم. بازگشت به مراحل قبلی مجاز نمی باشد. این رویکرد برای پروژه‌های کوچکی توصیه می‌شود که الزامات آن از قبل شناخته شده و بعید است تغییر کند. روش های توسعه نرم افزار - 2مزایای:
  • مستندات کامل و منسجم در هر مرحله
  • راحتی در استفاده
  • الزامات پایدار
  • بودجه و ضرب الاجل از پیش تعریف شده است
معایب:
  • حجم زیادی از اسناد
  • خیلی انعطاف پذیر نیست
  • مشتری نمی تواند نسخه آزمایشی محصول را ببیند
  • هیچ گزینه ای برای حرکت به عقب وجود ندارد

اسکرام

اسکرام یک متدولوژی توسعه نرم افزار است که کل فرآیند را به تکرارها تقسیم می کند. در پایان هر تعامل، تیم آماده ارائه نسخه آزمایشی محصول است. تصویر نشان می دهد که تیم تمام مراحل توسعه را به طور موازی پیش می برد و این امکان را فراهم می کند که در پایان هر تکرار، یک قسمت تمام شده از پروژه داشته باشیم. روش های توسعه نرم افزار - 3من سعی خواهم کرد به طور خلاصه ماهیت روش شناسی را با استفاده از کلمات ساده توضیح دهم، اما اصطلاحات زیادی وجود دارد. من فکر می کنم مهم ترین چیز درک اصل است. اصطلاحات را با تجربه به خاطر خواهید آورد. تمام رشد به دوی سرعت (اغلب 2-3 هفته) تقسیم می شود. یک بک لاگ (لیست وظایف) برای کل دوره توسعه و برای هر اسپرینت جداگانه وجود دارد . هر وظیفه نقطه داستانی خاص خود را دارد (رده بندی دشواری). هر شرکت کننده در این فرآیند نقشی دارد:
  • تیم اسکرام متشکل از افراد حرفه ای (توسعه دهندگان، آزمایش کنندگان، طراحان) است که روی یک پروژه کار می کنند.
  • اسکرام مستر شخصی است که از رعایت اصول اسکرام اطمینان حاصل می کند.
  • صاحب محصول مشتری است.
این روش بر ارتباطات متکی است، بنابراین تعداد زیادی از جلسات وجود دارد:
  • استندآپ - این یک جلسه کوتاه است که هر روز برگزار می شود و همه اعضای تیم در آن شرکت می کنند. هر شرکت کننده به 3 سوال پاسخ می دهد: من چه کار کردم؟ چه کار خواهم کرد؟ و چه مشکلاتی برای مسدود کردن وجود دارد؟
  • جلسه برنامه ریزی – این جلسه در ابتدای دوی سرعت برگزار می شود. وظایفی که باید در اسپرینت بعدی انجام شود در این جلسه مشخص می شود.
  • گذشته نگر - این جلسه در پایان دوی سرعت برگزار می شود و هدف آن شناسایی مواردی است که به خوبی انجام شده و چه چیزی می تواند بهبود یابد.
مزایای:
  • مشتری می تواند نتایج را در طول فرآیند توسعه ببیند
  • نظارت روزانه بر روند توسعه
  • توانایی انجام تنظیمات در طول توسعه
  • با تمام اعضای تیم ارتباط برقرار کرد
  • مقدار کمی از اسناد
معایب:
  • ارزیابی نیروی کار و سایر هزینه های مورد نیاز برای توسعه دشوار است
  • شناسایی تنگناها قبل از شروع توسعه دشوار است
  • نیاز به مشارکت همه در کار سایر اعضای تیم.

کانبان

کانبان روشی مبتنی بر تجسم پیشرفت انجام شده در انجام وظایف تیم است. ایده اصلی کاهش تعداد کارهایی است که در حال حاضر انجام می شوند (در ستون "در حال انجام"). در اسکرام، تیم روی انجام موفقیت آمیز اسپرینت ها متمرکز است. در کانبان، وظیفه جایگاه برتر را اشغال می کند. این برای پروژه‌هایی که در مرحله تعمیر و نگهداری هستند، خوب است، جایی که عملکرد اصلی قبلاً اجرا شده است و حداقل پیشرفت‌ها و رفع اشکال باقی مانده است. در کانبان، وظایف به صورت جداگانه تعیین می شوند. یک کار، فارغ از سایر کارها، تمام مراحل روی برد را طی می کند و پس از تکمیل آن می توان به مشتری نشان داد. یک تابلوی کانبان از ستون هایی تشکیل شده است که هر کدام نشان دهنده یک فرآیند توسعه جداگانه است. برخی از ستون ها (به عنوان مثال، "در حال انجام") تعداد وظایفی را که می توانند نگه دارند محدود می کنند. این به یافتن سریع و آسان مناطق مشکل در توزیع وظایف کمک می کند. تصویر نمونه ای از چنین تخته ای را نشان می دهد. تعداد ستون ها و نام آنها می تواند متفاوت باشد. من رایج ترین ها را ارائه می دهم: روش های توسعه نرم افزار - 4
  • برای انجام - فهرست کارهایی که باید انجام شوند
  • در حال انجام - وظایفی که در حال حاضر روی آنها کار می شود
  • بررسی کد – وظایفی که انجام شده و برای بررسی ارسال شده است
  • در تست - وظایف آماده برای آزمایش
  • انجام شد - کارهای تمام شده
مزایای:
  • راحتی در استفاده
  • دید (به یافتن تنگناها کمک می کند، درک را ساده می کند)
  • مشارکت بالای تیم در خود فرآیند
  • توسعه بسیار انعطاف پذیر
معایب:
  • لیست وظایف ناپایدار
  • درخواست برای پروژه های بلند مدت دشوار است
  • فقدان مهلت های سخت

سخن پایانی در مورد متدولوژی های توسعه نرم افزار

افرادی که دارای موقعیت های مدیریتی هستند یا آرزوی آنها را دارند باید روش های توسعه نرم افزار را به طور کامل درک کنند، اما همه باید حداقل اصول اولیه را بدانند. متدولوژی ها بخشی جدایی ناپذیر از فرآیند توسعه هستند و نه تنها در حوزه فناوری اطلاعات استفاده می شوند. از اینکه برای خواندن مقاله من وقت گذاشتید متشکرم. امیدوارم برای شما مفید بوده باشد. من سعی کردم فقط نکات کلیدی را تا حد امکان قابل دسترس و مختصر بیان کنم. در نتیجه، این مقاله جامع نیست. خوشحال میشم نظرتون رو در موردش بدونم و به سوالاتتون جواب بدم. بهترین ها!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION