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

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

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

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

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

1. اسکرام

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

طرفداران:

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

معایب:

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

برای کیست؟

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

2. کانبان

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

طرفداران:

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

معایب:

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

برای کیست؟

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

3. فرآیند یکپارچه منطقی (RUP)

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

طرفداران:

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

معایب:

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

برای کیست؟

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

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

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

خط پایین

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