scrum based methodology for distributed software development

82
تنی برلوژی مبدو متوScrum م افزار توزیع شده نر برای توسعه نوید صدیقپورنی نورحسی دکترم افزار تولید نرلوژیدو متو بهار95

Upload: navid-sedighpour

Post on 21-Feb-2017

170 views

Category:

Software


0 download

TRANSCRIPT

برای توسعه توزیع شده نرم افزار Scrumمتودولوژی مبتنی بر

نوید صدیق پور

95بهار –متودولوژی تولید نرم افزار –دکتر نورحسینی

مرجع اصلی

:عنوان

Scrum-based Methodology for Distributed Software

Development

2011:انتشارسالIEEE

2 / 81

...آنچه خواهیم دید

مقدمه•شدهتوزیعهایمحیطبرایAgileدرشدهانجامکارهای•متودولوژیشرح•بندیجمعوخالصه•

3 / 81

مقدمه

4 / 81

توسعهردرقابتیحضوروهاهزینهدرجوییصرفهدنبالبهکمپانی هاامروزه.هستندافزارینرممحصوالت

هاییلوژیمتودوبهشدهتولیدمحصولکیفیتازاطمینانبرایهاکمپانیاین.بدهدراافزارنرممهندسیهایچالشبارویاروییامکانهاآنبهتادارند

دو متودولوژی پرکاربرد

7 / 81

ترکیب دو متودولوژی

•Scrumداردراپروسه هاومتدهاسایرتکمیلتوانایی.•RUPتوسعهبرایکلیچارچوبوقدرتمندمتودولوژی

.استنرم افزارتولیدمدیریتبرایمی تواندRUPوScrumترکیب•

.شودگرفتهکاربهتوزیع شدهمحیطدرنرم افزارتوسطمی تواندRUPهایdisciplineوفازهاتوسعه•

Scrumشودانجام.

8 / 81

کارهای انجام شده

9 / 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

متودولوژی پیشنهادی

19 / 81

زیربخش ها

پروسه پیشنهادی

مفاهیمساختار توزیع شدهپروسه پیشنهادی

20 / 81

مفاهیم

21 / 81

مفاهیم

.استRUPوscrumپایهبرمتودولوژیاین•.تاسبرخوردارباالییاهمیتازشدهتوزیعتیم هایمدیریت•

.می گذاردتاثیرافزارنرمکاراییوتیمبهره وریبرزیراتیم هایمدیریتدرمهمفاکتوردوتیم هاهمکاریوتعامل•

.می روندشماربهشدهتوزیع

مفاهیمساختار تیم ها و سایت های توزیع شده

تعامل و هماهنگیفعالیت ها

22 / 81

ساختار تیم ها و سایت های توزیع شده

23 / 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

تعامل و هماهنگی

28 / 81

تعامل

چشمیارتباطزیرا.استface-to-faceارتباطتعامل،راهبهترینیعتوزمحیطدربنابراین.می شودضروریاطالعاتکسبباعث.می شودپیشنهادکنفرانسویدئوازاستفادهشده،نبود،یسرم...وباندپنهایچونمسائلیدلیلبهکنفرانسویدئوبرقراریامکاناگر:نکته•

.شدخواهدجایگزینتلفنیتماس

29 / 81

هماهنگی

.ردمی گیصورتمنظمجلساتبرگزاریطریقازتیم هاهماهنگی...ادامهدرجلساتجزئیات

30 / 81

فعالیت ها

31 / 81

Test-Driven Development

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

.می کنیماجرامجدداراتست هاتمامآن،ازبعدومی نویسیمرا

32 / 81

Continuous Integration (C.I)

.می دهندانجامهمباراکارهایشانتیم،یکافراد•امانجکهکارهاییدرموردروزدرباریکحداقلتیمعضویک•

.می دهدگزارشتیمسایربهاستدادهتامی شودتستبالفاصلهمی شود،انجامکهintegrationهر•

.نیایدبوجودintegrationخطای

33 / 81

تعاریف اولیه

34 / 81

Scrum Master

بهیمتتوسطپروسهکهکندحاصلاطمینانکهاستاینمسئول.استشدهدرکخوبی

.نیستتیمنمایندهومی آوردبوجودراتیمبینهماهنگیScrumیکتیمهر Masterدارد.

35 / 81

Product Owners

.می شودانجامکهاستکاریارزشکردنماکزیمممسئولPrincipal Product Owner:اصلیدهیجهتپروژه،مدیریت

اولویت هاتعیینپروژه،Team Product Owner:اجرایبمنظورتیمکردنهماهنگ

Productدراولویت هاصحیح Backlog

36 / 81

ساختار توزیع شده

37 / 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

جلسات توزیع شده

44 / 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

پروسه پیشنهادی

52 / 81

1..شامل دو بخش است 2

53 / 81

Release Planningفاز

54 / 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

Sprint

59 / 81

..فاز است4شامل

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

Sprintفاز-1 Planning

Developmentفاز-2 Work

Sprintفاز-3 Review

Sprintفاز-4 Retrospective

60 / 81

Sprint Planningفاز

61 / 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فاز

65 / 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

Daily Scrum

15جلسه ای است حدودا دقیقه ای با حضور تیم و

Scrum Master

71 / 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فاز

74 / 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فاز

77 / 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

برای توسعه توزیع شده نرم افزار Scrumمتودولوژی مبتنی بر

نوید صدیق پور

95بهار –متودولوژی تولید نرم افزار –دکتر نورحسینی