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

Scrum based methodology for distributed software development

Embed Size (px)

Citation preview

برای توسعه توزیع شده نرم افزار 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بهار –متودولوژی تولید نرم افزار –دکتر نورحسینی