JavaRush /وبلاگ جاوا /Random-FA /هر آنچه که باید در مورد روش های توسعه نرم افزار بدانید: ر...

هر آنچه که باید در مورد روش های توسعه نرم افزار بدانید: روندها، اصول و مشکلات برای مبتدیان

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

توجه برای مبتدیان: مدل ها، روش ها و سردرگمی عمومی

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

1. روش اسکرام

اسکرام یک روش مدیریت پروژه چابک است . این بر اساس "sprints" است - تکرارهای کوتاه، به شدت محدود در زمان (معمولا 2-4 هفته). مدت جلسات به حداقل کاهش می یابد، اما تعداد آنها افزایش می یابد. هر دوی سرعت شامل لیستی از وظایف تا پایان تکرار است و هر یک از آنها "وزن" خود را دارند. در طول جلسات، تیم بحث می کند که چه کسی چه کاری انجام داده است، قرار است چه کاری انجام دهد و چه مشکلاتی وجود دارد. اسکرام از یک ژورنال اسپرینت برای برنامه ریزی استفاده می کند. در این رویکرد، یک اسکرام مستر اغلب در تیم ظاهر می شود که کار مستمر کل تیم را برقرار می کند و شرایط راحت را برای آن ایجاد می کند. همچنین در پروژه، نقش مالک محصول ظاهر می شود - مدیر توسعه، شخصی که محصول را نظارت می کند و به عنوان رابط اصلی بین درخواست مشتری و نتیجه تیم عمل می کند.

طرفداران:

  • راه اندازی سریع پروژه با کمترین بودجه ممکن؛
  • نظارت روزانه بر پیشرفت کار، نمایش مکرر پروژه؛
  • توانایی ایجاد تغییرات در حین پیشرفت پروژه

معایب:

  • مشکلات در انعقاد قراردادها به دلیل نبود بودجه ثابت؛
  • با صلاحیت های کم تیم، دست کم گرفته شدن مهلت های کاری یا بودجه کار نمی کند.
  • توانایی ایجاد تغییرات مداوم بین دو سرعت می تواند سردرگمی ایجاد کند.

برای چه کسانی مناسب است:

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

2. روش شناسی کانبان

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

طرفداران:

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

معایب:

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

برای چه کسانی مناسب است:

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

3. روش RUP

روش RUP از یک مدل توسعه تکراری استفاده می کند. در پایان هر تکرار (که 2 تا 6 هفته طول می کشد)، تیم باید به اهداف برنامه ریزی شده دست یابد و یک نسخه موقت اما کاری از پروژه داشته باشد. RUP شامل تقسیم پروژه به چهار مرحله است که در هر یک از آنها کار روی نسل جدیدی از محصول انجام می شود: مرحله شروع پروژه، پالایش، ساخت و اجرا. در پایان فاز، نشانگر تکمیل مرحله (Project Milestone) وارد می شود. پروژه Milestone را می توان لحظه ای در نظر گرفت که تیم نتایج به دست آمده را ارزیابی می کند. در نتیجه، روش نشان می‌دهد که ویژگی‌های اصلی در فاز اول منتشر می‌شوند و اضافات در مراحل بعدی اضافه می‌شوند.

طرفداران:

  • به شما این امکان را می دهد که با وظایف در حال تغییر که هم از طرف مشتری و هم از طرف کار ایجاد می شود کنار بیایید.
  • بهبود مستمر محصول را تضمین می کند. در طول تکرار، طرح را می توان موشکافی کرد.
  • به شما امکان می دهد خطرات را در مراحل اولیه کار شناسایی و حذف کنید و همچنین کیفیت توسعه را به طور موثر کنترل کنید.

معایب:

  • یک روش نسبتاً پیچیده که اجرای آن با یک تیم یا شرکت کوچک دشوار است.
  • وابستگی به توانایی متخصصان در تعیین وظایف؛
  • نیاز به مستندات بیش از حد نیاز دارد.

برای چه کسانی مناسب است:

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

بسیاری از روش ها، یک روند

علاوه بر اسکرام و کانبان غیرقابل انکار، که بر اساس اصول انعطاف‌پذیری تحت نام عمومی «چابک» و همچنین RUP تکراری سرسخت است، شرکت‌ها با انواع مختلفی از متدولوژی‌ها کار می‌کنند. برخی از افراد برنامه‌نویسی شدید و گرفتن سریع‌ترین و ساده‌ترین تصمیم‌ها را ترجیح می‌دهند، برخی توسعه مبتنی بر آزمایش را ترجیح می‌دهند و برخی دیگر توسعه سریع اپلیکیشن (RAD) را ترجیح می‌دهند. در عین حال، روند اصلی و بدون قید و شرط استفاده از چندین روش به طور همزمان است . یا حتی ترکیب مدل ها و روش ها در یک سیستم کنترل منحصر به فرد. هر آنچه که باید در مورد روش های توسعه نرم افزار بدانید: روندها، اصول و مشکلات برای مبتدیان - 2شرکت‌های مدرن تلاش می‌کنند تا موانع بوروکراتیک را از بین ببرند و فضایی از کار تیمی عمومی در سازمان ایجاد کنند، بدون اینکه مسئولیت را بین بخش‌ها و بلوک‌ها جابجا کنند. طبق گزارش Scrumalliance ، 70 درصد از شرکت های فناوری اطلاعات از Scrum استفاده می کنند. در میان آنها غول هایی مانند گوگل، آمازون، سیلزفورس، مایکروسافت، ادوبی هستند. استارت‌آپ‌ها و پروژه‌های جوان بیشتر به Kanban تمایل دارند، اما تویوتا و مثلاً گیمرهای Wargaming نیز از آن استفاده می‌کنند. شرکت‌های ساده‌تر CIS Prom.ua، Bigl.ua، Kabanchik.ua از روش‌های Scrum و Kanban به طور همزمان، اما برای وظایف مختلف استفاده می‌کنند. اسکرام - به عنوان یک ابزار برنامه ریزی، کانبان - برای نظارت بر پیشرفت کار. در مورد RUP، اغلب توسط شرکت های غربی با 50-200 کارمند و درآمد 1-10 میلیون دلار انجام می شود. اما در همان زمان، IBM با انتشار روش OpenUP - "RUP، فقط چابک"، RUP را تغییر داد تا به اصول Agile نزدیک شود. همان چابکی تحسین شده Agile اکنون بر چشم انداز فناوری اطلاعات حاکم است . این روزها فقط یک مد نیست - هنوز هم نوآورانه است، و در واقع در بسیاری از شرکت های بزرگ کار می کند. Agile در سیلیکون ولی استفاده می شود و فیس بوک و اوبر از آن استفاده می کنند.

خط پایین

هر پروژه بسته به تیم، بودجه، زمان بندی و نیازهای مشتری، متدولوژی توسعه نرم افزار خاص خود را دارد. هیچ فناوری مدیریت جهانی وجود ندارد: حتی Agile بسیار محبوب نمی تواند بهترین رویکرد را برای فرآیند توسعه ارائه دهد. بنابراین، روش شناسی با دقت و گاهی حتی به صورت اساسی انتخاب می شود. تا جایی که می توانید از آن برای نتیجه گیری در مورد خود شرکت یا مشتریانش استفاده کنید. روش‌ها ترکیب شده، با مدل‌ها تکمیل می‌شوند و متناسب با خودشان تطبیق داده می‌شوند. به حدی که باعث ایجاد رویکردهای جدید می شوند. اگرچه در نهایت قلمرو مدیریت در دست Scrum و Kanban باقی می ماند، با گنجاندن غیرمنتظره مدل Waterfall یا RUP تکراری.
چه چیز دیگری برای خواندن
وب سایت ها: کتاب ها:
  • اندرو استلمن، جنیفر گرین: "یادگیری چابک";
  • به گفته کرول، بروس مک ایزاک: «چابکی و انضباط آسان شد: تمرین‌هایی از OpenUP و RUP».
  • مایک کوهن: اسکرام. توسعه چابک"؛
  • رابرت کی مارتین: «توسعه سریع نرم افزار. اصول، مثال ها، تمرین"؛
  • مارکوس هاماربرگ، یواکیم ساندن: «کانبان در عمل»؛
  • A Jacobson، G. Booch، J. Rumbaugh: "یک فرآیند توسعه نرم افزار یکپارچه."
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION