متدلوژی RUP
متدلوژی (Rational Unified Process) Rup یک فرآیند تولید و توسعه نرم افزاری می باشد که در سال 2000 این متدولوژی توسط شرکت Rational ارائه گردید .مهم ترین هدف Rup اطمینان از تولید نرم افزار با کیفیت بالا می باشد.
تولید نرم افزار با استفاده از متدلوژی Rup براساس یک روش تکرار شونده می باشد بدین صورت که در تولید یک محصول تعدادی تکرار در نظر گرفته می شود این تکرارها در فاز های Rup صورت می پذیرد در هر فاز Rup ممکن است چندین تکرار داشته باشیم و در پایان هر تکرار یک محصول قابل ارائه وجود دارد. این محصول در پایان هر تکرار کامل تر شده و در نهایت در آخرین تکرار محصول نهایی ارائه می گردد.
تولید یک محصول نرم افزاری در Rup شامل چهار فاز آغازین (Inception ) ، جزئیات (Elaboration ) ، ساخت (Construction ) و انتقال (Transition ) می باشد . میزان استفاده از نیروی انسانی و زمان صرف شده در هر فاز متفاوت است همان گونه که در شکل زیر مشاهده می کنید فاز ساخت بیشترین زمان و نیروی انسانی را نیاز دارد.
در Rup در ابتدای پروژه یک معماری اولیه تهیه می گردد این امر باعث به حداقل رسیدن ریسک های پروژه در ابتدای کار شده و کیفیت نرم افزار تولیدی را بالا می برد. از دیگر ویژگی های Rup قابلیت توسعه و تغییر نرم افزار براساس سلیقه و نیازهای کاربران و مشتریان می باشد.
مزایای متدلوژی RUP
1- افزایش بهره وری تیم
2- استفاده از بهترین رویه ها
معایب متدلوژی RUP
1- عدم پیروی از فرآیند مشخص ، یا پیروی از فرآیندهای خود ساخته
2- استفاده از فرآیند ها و زبان های متفاوت
3- عدم پشتیبانی خوب یا درست توسط ابزار
متدولوژی SCRUM
اسکرام(scrum) یک روش گروهی برای تولید و توسعه نرم افزار است. این متدولوژی یک مدل تکراری(iterative) از متدولوژی Agile برای حل مسایل پیچیده است. با اسکرام این امکان وجود خواهد داشت که مسایل پیچیده به راحتی مدیریت گردد.
در واقع اسکرام یک فرایند و یا تکنیک تولید محصول نیست، بلکه چارچوبی است که بوسیله آن می توان مدیریت تولید محصول را بهینه نمود.
این متدولوژی ساده و آسان است و همه می توانند به راحتی قوانین موجود در آن را فراگرفته و به کار گیرند، اما تسلط کامل به اسکرام معمولا دشوار است. متدولوژی اسکرام در سال 1986 در کشور ژاپن توسط Hirotaka Takeuchi و Ikujiro Nonakaبرای اولین بار اختراع شد. اسکرام در دهه 90 میلادی توسط Ken Schwober و Jeff Stherlandتوسعه داده شد و به عنوان یک متدولوژی رسمی جهت تولید محصولات نرم افزاری شناخته و به کار گرفته شد.
اسپرینت
هسته اصلی اسکرام را اسپرینت ها تشکیل می دهند. در متدولوژی های تکرار شونده(iterative) دوره های زمانی تکراری(iteration) وجود دارد که در این دوره ها به تدریج محصول کامل می گردد. بدین صورت که در تولید یک محصول، تعدادی تکرار در نظر گرفته می شود که در پایان دوره زمانی هر تکرار، یک محصول قابل ارائه وجود دارد. به این دوره های زمانی تکرار شونده در اسکرام اسپرینت(sprint) می گویند. در پایان هر اسپرینت، محصول کامل تر شده و در نهایت محصول نهایی تولید می گردد. هر اسپرینت دارای تعریفی است که در آن باید مشخص شده باشد که چه چیزی قرار است ساخته شود، نیازمندی ها، راهنمای ساخت و محصول خروجی نیز باید مشخص باشند.
مجموعه نیازمندی های عملیاتی و غیر عملیاتی(Functional and NonFunctional Requirements) پروژه، که مستند شده است را backlogگویند. مجموعه نیازمندی هایی که در هر اسپرینت باید تمام شوند sprint Backlogنامیده می شود. هر sprintcycle تا زمانی ادامه پیدا می کند که محصول آماده release باشد. بعد از releaseمحصول ممکن است صاحب پروژه نیازمندی های جدیدی به پروژه اضافه نماید که به آن ها Product Backlogگویند.
مدت زمان هر اسپرینت بستگی به نوع پروژه دارد. این مدت زمان می تواند از یک هفته تا یک ماه متغیر باشد. هر اسپرینت باید دقیقا سر وقت به اتمام برسد و اگر به هر دلیلی در پایان اسپرینت محصول آماده نبود باید نیازمندی های sprint backlog به product backlogمنتقل شوند. در ابتدا و در هنگام شروع اسپرینت، جلسه ای با حضور تمام اعضای تیم تشکیل می شود و به همه افراد هدف نهایی اسپرینت و وظایف هریک از اعضای تیم شرح داده می شود..
وظایف مشخص شده در هر اسپرینت شامل سه جنبه است:
Transparency: تمامی جنبه های فرایند برای همه اعضای تیم (مشتری و تیم برنامه نویس) باید مشخص و واضح باشد.
Inception: اگر در هر مرحله، فرایند دچار انحراف شد، باید انحراف سریع تشخیص داده شود.
Adaption: انحراف های شناسایی شده، در کم ترین زمان ممکن باید تعدیل شوند.
مزایای متدولوژی اسکرام
معايب متدلوژی Scram
1-Scrum روش جديدي است و با روشهاي مرسوم تفاوتهاي زيادي دارد.
2- برخي از برنامهنويسان حرفهاي ممكن است از تكاليفي كه مدير Scrum به ايشان ميدهد راضي نباشند و بخواهند روش قديمي خود را اجرا نمايند و در صورت اجبار، در روند اجراي پروژه كارشكني كرده و مشكلآفريني كنند.
3- از آنجا كه مدير Scrum هم از نظر كيفي و هم كمي بايد پروژه را مديريت كند، Scrum نياز به مديريت بسيار قدرتمند دارد.
4-Scrum را ميتوان به عنوان روش توليد نرمافزار نام برد، اما اين روش بيشتر روش مديريت پروژه هوشمند خوبي است و نميتوان آن را به صورت منفرد استفاده نمود و ميتوان گفت براي حصول اطمينان از موفقيت پروژههاي نرمافزاري (به خصوص در سطح كوچك) بايد اين روش را با روشهاي ديگر ادغام نمود. Scrum را از آن جهت ميتوان روش خوبي برشمرد كه روشي تحقيقي براساس تخمين، اولويتبندي، عملكرد گروه و بررسي نتايج است كه اگر به صورت صحيح مورد استفاده قرار گيرد و قبل از استفاده به صورت كامل آموزش داده شود، ميتواند راندمان پروژههاي نرمافزاري، به خصوص توليد نرمافزارهاي كوچك را به صورت بسيار محسوسي بالا ببرد.
فرق بین متدولوژیRUP و اسکرام
هر دو روش از سری روشهای چابک هستند و در فعالیتهای پروژه از رویکردی تکرار شونده استفاده میشود. با این حال، متدولوژی RUP خواستار یک تعریف رسمی از هدف و نقاط عطف پروژه به همراه تاریخهای خاص است. ولی روش اسکرام از بک لاگ پروژه به جای هدف استفاده میکند و این اجازه را میدهد تا در پایان هر تکرار (معمولا هر 4 هفته) دوباره تعریف شوند. علاوه بر این، چرخه عمر پروژههایRUP به 4 فاز اصلی (آغازین، تحلیل جزئیات، ساخت، انتقال) تقسیم میشود. این روش، مشوق جریانهای کاری همزمان در سراسر چرخه است. در این روش، برخی فعالیتها در طول برخی مراحل به اوج خود میرسد (به عنوان مثال: تجزیه و تحلیل نیازمندیها در مرحله تحلیل جزئیات افزایش مییابد). در مقابل، اسکرام حکم چرخه عمر “سنتی” متناسب با یک تکرار را دارد. به عبارت دیگر، برای هر تکرار یک حجم کاری در یک زمان تعیین میشود، سپس کل چرخه در یک تکرار رخ میدهد.