Upload
navid-sedighpour
View
170
Download
0
Embed Size (px)
Citation preview
برای توسعه توزیع شده نرم افزار Scrumمتودولوژی مبتنی بر
نوید صدیق پور
95بهار –متودولوژی تولید نرم افزار –دکتر نورحسینی
مرجع اصلی
:عنوان
Scrum-based Methodology for Distributed Software
Development
2011:انتشارسالIEEE
2 / 81
...آنچه خواهیم دید
مقدمه•شدهتوزیعهایمحیطبرایAgileدرشدهانجامکارهای•متودولوژیشرح•بندیجمعوخالصه•
3 / 81
هاییلوژیمتودوبهشدهتولیدمحصولکیفیتازاطمینانبرایهاکمپانیاین.بدهدراافزارنرممهندسیهایچالشبارویاروییامکانهاآنبهتادارند
ترکیب دو متودولوژی
•Scrumداردراپروسه هاومتدهاسایرتکمیلتوانایی.•RUPتوسعهبرایکلیچارچوبوقدرتمندمتودولوژی
.استنرم افزارتولیدمدیریتبرایمی تواندRUPوScrumترکیب•
.شودگرفتهکاربهتوزیع شدهمحیطدرنرم افزارتوسطمی تواندRUPهایdisciplineوفازهاتوسعه•
Scrumشودانجام.
8 / 81
مقاالت موجود
محیطدرAgileروش هایبرمبتنیروشیازکهمقاالتیتعداد•.استکممی کنند،استفادهتوزیع شده
.می کنیمبررسیرااستبهترآن هاکارکهمقالههفت•
10 / 81
..مقاله اول
:استشدهپیشنهادمقالهایندراصلیحلراهسهسازمان دهی. معماریساختاربهتوجهباتیم1زمان. باشدمتغیرتیم هاهماهنگیجلسات2وجود. ambassadorیانماینده3
11 / 81
..مقاله دوم
:Agileازاستفاده•ممکن-ناممکن-اصالح شده-
Agileمتودولوژی هایکهمی دهدنشاننویسندهاینتحقیقات•.شونداصالحبایدoutsourcingپروژه هایدراستفادهبرای
.استکردهارائهشدهاصالحوترکیبیروشیک•
12 / 81
..مقاله سوم
FDDوScrumترکیب•
:اصلیعیب•تاکیدتربیشواستنشدهبیانصراحتبهمقالهایندرمتودولوژی
.استتیم هاسازیهماهنگنحوهبر
13 / 81
..مقاله چهارم
Globalدرagilityبهرسیدنبرایراهکارهایی SoftwareDevelopmentمی کندپیشنهاد:
جدیدتکنولوژی هایدربارهبروزوجدیددانشحصول•مسئولیت هاونقش هاواضحتعریف•ITپلت فرماستانداردسازی•
14 / 81
مقاله پنجم
درهکاستکردهپیشنهادپروژهجهانیمدیریتبرایچارچوبی.استشدهاستفادهagileشدهتوزیعروشیکازآن
افزارنرمتوسعهبرایagileازاستفادهکهمی دهدنشانمقالهاین.استبودهموفقشده،توزیع
15 / 81
..مقاله ششم
:تیمساختار1-Partial Offshoring
offshoreتیمبهرانیازمندی هاواستطراحیتیم،onshoreتیم.می دهدپاسخکاملشدهتستکدیکباتیمآنکهمی کندارسال
2-Complete Offshoring
بهراهاfeatureکهاستمشتریاستOnshoreکهکسیتنهاکامالکدیکباهمoffshoreتیم.می فرستدoffshoreتیم
.می دهدپاسختست شده
16 / 81
..مقاله هفتم
ننشاراتوزیع شدهتیم هایحوزهدرانجام شدهکارهایبهترین.می دهد
دادهانباریکازهاBuildاتوماتیکصورتبهساعتهر-.شوندتهیهمرکزی
paipمثال)متودولوژی هاسایرباXPترکیب- prog.درscrum)
17 / 81
عیب اصلی تمام مقاالت
محیطدرagileازکهرامتودولوژیصراحتاًکدامهیچ•.نکرده اندبیانراکنداستفادهتوزیع شده
جزئیاتواردوکرده اندبیانکلیصورتبهراتکنیک ها•.نشده اند
نحوهاتجزئیتااستشدهصحبتآن هاکاربردبهراجعبیشتر•آن هاازاستفاده
18 / 81
مفاهیم
.استRUPوscrumپایهبرمتودولوژیاین•.تاسبرخوردارباالییاهمیتازشدهتوزیعتیم هایمدیریت•
.می گذاردتاثیرافزارنرمکاراییوتیمبهره وریبرزیراتیم هایمدیریتدرمهمفاکتوردوتیم هاهمکاریوتعامل•
.می روندشماربهشدهتوزیع
مفاهیمساختار تیم ها و سایت های توزیع شده
تعامل و هماهنگیفعالیت ها
22 / 81
Feature Teams
ProductازfeatureیکرساندناتمامبهتواناییتیمیکوقتیBacklogتیم،آنبهباشد،داشتهراfeature teamمی شودگفته.
24 / 81
featureاساسبرتیمساختار teamاساسبرنهوبودخواهدهاjobfunctionرازی.نمی شودانجامهنددربرنامه نویسیوکانادادرآنالیز!ها
.شدخواهدپدیدارارتباطیمشکالت
انواع تیم ها
1-Distributed Scrum of Scrums
.هستندهمبهنزدیکجغرافیایینظرازهاتیم
2-Fully Distributed Scrum
.هستندپراکندهجغرافیایینظرازتیم ها
26 / 81
ویژگی تیم ها
.هستندپایدار•.می کنندکارهمبامدتبلندصورتبه•.استنفر7/+(-)2آنهاتعداد•کیتکمیلتواناییکههستندمتنوعهایمهارتدارایافراد•
featureدارندرامحصولاز.
27 / 81
تعامل
چشمیارتباطزیرا.استface-to-faceارتباطتعامل،راهبهترینیعتوزمحیطدربنابراین.می شودضروریاطالعاتکسبباعث.می شودپیشنهادکنفرانسویدئوازاستفادهشده،نبود،یسرم...وباندپنهایچونمسائلیدلیلبهکنفرانسویدئوبرقراریامکاناگر:نکته•
.شدخواهدجایگزینتلفنیتماس
29 / 81
Test-Driven Development
.می شودنوشتهتستابتداکد،functionalityازواحدهربرایکالاشسازیپیادهیعنینبود،موفقاگرمی کنیم،اجراراتستدهدجوابدرستتستاینکهبرایالزمکدهایفقطسپس.دارد
.می کنیماجرامجدداراتست هاتمامآن،ازبعدومی نویسیمرا
32 / 81
Continuous Integration (C.I)
.می دهندانجامهمباراکارهایشانتیم،یکافراد•امانجکهکارهاییدرموردروزدرباریکحداقلتیمعضویک•
.می دهدگزارشتیمسایربهاستدادهتامی شودتستبالفاصلهمی شود،انجامکهintegrationهر•
.نیایدبوجودintegrationخطای
33 / 81
Scrum Master
بهیمتتوسطپروسهکهکندحاصلاطمینانکهاستاینمسئول.استشدهدرکخوبی
.نیستتیمنمایندهومی آوردبوجودراتیمبینهماهنگیScrumیکتیمهر Masterدارد.
35 / 81
Product Owners
.می شودانجامکهاستکاریارزشکردنماکزیمممسئولPrincipal Product Owner:اصلیدهیجهتپروژه،مدیریت
اولویت هاتعیینپروژه،Team Product Owner:اجرایبمنظورتیمکردنهماهنگ
Productدراولویت هاصحیح Backlog
36 / 81
اختالف زمانی
مشترککاریساعتیعنیباشد،کمزمانیاختالفاگر(overlapping hours)وویدئازبنابراین،.داردوجودتیم هابین
.شدخواهداستفادهجلساتبرگزاریبرایکنفرانساعتسوجودامکانباشد،زیادخیلیتیم هابینزمانیاختالفاگر
هایروشازبایدبنابراین.نداردوجودتیم ها،بینمشترککاری.کرداستفادهwikiمثلدیگر
wiki = shared documentations
39 / 81
آرایش تیم های توزیع شده
component)معمولیتیمتبدیلهدف team)بهfeature team.است
:روشسه.1Big-Bang reorganization
توسعه. تیممسئولیت هایتدریجی2
تولید. featureتدریجی3 teamsمهمتریناعمالتوسطfeatureها
40 / 81
Big-Bang reorganization
دیگروه بنتیم ها.می شوندسازمان دهیمجدداتیم هاحالت،ایندررهدرمختلفهایحوزهازمتخصصینکهصورتیبهمی شوند،
دانشتم،سیساکثریتبهنسبتتیمهروباشدداشتهقرارگروه.باشدداشتهکافی:روشاینعیب
ردآنالیز،درمتخصصافرادهمهکهکنیدفرضباال؛ریسکبزرگسیارباستممکنتیم هادرتغییربنابراین.باشنداستکهلم
.باشد
41 / 81
توسعه تدریجی مسئولیت های تیم
featureبهتیمتبدیل• teamمی گیردصورتآهسته..نمی کنندتغییرتیماعضای•بهتنهایدرتامی دهیمگسترشراتیممسئولیت هایکمکم•
feature teamشودتبدیل.:روشاینعیب
componentمعایب teamوfeature teamداردباهمرا.
42 / 81
توسط اعمال feature teamsتولید تدریجی هاfeatureمهم ترین
productبههاfeatureمهم ترینابتداروش،ایندر backlogfeatureبهومی شونداعمال teamبقیه.می شوندسپردهها
featureبههاcomponent teamشدخواهنددادهها.:روشاینعیب
Feature teamوسطتشدهنوشتهکدتغییربهنیازاستممکنcomponent teamباشندداشته.
43 / 81
پنج روش جایگزین
documentationطریقازمالقات-1
رابطازاستفاده-2متغیرزمانباجلسات-34-share the pain
5-feel the pain
46 / 81
documentationمالقات از طریق
بغائاعضاترتیببدین.می شوداستفادهwikiازروش،ایندر.شوندرباخباست،افتادهجلسهدرکهاتفاقاتیمورددرمی توانند
47 / 81
استفاده از رابط
هبشخصیکوشدخواهدبرگزارجداگانهجلسهدوروش،ایندربههوظیفومی کندپیداحضورجلسهدوهردر(لینک)رابطعنوان
.داردعهدهبرراگروهدوبیناطالعاتگذاریاشتراک
48 / 81
جلسات با زمان متغیر
لسهجیکبنابراین.می کندفرقهمباجلساتزمانروش،ایندردربعدیجلسهوباشدتیمیککاریساعاتدراستممکن
.دیگر(های)تیمکاریساعات
49 / 81
Share the pain
خابانتایگونهبهزمانایناما.شدخواهدانتخابثابتزمانیک.شندباموافقزمانآنباتیم هاتمامدرافراداکثریتکهمی شود
!گیریرای
50 / 81
Feel the Pain
تیم هاسایرباآن هاکاریساعاتکهتیم هایییاتیمحالت،ایندریکارساعتازخارججلساتبرگزاریبهمجبوراست،متفاوت
.بودخواهندخودشان
51 / 81
Release Planningفاز
طولدر،planایناما.می آیدبدستاولیهplanیکمرحلهایندر.کندتغییراستممکننرم افزارتولیدپروسه
:استزیرفعالیت3شاملفازاین1-Requirement Elicitation
2-General Release Planning Meeting
3-Local Release Planning Meeting
55 / 81
Requirement Elicitation
.استنفعذیافرادتمامازنیازهاآوریجمعشاملuserمانندنیازهاآوریجمعهایروشازیکیاز storiesاستفاده
.می شود
56 / 81
General Release Planning Meeting (General RPM)
productتمامیفعالیت،ایندر ownerنماییتامی شوندجمعها.کنندتعریفرامحصولاز
productسپس backlogمی کنندبندیاولویتوتولیدراها.ونفعانذیازآمدهبدستاطالعاتاساسبررااولویت هاcriteriaمی دهندانجامخودشان.
هرومی شودخردsectionتعدادیبهBacklogهرنهایتدرsectionمی یابداختصاصتیمیکبه.
57 / 81
Local Release Planning Meeting (Local RPM)
productفعالیت،ایندر owner،ازراتیم هاsectionبهکههایی.می کندآگاهاست،یافتهاختصاصآن ها
58 / 81
..فاز است4شامل
هردرومی شونداجراچرخشیصورتبهکهاستفازچهارشامل:می شودتولیدمحصولازنسخهیکچرخه،
Sprintفاز-1 Planning
Developmentفاز-2 Work
Sprintفاز-3 Review
Sprintفاز-4 Retrospective
60 / 81
Sprint Planningفاز
Productازقسمتکدامکهمی کندمشخصفازاین Backlogworkingبهتبدیلقسمتایندرباید softwareشود.
:استفعالیتدوشامل1-General Sprint Planning Meeting
2-Local Sprint Planning Meeting
62 / 81
General Sprint Planning Meeting
principalفعالیت،ایندر• product ownerوteamproduct ownersکهکاریمورددرتامی شوندجمعهمدور
.بگیرندتصمیمشود،انجاماستقرار.می کنندتعریفsprintبرایهدفیک••Featureطولدرتیمهرکههاییsprintرادهانجامباید
هایتیمبینوابستگیکهصورتبدین.می کنندمشخص.باشدمینیمممختلف،
63 / 81
Local Sprint Planning Meeting
Teamفعالیت،ایندر• product ownerمالقاتراخودتیماعضایScrum)می کند Masterداردحضورجلسهایندرهم).
رهایکایعنی.می شوندتعریفوظایفوظایفابتداجلسهایندر•workingبهbacklogتبدیلبرایالزم softwareمی شوندخرد
.شودانجامروزیکازکمتر(مثال)وظیفههرتا.می زنندتخمینراوظیفههرانجامبرایالزمساعاتتعداد•.می سپارندتیماعضایازیکیبهراوظیفههرسپس•sprintنهایتدر• backlogوsprint burndownمی شوندتولید.
•Sprint Burndownاتمامتاباقی ماندهزمانکهاستگرافیSprintBacklogمی دهدنشانرا.
64 / 81
Development Workفاز
انجامincrementalوiterativeصورتبهکهاستفعالیت5شامل.می شوند
1-Analysis and Design
2-Implementation and Testing
3-Deployment
4-Daily Scrum
5-Weekly Meetings
قابلکدشاملتوسعهقابلکارینرم افزارازنسخهیکفاز،اینپایاندر.می شوندتولیدکدآنبامرتبطهایmanualومدل هااجرا،Manualشاملهاuser manuals،Maintenance manualsو
operation manualsمی شود.
66 / 81
Analysis and Design
:آنالیزفازدر•می شوندمشخصجزئیاتبانیازها.زبانازآنالیزdeveloper
:Designفازدر•نیازهایازبیشتریدرکnon-functionalخواهیممحدودیت هاو
.داشتشتیبانیپرانیازهاتمامکهمی شودسازیپیادهایگونهبهسیستم
.کندیکabstractionشدخواهدتولیدسیستمسازیپیادهاز.نهایت؛درDesign Modelشدخواهدتولید.
67 / 81
Implementation and Testing
استفادهT.D.Dاززیرا.می شوندانجامباهمتستوسازیپیاده.می شود
:پیاده سازیDesignتبدیلآنوظیفه• Modelکهاجراستقابلکدبه
.داردمدنظرمشتریدینب.می شوندطراحییکپارچهصورتبهسیستمومعماری•
دهشنوشتهکدهایزیرا.استمهمبسیارC.Iازاستفادهمنظور.شوندintegrateبایدمختلفتیم هایتوسط
68 / 81
Implementation and Testing (cont.)
:تست.استپیاده سازینتایجتاییدآناصلیهدف
Testیکاز Planفازدریافازهمینابتدایدرکهمی کنداستفادهRelease Planningشده اندتعریف.
:تستروشدو1-Test-Driven Development
2-Acceptance Test-Driven Development
سپس،می شودساختهتستابتداکهمی کنندعملصورتاینبهدوهر.می شودنوشتهکد
Testصورتبهتستنتایج Reportاعضایتمامبرایوشدهنوشته.می شودگذاشتهاشتراکبهتیم هاتمام
69 / 81
Deployment
توجهرکاربمحیطدرافزارنرماجرایجنبه هایتمامبهفعالیتاین.دارد
کههاییmanualبروزرسانییاتولیدفعالیت،اینTaskاولیندرایناگر.می شودانجامشدخواهنداستفادهبعدیمراحلدر
.استضروریبسیارفعالیتاینانجامباشد،iterationآخرینprojectفعالیت،اینازtaskآخریندر monitoringبوسیله
team product ownerمی شودانجام.
70 / 81
Weekly Meetings
:می شودانجامصورتدوبههفتگیمالقاتweekly-الف Scrums
Scrum-ب of Scrums
Weekly Scrums:teamهفتگیمالقات product ownerهمراهبههاprincipal
product ownerیکوشوددنبالپروژهتامی شودانجامTeamبینهماهنگی product ownerوبگیردصورتها
.شودمدیریتتیم هابیناحتمالیوابستگی های
72 / 81
Weekly Meetings (cont.)
Scrum of Scrums:ضورحنمایندگانیتیم،هرازوهستندهفتگیهماهنگیجلسات
.دارندمسئلههروهاintegrationتیم ها،وابستگیمورددرجلسهایندر
.ودمی شصحبتکند،مربوطهمبهراتیمچندیادوکهدیگری
73 / 81
Sprint Reviewفاز
اهدافتیم هاکهاستاینازاطمینانحصولفاز،اینازهدفsprintنتایجسپس.باشندکردهاجراخوبیبهراsprintذیبه
.شدخواهددادهنمایشنفعان:استفعالیتسهشامل
1-Team Demo
2-Product Owner Demo
3-Demo Stakeholders
75 / 81
(ادامه)Sprint Reviewفاز
•Team Demoبهشدهانجامکارازنسخهیکteam product ownerتحویل
.می شودداده•Product owner demo
طریقازتیم،هرتوسطشدهانجامکارهایteam productowner،می شوددادهنمایشنفعانذیبه.
•Demo Stakeholdersتمامحضورباجلسهیکproduct owner،وتیم هانمایندگانها
.نفعانذیایندرشدهانجامکارازکاملنسخهیکsprintنفعانذیبه
.می شوددادهتحویل
76 / 81
Sprint Retrospectiveفاز
تااستفعلیsprintباآنمقایسهوقبلیsprintآنالیز:هدفیداپراکارمشکالتومعایبوکندبررسیراشدهانجامکارهای
.شودجلوگیریبعدیهایsprintدراتفاقاتاینبروزازتاکند:فعالیتدوشاملTeam RetrospectiveRetrospective of Retrospectives(اختیاری)
78 / 81
Team Retrospectiveفعالیت
:کهمی کندمشخصتیمخودِفعالیت،ایندر.شده اندانجامخوبیبهفعالیت هاییچه•.گرفتقرارآن هاراهسربرمشکالتیچه•
.می کنندارائهحلراهمشکالتاینحلبرایسپس
79 / 81
Retrospective of Retrospectivesفعالیت
ینبجلسهیکتیم ها،بینوابستگیمشکالتوجودصورتدر.کنندحلوبررسیرامشکالتاینتامی شودبرگزارآن ها
.داردبستگیتیم هابهواستاختیاریجلسهاینبرگزاری
80 / 81
خالصه و نتیجه گیری
•scRumUPازترکیبیScrumوRUPاست.•scRumUPاستمناسبتوزیع شدهمحیط هایبرای.باagileخواصتابودالزمتوزیع شده،محیطمدیریتبمنظور•
.شوندتلفیقRUPقدرت.شدنداضافهمتودولوژیبهCIوTDDجدیدمفهومدو•
TDDشدکدکفیتوطراحیبهبودباعث.CIازحاصلخطاهایintegrationرفعراشدهتوزیعمحیطدر
.می کردبهریبیشتکمپانی هایدررامتودولوژیاینمی توانآیندهدر•
feedbackمتودولوژیبهبودبرایآن هاازودرآورداجرا.گرفت
81 / 81