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