Anúncio
Anúncio

Mais conteúdo relacionado

Similar a Scrum based methodology for distributed software development(20)

Último(20)

Anúncio

Scrum based methodology for distributed software development

  1. ‫بر‬ ‫مبتنی‬ ‫متودولوژی‬Scrum‫افزار‬ ‫نرم‬ ‫شده‬ ‫توزیع‬ ‫توسعه‬ ‫برای‬ ‫پور‬‫صدیق‬ ‫نوید‬ ‫نورحسینی‬ ‫دکتر‬–‫افزار‬ ‫نرم‬ ‫تولید‬ ‫متودولوژی‬–‫بهار‬95
  2. ‫اصلی‬ ‫مرجع‬ ‫عنوان‬: Scrum-based Methodology for Distributed Software Development ‫سال‬‫انتشار‬:2011 IEEE 2 / 81
  3. ‫دید‬ ‫خواهیم‬ ‫آنچه‬... •‫مقدمه‬ •‫کارهای‬‫انجام‬‫شده‬‫در‬Agile‫برای‬‫محیط‬‫های‬‫توزیع‬‫شده‬ •‫شرح‬‫متودولوژی‬ •‫خالصه‬‫و‬‫جمع‬‫بندی‬ 3 / 81
  4. ‫مقدمه‬ 4 / 81
  5. ‫امروزه‬‫ها‬‫کمپانی‬‫به‬‫دنبال‬‫صرفه‬‫جویی‬‫در‬‫هزینه‬‫ها‬‫و‬‫حضور‬‫رقابتی‬‫د‬‫ر‬‫توسعه‬ ‫محصوالت‬‫نرم‬‫افزاری‬‫هستند‬.
  6. ‫این‬‫کمپانی‬‫ها‬‫برای‬‫اطمینان‬‫از‬‫کیفیت‬‫محصول‬‫تولید‬‫شده‬‫به‬‫متودو‬‫لوژی‬‫هایی‬ ‫دارند‬‫تا‬‫به‬‫آن‬‫ها‬‫امکان‬‫رویارویی‬‫با‬‫چالش‬‫های‬‫مهندسی‬‫نرم‬‫افزار‬‫را‬‫بدهد‬.
  7. ‫پرکاربرد‬ ‫متودولوژی‬ ‫دو‬ 7 / 81
  8. ‫متودولوژی‬ ‫دو‬ ‫ترکیب‬ •Scrum‫توانایی‬‫تکمیل‬‫سایر‬‫متدها‬‫و‬‫ها‬‫پروسه‬‫را‬‫دارد‬. •RUP‫متودولوژی‬‫قدرتمند‬‫و‬‫چارچوب‬‫کلی‬‫برای‬‫توسعه‬ ‫افزار‬‫نرم‬‫است‬. •‫ترکیب‬Scrum‫و‬RUP‫تواند‬‫می‬‫برای‬‫مدیریت‬‫تولید‬ ‫افزار‬‫نرم‬‫در‬‫محیط‬‫شده‬‫توزیع‬‫به‬‫کار‬‫گرفته‬‫شود‬. •‫توسعه‬‫فازها‬‫و‬discipline‫های‬RUP‫تواند‬‫می‬‫توسط‬ Scrum‫انجام‬‫شود‬. 8 / 81
  9. ‫شده‬ ‫انجام‬ ‫کارهای‬ 9 / 81
  10. ‫موجود‬ ‫مقاالت‬ •‫تعداد‬‫مقاالتی‬‫که‬‫از‬‫روشی‬‫مبتنی‬‫بر‬‫های‬‫روش‬Agile‫در‬‫محیط‬ ‫شده‬‫توزیع‬‫استفاده‬،‫کنند‬‫می‬‫کم‬‫است‬. •‫هفت‬‫مقاله‬‫که‬‫کار‬‫ها‬‫آن‬‫بهتر‬‫است‬‫را‬‫بررسی‬‫کنیم‬‫می‬. 10 / 81
  11. ‫اول‬ ‫مقاله‬.. ‫سه‬‫راه‬‫حل‬‫اصلی‬‫در‬‫این‬‫مقاله‬‫پیشنهاد‬‫شده‬‫است‬: .‫دهی‬‫سازمان‬ 1‫تیم‬‫با‬‫توجه‬‫به‬‫ساختار‬‫معماری‬ .‫زمان‬ 2‫جلسات‬‫هماهنگی‬‫ها‬‫تیم‬‫متغیر‬‫باشد‬ .‫وجود‬ 3‫نماینده‬‫یا‬ambassador 11 / 81
  12. ‫دوم‬ ‫مقاله‬.. •‫استفاده‬‫از‬Agile: -‫ممکن‬ -‫ناممکن‬ -‫شده‬‫اصالح‬ •‫تحقیقات‬‫این‬‫نویسنده‬‫نشان‬‫دهد‬‫می‬‫که‬‫های‬‫متودولوژی‬Agile ‫برای‬‫استفاده‬‫در‬‫های‬‫پروژه‬outsourcing‫باید‬‫اصالح‬‫شوند‬. •‫یک‬‫روش‬‫ترکیبی‬‫و‬‫اصالح‬‫شده‬‫ارائه‬‫کرده‬‫است‬. 12 / 81
  13. ‫سوم‬ ‫مقاله‬.. •‫ترکیب‬Scrum‫و‬FDD •‫عیب‬‫اصلی‬: ‫متودولوژی‬‫در‬‫این‬‫مقاله‬‫به‬‫صراحت‬‫بیان‬‫نشده‬‫است‬‫و‬‫بیش‬‫تر‬‫تاکید‬ ‫بر‬‫نحوه‬‫هماهنگ‬‫سازی‬‫ها‬‫تیم‬‫است‬. 13 / 81
  14. ‫چهارم‬ ‫مقاله‬.. ‫راهکارهایی‬‫برای‬‫رسیدن‬‫به‬agility‫در‬Global Software Development‫پیشنهاد‬‫کند‬‫می‬: •‫حصول‬‫دانش‬‫جدید‬‫و‬‫بروز‬‫درباره‬‫های‬‫تکنولوژی‬‫جدید‬ •‫تعریف‬‫واضح‬‫ها‬‫نقش‬‫و‬‫ها‬‫مسئولیت‬ •‫استانداردسازی‬‫فرم‬‫پلت‬IT 14 / 81
  15. ‫پنجم‬ ‫مقاله‬ ‫چارچوبی‬‫برای‬‫مدیریت‬‫جهانی‬‫پروژه‬‫پیشنهاد‬‫کرده‬‫است‬‫ک‬‫ه‬‫در‬ ‫آن‬‫از‬‫یک‬‫روش‬‫توزیع‬‫شده‬agile‫استفاده‬‫شده‬‫است‬. ‫این‬‫مقاله‬‫نشان‬‫دهد‬‫می‬‫که‬‫استفاده‬‫از‬agile‫برای‬‫توسعه‬‫نرم‬‫افزار‬ ‫توزیع‬،‫شده‬‫موفق‬‫بوده‬‫است‬. 15 / 81
  16. ‫ششم‬ ‫مقاله‬.. ‫ساختار‬‫تیم‬: 1-Partial Offshoring ‫تیم‬onshore،‫تیم‬‫طراحی‬‫است‬‫و‬‫ها‬‫نیازمندی‬‫را‬‫به‬‫تیم‬offshore ‫ارسال‬‫کند‬‫می‬‫که‬‫آن‬‫تیم‬‫با‬‫یک‬‫کد‬‫تست‬‫شده‬‫کامل‬‫پاسخ‬‫دهد‬‫می‬. 2-Complete Offshoring ‫تنها‬‫کسی‬‫که‬Onshore‫است‬‫مشتری‬‫است‬‫که‬feature‫ها‬‫را‬‫به‬ ‫تیم‬offshore‫فرستد‬‫می‬.‫تیم‬offshore‫هم‬‫با‬‫یک‬‫کد‬‫کامال‬ ‫شده‬‫تست‬‫پاسخ‬‫دهد‬‫می‬. 16 / 81
  17. ‫هفتم‬ ‫مقاله‬.. ‫بهترین‬‫کارهای‬‫شده‬‫انجام‬‫در‬‫حوزه‬‫های‬‫تیم‬‫شده‬‫توزیع‬‫را‬‫نشا‬‫ن‬ ‫دهد‬‫می‬. -‫هر‬‫ساعت‬‫به‬‫صورت‬‫اتوماتیک‬Build‫ها‬‫از‬‫یک‬‫انبار‬‫داده‬ ‫مرکزی‬‫تهیه‬‫شوند‬. -‫ترکیب‬XP‫با‬‫سایر‬‫ها‬‫متودولوژی‬(‫مثال‬paip prog.‫در‬ scrum) 17 / 81
  18. ‫مقاالت‬ ‫تمام‬ ‫اصلی‬ ‫عیب‬ •‫هیچ‬‫کدام‬ً‫ا‬‫صراحت‬‫متودولوژی‬‫را‬‫که‬‫از‬agile‫در‬‫محیط‬ ‫شده‬‫توزیع‬‫استفاده‬‫کند‬‫را‬‫بیان‬‫اند‬‫نکرده‬. •‫ها‬‫تکنیک‬‫را‬‫به‬‫صورت‬‫کلی‬‫بیان‬‫اند‬‫کرده‬‫و‬‫وارد‬‫جزئیات‬ ‫اند‬‫نشده‬. •‫بیشتر‬‫راجع‬‫به‬‫کاربرد‬‫ها‬‫آن‬‫صحبت‬‫شده‬‫است‬‫تا‬‫جزئی‬‫ات‬‫نحوه‬ ‫استفاده‬‫از‬‫ها‬‫آن‬ 18 / 81
  19. ‫پیشنهادی‬ ‫متودولوژی‬ 19 / 81
  20. ‫ها‬‫زیربخش‬ ‫پروسه‬ ‫پیشنهادی‬ ‫مفاهیم‬ ‫شده‬ ‫توزیع‬ ‫ساختار‬ ‫پیشنهادی‬ ‫پروسه‬ 20 / 81
  21. ‫مفاهیم‬ 21 / 81
  22. ‫مفاهیم‬ •‫این‬‫متودولوژی‬‫بر‬‫پایه‬scrum‫و‬RUP‫است‬. •‫مدیریت‬‫های‬‫تیم‬‫توزیع‬‫شده‬‫از‬‫اهمیت‬‫باالیی‬‫برخوردار‬‫اس‬‫ت‬. ‫زیرا‬‫بر‬‫وری‬‫بهره‬‫تیم‬‫و‬‫کارایی‬‫نرم‬‫افزار‬‫تاثیر‬‫گذارد‬‫می‬. •‫تعامل‬‫و‬‫همکاری‬‫ها‬‫تیم‬‫دو‬‫فاکتور‬‫مهم‬‫در‬‫مدیریت‬‫های‬‫تیم‬ ‫توزیع‬‫شده‬‫به‬‫شمار‬‫روند‬‫می‬. ‫مفاهیم‬ ‫شده‬‫توزیع‬ ‫های‬‫سایت‬ ‫و‬ ‫ها‬‫تیم‬ ‫ساختار‬ ‫هماهنگی‬ ‫و‬ ‫تعامل‬ ‫ها‬‫فعالیت‬ 22 / 81
  23. ‫شده‬ ‫توزیع‬ ‫های‬‫سایت‬ ‫و‬ ‫ها‬‫تیم‬ ‫ساختار‬ 23 / 81
  24. Feature Teams ‫وقتی‬‫یک‬‫تیم‬‫توانایی‬‫به‬‫اتمام‬‫رساندن‬‫یک‬feature‫از‬Product Backlog‫را‬‫داشته‬،‫باشد‬‫به‬‫آن‬،‫تیم‬feature team‫گفته‬‫شود‬‫می‬. 24 / 81
  25. ‫ساختار‬‫تیم‬‫بر‬‫اساس‬feature team‫ها‬‫خواهد‬‫بود‬‫و‬‫نه‬‫بر‬‫اساس‬job function‫ها‬!‫آنالیز‬‫در‬‫کانادا‬‫و‬‫نویسی‬‫برنامه‬‫در‬‫هند‬‫انجام‬‫شود‬‫نمی‬.‫زی‬‫را‬ ‫مشکالت‬‫ارتباطی‬‫پدیدار‬‫خواهد‬‫شد‬.
  26. ‫ها‬‫تیم‬ ‫انواع‬ 1-Distributed Scrum of Scrums ‫تیم‬‫ها‬‫از‬‫نظر‬‫جغرافیایی‬‫نزدیک‬‫به‬‫هم‬‫هستند‬. 2-Fully Distributed Scrum ‫ها‬‫تیم‬‫از‬‫نظر‬‫جغرافیایی‬‫پراکنده‬‫هستند‬. 26 / 81
  27. ‫ها‬‫تیم‬ ‫ویژگی‬ •‫پایدار‬‫هستند‬. •‫به‬‫صورت‬‫بلند‬‫مدت‬‫با‬‫هم‬‫کار‬‫کنند‬‫می‬. •‫تعداد‬‫آنها‬2(-)+/7‫نفر‬‫است‬. •‫افراد‬‫دارای‬‫مهارت‬‫های‬‫متنوع‬‫هستند‬‫که‬‫توانایی‬‫تکمیل‬‫ی‬‫ک‬ feature‫از‬‫محصول‬‫را‬‫دارند‬. 27 / 81
  28. ‫هماهنگی‬ ‫و‬ ‫تعامل‬ 28 / 81
  29. ‫تعامل‬ ‫بهترین‬‫راه‬،‫تعامل‬‫ارتباط‬face-to-face‫است‬.‫زیرا‬‫ارتباط‬‫چشمی‬ ‫باعث‬‫کسب‬‫اطالعات‬‫ضروری‬‫شود‬‫می‬.‫بنابراین‬‫در‬‫محیط‬‫توز‬‫یع‬ ،‫شده‬‫استفاده‬‫از‬‫ویدئو‬‫کنفرانس‬‫پیشنهاد‬‫شود‬‫می‬. •‫نکته‬:‫اگر‬‫امکان‬‫برقراری‬‫ویدئو‬‫کنفرانس‬‫به‬‫دلیل‬‫مسائلی‬‫چون‬‫پنهای‬‫باند‬‫و‬...‫م‬‫یسر‬،‫نبود‬ ‫تماس‬‫تلفنی‬‫جایگزین‬‫خواهد‬‫شد‬. 29 / 81
  30. ‫هماهنگی‬ ‫هماهنگی‬‫ها‬‫تیم‬‫از‬‫طریق‬‫برگزاری‬‫جلسات‬‫منظم‬‫صورت‬‫گی‬‫می‬‫رد‬. ‫جزئیات‬‫جلسات‬‫در‬‫ادامه‬... 30 / 81
  31. ‫ها‬‫فعالیت‬ 31 / 81
  32. Test-Driven Development ‫برای‬‫هر‬‫واحد‬‫از‬functionality،‫کد‬‫ابتدا‬‫تست‬‫نوشته‬‫شود‬‫می‬. ‫تست‬‫را‬‫اجرا‬،‫کنیم‬‫می‬‫اگر‬‫موفق‬،‫نبود‬‫یعنی‬‫پیاده‬‫سازی‬‫اش‬‫کال‬ ‫دارد‬.‫سپس‬‫فقط‬‫کدهای‬‫الزم‬‫برای‬‫اینکه‬‫تست‬‫درست‬‫جواب‬‫دهد‬ ‫را‬‫نویسیم‬‫می‬‫و‬‫بعد‬‫از‬،‫آن‬‫تمام‬‫ها‬‫تست‬‫را‬‫مجددا‬‫اجرا‬‫کنیم‬‫می‬. 32 / 81
  33. Continuous Integration (C.I) •‫افراد‬‫یک‬،‫تیم‬‫کارهایشان‬‫را‬‫با‬‫هم‬‫انجام‬‫دهند‬‫می‬. •‫یک‬‫عضو‬‫تیم‬‫حداقل‬‫یک‬‫بار‬‫در‬‫روز‬‫درمورد‬‫کارهایی‬‫که‬‫انج‬‫ام‬ ‫داده‬‫است‬‫به‬‫سایر‬‫تیم‬‫گزارش‬‫دهد‬‫می‬. •‫هر‬integration‫که‬‫انجام‬،‫شود‬‫می‬‫بالفاصله‬‫تست‬‫شود‬‫می‬‫تا‬ ‫خطای‬integration‫بوجود‬‫نیاید‬. 33 / 81
  34. ‫اولیه‬ ‫تعاریف‬ 34 / 81
  35. Scrum Master ‫مسئول‬‫این‬‫است‬‫که‬‫اطمینان‬‫حاصل‬‫کند‬‫که‬‫پروسه‬‫توسط‬‫ت‬‫یم‬‫به‬ ‫خوبی‬‫درک‬‫شده‬‫است‬. ‫هماهنگی‬‫بین‬‫تیم‬‫را‬‫بوجود‬‫آورد‬‫می‬‫و‬‫نماینده‬‫تیم‬‫نیست‬. ‫هر‬‫تیم‬‫یک‬Scrum Master‫دارد‬. 35 / 81
  36. Product Owners ‫مسئول‬‫ماکزیمم‬‫کردن‬‫ارزش‬‫کاری‬‫است‬‫که‬‫انجام‬‫شود‬‫می‬. Principal Product Owner:‫مدیریت‬،‫پروژه‬‫جهت‬‫دهی‬‫اصلی‬ ،‫پروژه‬‫تعیین‬‫ها‬‫اولویت‬ Team Product Owner:‫هماهنگ‬‫کردن‬‫تیم‬‫بمنظور‬‫اجرای‬ ‫صحیح‬‫ها‬‫اولویت‬‫در‬Product Backlog 36 / 81
  37. ‫شده‬‫توزیع‬ ‫ساختار‬ 37 / 81
  38. ‫چالش‬‫اصلی‬‫در‬‫ساختار‬‫های‬‫تیم‬،‫شده‬‫توزیع‬‫اختالف‬‫زمانی‬‫است‬.
  39. ‫زمانی‬ ‫اختالف‬ ‫اگر‬‫اختالف‬‫زمانی‬‫کم‬،‫باشد‬‫یعنی‬‫ساعت‬‫کاری‬‫مشترک‬ (overlapping hours)‫بین‬‫ها‬‫تیم‬‫وجود‬‫دارد‬.،‫بنابراین‬‫از‬‫ویدئ‬‫و‬ ‫کنفرانس‬‫برای‬‫برگزاری‬‫جلسات‬‫استفاده‬‫خواهد‬‫شد‬. ‫اگر‬‫اختالف‬‫زمانی‬‫بین‬‫ها‬‫تیم‬‫خیلی‬‫زیاد‬،‫باشد‬‫امکان‬‫وجود‬‫س‬‫اعت‬ ‫کاری‬‫مشترک‬‫بین‬،‫ها‬‫تیم‬‫وجود‬‫ندارد‬.‫بنابراین‬‫باید‬‫از‬‫روش‬‫های‬ ‫دیگر‬‫مثل‬wiki‫استفاده‬‫کرد‬. wiki = shared documentations 39 / 81
  40. ‫شده‬ ‫توزیع‬ ‫های‬‫تیم‬ ‫آرایش‬ ‫هدف‬‫تبدیل‬‫تیم‬‫معمولی‬(component team)‫به‬feature team ‫است‬. ‫سه‬‫روش‬: .1Big-Bang reorganization .‫توسعه‬ 2‫تدریجی‬‫های‬‫مسئولیت‬‫تیم‬ .‫تولید‬ 3‫تدریجی‬feature teams‫توسط‬‫اعمال‬‫مهمترین‬ feature‫ها‬ 40 / 81
  41. Big-Bang reorganization ‫در‬‫این‬،‫حالت‬‫ها‬‫تیم‬‫مجددا‬‫دهی‬‫سازمان‬‫شوند‬‫می‬.‫ها‬‫تیم‬‫بن‬‫گروه‬‫دی‬ ،‫شوند‬‫می‬‫به‬‫صورتی‬‫که‬‫متخصصین‬‫از‬‫حوزه‬‫های‬‫مختلف‬‫در‬‫ه‬‫ر‬ ‫گروه‬‫قرار‬‫داشته‬‫باشد‬‫و‬‫هر‬‫تیم‬‫نسبت‬‫به‬‫اکثریت‬‫سیس‬،‫تم‬‫دانش‬ ‫کافی‬‫داشته‬‫باشد‬. ‫عیب‬‫این‬‫روش‬: ‫ریسک‬‫باال؛‬‫فرض‬‫کنید‬‫که‬‫همه‬‫افراد‬‫متخصص‬‫در‬،‫آنالیز‬‫د‬‫ر‬ ‫استکهلم‬‫باشند‬.‫بنابراین‬‫تغییر‬‫در‬‫ها‬‫تیم‬‫ممکن‬‫است‬‫ب‬‫سیار‬‫بزرگ‬ ‫باشد‬. 41 / 81
  42. ‫تیم‬ ‫های‬‫مسئولیت‬ ‫تدریجی‬ ‫توسعه‬ •‫تبدیل‬‫تیم‬‫به‬feature team‫آهسته‬‫صورت‬‫گیرد‬‫می‬. •‫اعضای‬‫تیم‬‫تغییر‬‫کنند‬‫نمی‬. •‫کم‬‫کم‬‫های‬‫مسئولیت‬‫تیم‬‫را‬‫گسترش‬‫دهیم‬‫می‬‫تا‬‫در‬‫نهای‬‫ت‬‫به‬ feature team‫تبدیل‬‫شود‬. ‫عیب‬‫این‬‫روش‬: ‫معایب‬component team‫و‬feature team‫را‬‫باهم‬‫دارد‬. 42 / 81
  43. ‫تدریجی‬ ‫تولید‬feature teams‫اعمال‬ ‫توسط‬ ‫ترین‬‫مهم‬feature‫ها‬ ‫در‬‫این‬،‫روش‬‫ابتدا‬‫ترین‬‫مهم‬feature‫ها‬‫به‬product backlog ‫اعمال‬‫شوند‬‫می‬‫و‬‫به‬feature team‫ها‬‫سپرده‬‫شوند‬‫می‬.‫بقیه‬ feature‫ها‬‫به‬component team‫ها‬‫داده‬‫خواهند‬‫شد‬. ‫عیب‬‫این‬‫روش‬: Feature team‫ممکن‬‫است‬‫نیاز‬‫به‬‫تغییر‬‫کد‬‫نوشته‬‫شده‬‫ت‬‫وسط‬ component team‫داشته‬‫باشند‬. 43 / 81
  44. ‫شده‬‫توزیع‬ ‫جلسات‬ 44 / 81
  45. ‫اگر‬‫ساعات‬‫مشترک‬‫بین‬‫ها‬‫تیم‬‫وجود‬‫نداشته‬،‫باشد‬‫هایی‬‫روش‬‫جایگزین‬‫ویدئو‬ ‫کنفرانس‬‫خواهند‬‫شد‬.
  46. ‫جایگزین‬ ‫روش‬ ‫پنج‬ 1-‫مالقات‬‫از‬‫طریق‬documentation 2-‫استفاده‬‫از‬‫رابط‬ 3-‫جلسات‬‫با‬‫زمان‬‫متغیر‬ 4-share the pain 5-feel the pain 46 / 81
  47. ‫طریق‬ ‫از‬ ‫مالقات‬documentation ‫در‬‫این‬،‫روش‬‫از‬wiki‫استفاده‬‫شود‬‫می‬.‫بدین‬‫ترتیب‬‫اعضا‬‫غائ‬‫ب‬ ‫توانند‬‫می‬‫در‬‫مورد‬‫اتفاقاتی‬‫که‬‫در‬‫جلسه‬‫افتاده‬،‫است‬‫باخب‬‫ر‬‫شوند‬. 47 / 81
  48. ‫رابط‬ ‫از‬ ‫استفاده‬ ‫در‬‫این‬،‫روش‬‫دو‬‫جلسه‬‫جداگانه‬‫برگزار‬‫خواهد‬‫شد‬‫و‬‫یک‬‫شخص‬‫ب‬‫ه‬ ‫عنوان‬‫رابط‬(‫لینک‬)‫در‬‫هر‬‫دو‬‫جلسه‬‫حضور‬‫پیدا‬‫کند‬‫می‬‫و‬‫وظیف‬‫ه‬‫به‬ ‫اشتراک‬‫گذاری‬‫اطالعات‬‫بین‬‫دو‬‫گروه‬‫را‬‫بر‬‫عهده‬‫دارد‬. 48 / 81
  49. ‫متغیر‬ ‫زمان‬ ‫با‬ ‫جلسات‬ ‫در‬‫این‬،‫روش‬‫زمان‬‫جلسات‬‫با‬‫هم‬‫فرق‬‫کند‬‫می‬.‫بنابراین‬‫یک‬‫ج‬‫لسه‬ ‫ممکن‬‫است‬‫در‬‫ساعات‬‫کاری‬‫یک‬‫تیم‬‫باشد‬‫و‬‫جلسه‬‫بعدی‬‫در‬ ‫ساعات‬‫کاری‬‫تیم‬(‫های‬)‫دیگر‬. 49 / 81
  50. Share the pain ‫یک‬‫زمان‬‫ثابت‬‫انتخاب‬‫خواهد‬‫شد‬.‫اما‬‫این‬‫زمان‬‫به‬‫گونه‬‫ای‬‫انت‬‫خاب‬ ‫شود‬‫می‬‫که‬‫اکثریت‬‫افراد‬‫در‬‫تمام‬‫ها‬‫تیم‬‫با‬‫آن‬‫زمان‬‫موافق‬‫با‬‫شند‬. ‫رای‬‫گیری‬! 50 / 81
  51. Feel the Pain ‫در‬‫این‬،‫حالت‬‫تیم‬‫یا‬‫هایی‬‫تیم‬‫که‬‫ساعات‬‫کاری‬‫ها‬‫آن‬‫با‬‫سایر‬‫ها‬‫تیم‬ ‫متفاوت‬،‫است‬‫مجبور‬‫به‬‫برگزاری‬‫جلسات‬‫خارج‬‫از‬‫ساعت‬‫کار‬‫ی‬ ‫خودشان‬‫خواهند‬‫بود‬. 51 / 81
  52. ‫پیشنهادی‬ ‫پروسه‬ 52 / 81
  53. ‫است‬ ‫بخش‬ ‫دو‬ ‫شامل‬..1 2 53 / 81
  54. ‫فاز‬Release Planning 54 / 81
  55. ‫فاز‬Release Planning ‫در‬‫این‬‫مرحله‬‫یک‬plan‫اولیه‬‫بدست‬‫آید‬‫می‬.‫اما‬‫این‬plan،‫در‬‫طول‬ ‫پروسه‬‫تولید‬‫افزار‬‫نرم‬‫ممکن‬‫است‬‫تغییر‬‫کند‬. ‫این‬‫فاز‬‫شامل‬3‫فعالیت‬‫زیر‬‫است‬: 1-Requirement Elicitation 2-General Release Planning Meeting 3-Local Release Planning Meeting 55 / 81
  56. Requirement Elicitation ‫شامل‬‫جمع‬‫آوری‬‫نیازها‬‫از‬‫تمام‬‫افراد‬‫ذی‬‫نفع‬‫است‬. ‫از‬‫یکی‬‫از‬‫روش‬‫های‬‫جمع‬‫آوری‬‫نیازها‬‫مانند‬user stories‫استفاده‬ ‫شود‬‫می‬. 56 / 81
  57. General Release Planning Meeting (General RPM) ‫در‬‫این‬،‫فعالیت‬‫تمامی‬product owner‫ها‬‫جمع‬‫شوند‬‫می‬‫تا‬‫نمایی‬ ‫از‬‫محصول‬‫را‬‫تعریف‬‫کنند‬. ‫سپس‬product backlog‫ها‬‫را‬‫تولید‬‫و‬‫اولویت‬‫بندی‬‫کنند‬‫می‬. ‫ها‬‫اولویت‬‫را‬‫بر‬‫اساس‬‫اطالعات‬‫بدست‬‫آمده‬‫از‬‫ذی‬‫نفعان‬‫و‬ criteria‫خودشان‬‫انجام‬‫دهند‬‫می‬. ‫در‬‫نهایت‬‫هر‬Backlog‫به‬‫تعدادی‬section‫خرد‬‫شود‬‫می‬‫و‬‫هر‬ section‫به‬‫یک‬‫تیم‬‫اختصاص‬‫یابد‬‫می‬. 57 / 81
  58. Local Release Planning Meeting (Local RPM) ‫در‬‫این‬،‫فعالیت‬product owner،‫ها‬‫تیم‬‫را‬‫از‬section‫هایی‬‫که‬‫به‬ ‫ها‬‫آن‬‫اختصاص‬‫یافته‬،‫است‬‫آگاه‬‫کند‬‫می‬. 58 / 81
  59. Sprint 59 / 81
  60. ‫شامل‬4‫است‬ ‫فاز‬.. ‫شامل‬‫چهار‬‫فاز‬‫است‬‫که‬‫به‬‫صورت‬‫چرخشی‬‫اجرا‬‫شوند‬‫می‬‫و‬‫در‬‫هر‬ ،‫چرخه‬‫یک‬‫نسخه‬‫از‬‫محصول‬‫تولید‬‫شود‬‫می‬: 1-‫فاز‬Sprint Planning 2-‫فاز‬Development Work 3-‫فاز‬Sprint Review 4-‫فاز‬Sprint Retrospective 60 / 81
  61. ‫فاز‬Sprint Planning 61 / 81
  62. ‫فاز‬Sprint Planning ‫این‬‫فاز‬‫مشخص‬‫کند‬‫می‬‫که‬‫کدام‬‫قسمت‬‫از‬Product Backlog ‫باید‬‫در‬‫این‬‫قسمت‬‫تبدیل‬‫به‬working software‫شود‬. ‫شامل‬‫دو‬‫فعالیت‬‫است‬: 1-General Sprint Planning Meeting 2-Local Sprint Planning Meeting 62 / 81
  63. General Sprint Planning Meeting •‫در‬‫این‬،‫فعالیت‬principal product owner‫و‬team product owners‫دور‬‫هم‬‫جمع‬‫شوند‬‫می‬‫تا‬‫در‬‫مورد‬‫کاری‬‫که‬ ‫قرار‬‫است‬‫انجام‬،‫شود‬‫تصمیم‬‫بگیرند‬. •‫یک‬‫هدف‬‫برای‬sprint‫تعریف‬‫کنند‬‫می‬. •Feature‫هایی‬‫که‬‫هر‬‫تیم‬‫در‬‫طول‬sprint‫باید‬‫انجام‬‫ده‬‫را‬ ‫مشخص‬‫کنند‬‫می‬.‫بدین‬‫صورت‬‫که‬‫وابستگی‬‫بین‬‫تیم‬‫های‬ ،‫مختلف‬‫مینیمم‬‫باشد‬. 63 / 81
  64. Local Sprint Planning Meeting •‫در‬‫این‬،‫فعالیت‬Team product owner‫اعضای‬‫تیم‬‫خود‬‫را‬‫مالقات‬ ‫کند‬‫می‬(Scrum Master‫هم‬‫در‬‫این‬‫جلسه‬‫حضور‬‫دارد‬). •‫در‬‫این‬‫جلسه‬‫ابتدا‬‫وظایف‬‫وظایف‬‫تعریف‬‫شوند‬‫می‬.‫یعنی‬‫کا‬‫رهای‬ ‫الزم‬‫برای‬‫تبدیل‬backlog‫به‬working software‫خرد‬‫شوند‬‫می‬ ‫تا‬‫هر‬‫وظیفه‬(‫مثال‬)‫کمتر‬‫از‬‫یک‬‫روز‬‫انجام‬‫شود‬. •‫تعداد‬‫ساعات‬‫الزم‬‫برای‬‫انجام‬‫هر‬‫وظیفه‬‫را‬‫تخمین‬‫زنند‬‫می‬. •‫سپس‬‫هر‬‫وظیفه‬‫را‬‫به‬‫یکی‬‫از‬‫اعضای‬‫تیم‬‫سپارند‬‫می‬. •‫در‬‫نهایت‬sprint backlog‫و‬sprint burndown‫تولید‬‫شوند‬‫می‬. •Sprint Burndown‫گرافی‬‫است‬‫که‬‫زمان‬‫مانده‬‫باقی‬‫تا‬‫اتمام‬Sprint Backlog‫را‬‫نشان‬‫دهد‬‫می‬. 64 / 81
  65. ‫فاز‬Development Work 65 / 81
  66. ‫فاز‬Development Work ‫شامل‬5‫فعالیت‬‫است‬‫که‬‫به‬‫صورت‬iterative‫و‬incremental‫انجام‬ ‫شوند‬‫می‬. 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
  67. Analysis and Design •‫در‬‫فاز‬‫آنالیز‬: ‫نیازها‬‫با‬‫جزئیات‬‫مشخص‬‫شوند‬‫می‬. ‫آنالیز‬‫از‬‫زبان‬developer •‫در‬‫فاز‬Design: ‫درک‬‫بیشتری‬‫از‬‫نیازهای‬non-functional‫و‬‫ها‬‫محدودیت‬‫خواهیم‬ ‫داشت‬. ‫سیستم‬‫به‬‫گونه‬‫ای‬‫پیاده‬‫سازی‬‫شود‬‫می‬‫که‬‫تمام‬‫نیازها‬‫را‬‫پ‬‫شتیبانی‬ ‫کند‬. ‫یک‬abstraction‫از‬‫پیاده‬‫سازی‬‫سیستم‬‫تولید‬‫خواهد‬‫شد‬. ‫در‬‫نهایت؛‬Design Model‫تولید‬‫خواهد‬‫شد‬. 67 / 81
  68. Implementation and Testing ‫پیاده‬‫سازی‬‫و‬‫تست‬‫باهم‬‫انجام‬‫شوند‬‫می‬.‫زیرا‬‫از‬T.D.D‫استفاده‬ ‫شود‬‫می‬. ‫سازی‬‫پیاده‬: •‫وظیفه‬‫آن‬‫تبدیل‬Design Model‫به‬‫کد‬‫قابل‬‫اجراست‬‫که‬ ‫مشتری‬‫مدنظر‬‫دارد‬. •‫معماری‬‫و‬‫سیستم‬‫به‬‫صورت‬‫یکپارچه‬‫طراحی‬‫شوند‬‫می‬.‫ب‬‫دین‬ ‫منظور‬‫استفاده‬‫از‬C.I‫بسیار‬‫مهم‬‫است‬.‫زیرا‬‫کدهای‬‫نوشته‬‫ش‬‫ده‬ ‫توسط‬‫های‬‫تیم‬‫مختلف‬‫باید‬integrate‫شوند‬. 68 / 81
  69. Implementation and Testing (cont.) ‫تست‬: ‫هدف‬‫اصلی‬‫آن‬‫تایید‬‫نتایج‬‫سازی‬‫پیاده‬‫است‬. ‫از‬‫یک‬Test Plan‫استفاده‬‫کند‬‫می‬‫که‬‫در‬‫ابتدای‬‫همین‬‫فاز‬‫یا‬‫در‬‫فاز‬ Release Planning‫تعریف‬‫اند‬‫شده‬. ‫دو‬‫روش‬‫تست‬: 1-Test-Driven Development 2-Acceptance Test-Driven Development ‫هر‬‫دو‬‫به‬‫این‬‫صورت‬‫عمل‬‫کنند‬‫می‬‫که‬‫ابتدا‬‫تست‬‫ساخته‬‫شود‬‫می‬،‫سپس‬ ‫کد‬‫نوشته‬‫شود‬‫می‬. ‫نتایج‬‫تست‬‫به‬‫صورت‬Test Report‫نوشته‬‫شده‬‫و‬‫برای‬‫تمام‬‫اعضای‬ ‫تمام‬‫ها‬‫تیم‬‫به‬‫اشتراک‬‫گذاشته‬‫شود‬‫می‬. 69 / 81
  70. Deployment ‫این‬‫فعالیت‬‫به‬‫تمام‬‫های‬‫جنبه‬‫اجرای‬‫نرم‬‫افزار‬‫در‬‫محیط‬‫کارب‬‫ر‬‫توجه‬ ‫دارد‬. ‫در‬‫اولین‬Task‫این‬،‫فعالیت‬‫تولید‬‫یا‬‫بروزرسانی‬manual‫هایی‬‫که‬ ‫در‬‫مراحل‬‫بعدی‬‫استفاده‬‫خواهند‬‫شد‬‫انجام‬‫شود‬‫می‬.‫اگر‬‫این‬ ‫آخرین‬iteration،‫باشد‬‫انجام‬‫این‬‫فعالیت‬‫بسیار‬‫ضروری‬‫است‬. ‫در‬‫آخرین‬task‫از‬‫این‬،‫فعالیت‬project monitoring‫بوسیله‬ team product owner‫انجام‬‫شود‬‫می‬. 70 / 81
  71. Daily Scrum ‫حدودا‬ ‫است‬ ‫ای‬ ‫جلسه‬15 ‫و‬ ‫تیم‬ ‫حضور‬ ‫با‬ ‫ای‬ ‫دقیقه‬ Scrum Master 71 / 81
  72. Weekly Meetings ‫مالقات‬‫هفتگی‬‫به‬‫دو‬‫صورت‬‫انجام‬‫شود‬‫می‬: ‫الف‬-weekly Scrums ‫ب‬-Scrum of Scrums Weekly Scrums: ‫مالقات‬‫هفتگی‬team product owner‫ها‬‫به‬‫همراه‬principal product owner‫انجام‬‫شود‬‫می‬‫تا‬‫پروژه‬‫دنبال‬‫شود‬‫و‬‫یک‬ ‫هماهنگی‬‫بین‬Team product owner‫ها‬‫صورت‬‫بگیرد‬‫و‬ ‫های‬‫وابستگی‬‫احتمالی‬‫بین‬‫ها‬‫تیم‬‫مدیریت‬‫شود‬. 72 / 81
  73. Weekly Meetings (cont.) Scrum of Scrums: ‫جلسات‬‫هماهنگی‬‫هفتگی‬‫هستند‬‫و‬‫از‬‫هر‬،‫تیم‬‫نمایندگانی‬‫ح‬‫ضور‬ ‫دارند‬. ‫در‬‫این‬‫جلسه‬‫در‬‫مورد‬‫وابستگی‬،‫ها‬‫تیم‬integration‫ها‬‫و‬‫هر‬‫مسئله‬ ‫دیگری‬‫که‬‫دو‬‫یا‬‫چند‬‫تیم‬‫را‬‫به‬‫هم‬‫مربوط‬،‫کند‬‫صحبت‬‫ش‬‫می‬‫ود‬. 73 / 81
  74. ‫فاز‬Sprint Review 74 / 81
  75. ‫فاز‬Sprint Review ‫هدف‬‫از‬‫این‬،‫فاز‬‫حصول‬‫اطمینان‬‫از‬‫این‬‫است‬‫که‬‫ها‬‫تیم‬‫اهداف‬ sprint‫را‬‫به‬‫خوبی‬‫اجرا‬‫کرده‬‫باشند‬.‫سپس‬‫نتایج‬sprint‫به‬‫ذی‬ ‫نفعان‬‫نمایش‬‫داده‬‫خواهد‬‫شد‬. ‫شامل‬‫سه‬‫فعالیت‬‫است‬: 1-Team Demo 2-Product Owner Demo 3-Demo Stakeholders 75 / 81
  76. ‫فاز‬Sprint Review(‫ادامه‬) •Team Demo ‫یک‬‫نسخه‬‫از‬‫کار‬‫انجام‬‫شده‬‫به‬team product owner‫تحویل‬ ‫داده‬‫شود‬‫می‬. •Product owner demo ‫کارهای‬‫انجام‬‫شده‬‫توسط‬‫هر‬،‫تیم‬‫از‬‫طریق‬team product owner،‫به‬‫ذی‬‫نفعان‬‫نمایش‬‫داده‬‫شود‬‫می‬. •Demo Stakeholders ‫یک‬‫جلسه‬‫با‬‫حضور‬‫تمام‬product owner،‫ها‬‫نمایندگان‬‫ها‬‫تیم‬‫و‬ ‫ذی‬‫نفعان‬. ‫یک‬‫نسخه‬‫کامل‬‫از‬‫کار‬‫انجام‬‫شده‬‫در‬‫این‬sprint‫به‬‫ذی‬‫نفعان‬ ‫تحویل‬‫داده‬‫شود‬‫می‬. 76 / 81
  77. ‫فاز‬Sprint Retrospective 77 / 81
  78. ‫فاز‬Sprint Retrospective ‫هدف‬:‫آنالیز‬sprint‫قبلی‬‫و‬‫مقایسه‬‫آن‬‫با‬sprint‫فعلی‬‫است‬‫تا‬ ‫کارهای‬‫انجام‬‫شده‬‫را‬‫بررسی‬‫کند‬‫و‬‫معایب‬‫و‬‫مشکالت‬‫کار‬‫را‬‫پ‬‫یدا‬ ‫کند‬‫تا‬‫از‬‫بروز‬‫این‬‫اتفاقات‬‫در‬sprint‫های‬‫بعدی‬‫جلوگیری‬‫شود‬. ‫شامل‬‫دو‬‫فعالیت‬: Team Retrospective Retrospective of Retrospectives(‫اختیاری‬) 78 / 81
  79. ‫فعالیت‬Team Retrospective ‫در‬‫این‬،‫فعالیت‬ِ‫د‬‫خو‬‫تیم‬‫مشخص‬‫کند‬‫می‬‫که‬: •‫چه‬‫هایی‬‫فعالیت‬‫به‬‫خوبی‬‫انجام‬‫اند‬‫شده‬. •‫چه‬‫مشکالتی‬‫بر‬‫سر‬‫راه‬‫ها‬‫آن‬‫قرار‬‫گرفت‬. ‫سپس‬‫برای‬‫حل‬‫این‬‫مشکالت‬‫راه‬‫حل‬‫ارائه‬‫کنند‬‫می‬. 79 / 81
  80. ‫فعالیت‬Retrospective of Retrospectives ‫در‬‫صورت‬‫وجود‬‫مشکالت‬‫وابستگی‬‫بین‬،‫ها‬‫تیم‬‫یک‬‫جلسه‬‫ب‬‫ین‬ ‫ها‬‫آن‬‫برگزار‬‫شود‬‫می‬‫تا‬‫این‬‫مشکالت‬‫را‬‫بررسی‬‫و‬‫حل‬‫کنند‬. ‫برگزاری‬‫این‬‫جلسه‬‫اختیاری‬‫است‬‫و‬‫به‬‫ها‬‫تیم‬‫بستگی‬‫دارد‬. 80 / 81
  81. ‫گیری‬ ‫نتیجه‬ ‫و‬ ‫خالصه‬ •scRumUP‫ترکیبی‬‫از‬Scrum‫و‬RUP‫است‬. •scRumUP‫برای‬‫های‬‫محیط‬‫شده‬‫توزیع‬‫مناسب‬‫است‬. •‫بمنظور‬‫مدیریت‬‫محیط‬،‫شده‬‫توزیع‬‫الزم‬‫بود‬‫تا‬‫خواص‬agile‫با‬ ‫قدرت‬RUP‫تلفیق‬‫شوند‬. •‫دو‬‫مفهوم‬‫جدید‬TDD‫و‬CI‫به‬‫متودولوژی‬‫اضافه‬‫شدند‬. TDD‫باعث‬‫بهبود‬‫طراحی‬‫و‬‫کفیت‬‫کد‬‫شد‬. CI‫خطاهای‬‫حاصل‬‫از‬integration‫در‬‫محیط‬‫توزیع‬‫شده‬‫را‬‫رفع‬ ‫کرد‬‫می‬. •‫در‬‫آینده‬‫توان‬‫می‬‫این‬‫متودولوژی‬‫را‬‫در‬‫های‬‫کمپانی‬‫بیشت‬‫ری‬‫به‬ ‫اجرا‬‫درآورد‬‫و‬‫از‬‫ها‬‫آن‬‫برای‬‫بهبود‬‫متودولوژی‬feedback ‫گرفت‬. 81 / 81
  82. ‫بر‬ ‫مبتنی‬ ‫متودولوژی‬Scrum‫افزار‬ ‫نرم‬ ‫شده‬ ‫توزیع‬ ‫توسعه‬ ‫برای‬ ‫پور‬‫صدیق‬ ‫نوید‬ ‫نورحسینی‬ ‫دکتر‬–‫افزار‬ ‫نرم‬ ‫تولید‬ ‫متودولوژی‬–‫بهار‬95
Anúncio