Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to the Agile Methods

735 views

Published on

معرفی متدهای چابک
A brief introduction to the Agile methods

Published in: Software
  • Be the first to comment

Introduction to the Agile Methods

  1. 1. ‫افزار‬‫نرم‬ ‫تولید‬ ‫در‬ ‫چابک‬ ‫متدهای‬ ‫بر‬ ‫ی‬‫ر‬‫و‬‫مر‬ (Agile Methods) ‫ار‬‫ز‬‫اف‬‫نرم‬‫آکادمی‬ ‫تابستان‬1394
  2. 2. ‫بررسی‬ ‫یک‬ ‫نتایج‬ Detailed results online at www.ambysoft.com/surveys/ 2
  3. 3. ‫صنعت‬ ‫در‬ ‫افزار‬‫نرم‬ ‫تولید‬ ‫متدهای‬ ‫انواع‬ • On an iterative software development project the team follows a process which is organized into periods that are often referred to as iterations or time boxes. On any given day of the project team members may be gathering requirements, doing design, writing code, testing, and so on. An example of an iterative process is RUP. • On an agile software development project the team follows an iterative process which is also lightweight, highly collaborative, self-organizing, and quality focused. An example of an agile process is OpenUP, Scrum, and XP. • Lean is a label applied to a customer value-focused mindset/philosophy. A lean process continuously strives to optimize value to the end customer, while minimizing waste which may be measured in terms of time, quality, and cost. Ultimately the Lean journey is the development of a learning organization. Examples of Lean methods/processes include Kanban and Scrumban. • On a traditional software development project the team follows a staged process where the requirements are first identified, then the architecture/design is defined, then the coding occurs, then testing, then deployment. Traditional processes are often referred to as "waterfall" or simply "serial" processes. • On an ad-hoc software development project the team does not follow a defined process. 3
  4. 4. Agile Pyramid 4
  5. 5. ‫نامه‬‫بیان‬(‫مانیفست‬) ‫چابکی‬ 5
  6. 6. THE AGILE MANIFESTO 2001www.agilemanifesto.org 6 ‫چابک‬ ‫یکرد‬‫و‬‫ر‬‫با‬‫افزار‬‫نرم‬ ‫ی‬‫توسعه‬‫ی‬‫نامه‬‫بیان‬ ‫ما‬‫با‬‫افزار‬‫نرم‬ ‫ی‬‫توسعه‬‫در‬ ‫دیگران‬ ‫به‬ ‫کمک‬ ‫و‬ ‫انجام‬،‫آن‬‫کشف‬ ‫حال‬ ‫در‬‫های‬‫راه‬‫برای‬ ‫بهتری‬ ‫هستیم‬ ‫افزار‬‫نرم‬ ‫ی‬‫توسعه‬.‫ارج‬ ‫ما‬ ،‫راه‬ ‫این‬ ‫در‬ ‫گذاریم‬‫می‬: ‫افراد‬‫تعامالت‬ ‫و‬‫باالتر‬ ‫را‬‫از‬‫فرایندها‬‫و‬ ‫ابزارها‬ ‫افزار‬‫نرم‬‫کارکننده‬‫باالتر‬ ‫را‬‫مستندات‬ ‫از‬ ‫جامع‬ ‫مشارکت‬‫کار‬ ‫انجام‬ ‫در‬ ‫مشتری‬‫باالتر‬ ‫را‬‫از‬ ‫قرارداد‬‫کار‬
  7. 7. ...‫ی‬‫نامه‬‫بیان‬(‫مانیفست‬)‫چابکی‬- ‫اصول‬ THE AGILE PRINCIPLES • (1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • (2) Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • (3) Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time-scale. • (4) Business people and developers must work together daily throughout the project. • (5) Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • (6) The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. THE AGILE MANIFESTO 2001 7
  8. 8. … THE AGILE PRINCIPLES • (7) Working software is the primary measure of progress. • (8) Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • (9) Continuous attention to technical excellence and good design enhances agility. • (10) Simplicity – the art of maximizing the amount of work not done – is essential. • (11) The best architectures, requirements, and designs emerge from self- organizing teams. • (12) At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. THE AGILE MANIFESTO 2001 ...‫ی‬‫نامه‬‫بیان‬(‫مانیفست‬)‫چابکی‬- ‫اصول‬ 8
  9. 9. ‫چابک‬ ‫متدهای‬ ‫از‬ ‫برخی‬ ‫معرفی‬ 9
  10. 10. Agile Crystal XPScrum DSDM FDD Kanban RUP and few more… TDD RAD BDD Lean ASD ‫چابک‬ ‫متدهای‬ 10
  11. 11. ‫چابکی‬ ‫طیف‬ Iterative Incremental Evolutionary ‫تولید‬ ‫متدهای‬ ‫ی‬‫عمده‬ ‫بخش‬ 11
  12. 12. ‫ی‬‫درباره‬ ‫نادرست‬ ‫های‬‫دیدگاه‬ ‫برخی‬ ‫چابک‬ ‫متدهای‬ • Agile is ad hoc, with no process control • Agile isn’t a lack of process. Agile provides a range of formal processes, and methods, to inform work processes, customer engagement and management models. • Agile teams do not plan their work or write documentation • Agile is not an excuse to avoid appropriate planning or writing documentation. It is an on-demand, or Just-In-Time, approach that encourages continuous planning and documentation, but only when needed for specific Customer Requirements. • Agile is faster and/or cheaper • An Agile project never ends • Agile only works for small organizations • Without upfront planning, Agile is wasteful 12
  13. 13. ‫مقایسه‬‫فرایند‬‫چابک‬ ‫متدهای‬ • eXtreme Programming (XP) 1. Exploration 2. Planning 3. Iterations to first release 4. Production 5. Maintenance 13
  14. 14. ‫مقایسه‬‫فرایند‬‫چابک‬ ‫متدهای‬ • Scrum 1. Pre-game 2. Development 3. Release Crystal Clear No defined Process 14
  15. 15. ‫مقایسه‬‫فرایند‬‫چابک‬ ‫متدهای‬ • Feature Driven Development 1. Develop an Overall Model 2. Build a Features List 3. Plan by Feature 4. Design by Feature 5. Build by Feature 15
  16. 16. ‫مقایسه‬‫فرایند‬‫چابک‬ ‫متدهای‬ • [Rational] Unified Process 1. Inception 2. Elaboration 3. Construction 4. Transition • Adaptive Software Development 1. Speculate 2. Collaborate 3. Learn 16
  17. 17. ‫مقایسه‬‫فرایند‬‫چابک‬ ‫متدهای‬ • Dynamic System Development Method 1. Feasibility 2. Business study 3. Functional Model Iteration 4. Design and build iteration 5. Implementation 17
  18. 18. ‫مقایسه‬‫ها‬‫مسئولیت‬ ‫و‬ ‫ها‬‫نقش‬‫متدهای‬ ‫در‬ ‫چابک‬ • eXtreme Programming (XP) 1. Coach 2. Programmer 3. Tester 4. Customer 5. Consultant • Scrum 1. Product Owner 2. Scrum Team 3. Scrum Master 18
  19. 19. ‫مقایسه‬‫ها‬‫مسئولیت‬ ‫و‬ ‫ها‬‫نقش‬‫متدهای‬ ‫در‬ ‫چابک‬ • Crystal Clear 1. Sponsor 2. Designer-Programmers 3. Coordinator 4. Business Expert 5. Ambassador User 6. Lead Designer 7. Tester 8. Writer 19
  20. 20. ‫مقایسه‬‫ها‬‫مسئولیت‬ ‫و‬ ‫ها‬‫نقش‬‫متدهای‬ ‫در‬ ‫چابک‬ • Feature Driven Development 1. Project manager 2. Chief architect 3. Domain experts 4. Development Manager 5. Chief Programmers 6. Class owners 7. Environment Manager 8. Tester 20
  21. 21. ‫مقایسه‬‫ها‬‫مسئولیت‬ ‫و‬ ‫ها‬‫نقش‬‫متدهای‬ ‫در‬ ‫چابک‬ • Rational Unified Process 30 roles called workers • Adaptive Software Development 1. Project Manager 2. Developer representative 3. Facilitator 4. Customer 5. Scribe 21
  22. 22. ‫مقایسه‬‫ها‬‫مسئولیت‬ ‫و‬ ‫ها‬‫نقش‬‫متدهای‬ ‫در‬ ‫چابک‬ • Dynamic System Development Method 1. Project Manager 2. Team Leader 3. Developer 4. Tester 5. Scribe 6. Advisor User 7. Technical Coordinator 8. Executive Sponsor 9. Visionary 10. Ambassador User 22
  23. 23. ‫مقایسه‬‫ها‬‫پراکتیس‬‫در‬‫چابک‬ ‫متدهای‬ • eXtreme Programming (XP) 1. Planning game 2. Small/short releases 3. System Metaphor 4. Simple design 5. Testing 6. Frequent Refactoring 7. Pair programming 8. Collective ownership 9. Continuous integration 10. 40-hour week (sustainable pace) 11. On-site customer 12. Coding standards 13. Open workspace 14. Just rules 23
  24. 24. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • Scrum 1. Self-directed and self-organizing team 2. No external addition of work to an iteration, once chosen 3. Daily standup meeting with special questions 4. Usually 30-calendar day iterations 5. Demo to external stakeholders at end of each iteration 6. Each iteration, client-driven adaptive planning 24
  25. 25. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • Crystal Clear 1. Frequent delivery 2. Close communication 3. Reflective improvement 4. Personal safety 5. Focus 6. Easy access to experts users 7. Technical environment 25
  26. 26. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • Feature Driven Development 1. Domain Object Modeling 2. Developing by Feature 3. Individual Class (Code) Ownership 4. Feature Teams 5. Inspections 6. Regular Builds 7. Configuration Management 8. Reporting/Visibility of Results 26
  27. 27. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • [Rational] Unified Process 1. Develop Software iteratively 2. Manage requirements 3. Use component based architectures 4. Visually model software 5. Continuously verify software quality 6. Control changes to software 27
  28. 28. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • Dynamic System Development Method 1. Active user involvement is imperative 2. Teams must be empowered to make decisions 3. The focus is on frequent delivery of products 4. Fitness for business purpose 5. An iterative and incremental approach 6. All changes during development are reversible 7. Requirements are base lined at a high level 8. Testing is integrated throughout the lifecycle 9. A collaborative and co-operative approach 28
  29. 29. ‫مقایسه‬‫ها‬‫پراکتیس‬‫چابک‬ ‫متدهای‬ ‫در‬ • Adaptive Software Development 1. Iterative development 2. Feature-based (component based) planning 3. Customer focus group reviews 29
  30. 30. ‫مقایسه‬‫ی‬‫محدوده‬‫متدهای‬‫چابک‬ • eXtreme Programming • Small and medium size team (between 3 and 20 members) • Scrum • Small teams (less than 10 members) • Crystal Clear • Any size team but not cover life critical projects • Adaptive Software Development • Not built-in limitations 30
  31. 31. ‫مقایسه‬‫ی‬‫محدوده‬‫متدهای‬‫چابک‬ • Feature Driven Development • effective on large projects with complex business logic • Suitable for the development of critical systems • Upgrading existing code, second version • Rational Unified Process • Not built-in limitations • Dynamic System Development Method • Has been applied in small and large projects • More easily applied to business systems than to engineering or scientific application 31
  32. 32. ‫چابک‬ ‫متدهای‬ ‫برخی‬ ‫مقایسه‬(‫افزار‬‫نرم‬ ‫حیات‬ ‫ی‬‫چرخه‬ ‫پوشش‬) ‫مدیریت‬‫پروژه‬ ‫مدیریت‬‫تیم‬ ‫ها‬‫نیازمندی‬ ‫معماری‬ ‫سازی‬‫پیاده‬ ‫تست‬ ‫پشتیبانی‬ ‫استقرار‬(‫وکار‬‫کسب‬) ‫روزانه‬ (day to day) ‫ی‬‫چرخه‬‫کاری‬ (iteration) ‫ارا‬‫ئ‬‫ی‬‫ه‬‫ی‬‫نسخه‬‫تحویلی‬ (release) ‫پروژه‬ (project) XP Scrum Prince2 RUP 32
  33. 33. ‫پیشنهادی‬ ‫راهکار‬ ‫یک‬ 33
  34. 34. ‫چابکی‬+‫دیسیپلین‬ ‫ها‬‫پروژه‬ ‫بر‬ ‫حاکمیت‬ ‫ناب‬ ‫تولید‬ ‫تجارب‬ ‫کارگیری‬‫به‬ ‫مشتری‬ ‫به‬ ‫راهکار‬ ‫انتقال‬ ‫پروژه‬ ‫شروع‬ ‫چرخه‬ ‫کل‬ ‫مالحظات‬ ‫پوشش‬ ‫سازمان‬ ‫کالن‬ ‫مالحظات‬ ‫پوشش‬ ‫گرا‬‫هدف‬ ‫راهکار‬ ‫تدریجی‬ ‫تحویل‬ ‫پیوسته‬ ‫یادگیری‬ ‫کاهش‬[‫طول‬]‫بازخورد‬ ‫ی‬‫چرخه‬ 34
  35. 35. ‫پیشنهادی‬ ‫کار‬ ‫چرخه‬-‫کلی‬ ‫مرور‬ Disciplined Agile Delivery 35
  36. 36. ‫پیشنهادی‬ ‫کار‬ ‫چرخه‬-‫فازها‬ ‫اهداف‬ 36
  37. 37. •‫راهکار‬ ‫ی‬‫ارائه‬ ‫بر‬ ‫تمرکز‬(Solution)‫افزار‬‫نرم‬ ‫فقط‬ ‫نه‬ ‫و‬ •‫راهکار‬=‫افزار‬‫نرم‬+‫سازمانی‬ ‫و‬ ‫فنی‬ ‫مستندات‬+[‫افزار‬‫سخخت‬+ ] [‫شخخونده‬‫متحول‬ ‫سخخازمانی‬ ‫فراینخخدهای‬[ + ]‫سخخاختار‬ ‫در‬ ‫تحخخوالت‬ ‫سازمانی‬+ ]‫نگهداری‬ ‫خدمات‬ •‫تولید‬ ‫های‬‫تیم‬ ‫در‬ ‫اسکرام‬ ‫رویکرد‬ ‫کارگیری‬‫به‬ •‫مشتری‬ ‫با‬ ‫تعامل‬ ‫در‬ ‫سازمان‬ ‫بلوغ‬ ‫سطح‬ ‫ارتقاء‬ •‫مدیریت‬ ‫و‬ ‫محصول‬ ‫مدیریت‬ ‫کارکردهای‬ ‫و‬ ‫ها‬‫نقش‬ ‫تعریف‬ ‫خصوص‬ ‫به‬ ‫سرویس‬/‫راهکار‬ •،‫ابزارها‬ ،‫چابک‬ ‫متدهای‬ ‫خصوص‬ ‫در‬ ‫پرسنل‬ ‫آموزش‬ ‫نسخه‬ ‫تحویل‬ ‫و‬ ‫بندی‬‫پیکره‬ ،‫تست‬ ‫های‬‫رویه‬ ،‫ها‬‫زیرساخت‬ •‫استفاده‬ ‫مورد‬ ‫های‬‫فناوری‬ ‫مستندسازی‬(Technology Stack)‫همراه‬ ‫مالکیت‬ ‫دقیق‬ ‫تعریف‬ ‫با‬(ownership)،‫خدمات‬ ‫سطوح‬ ‫و‬ ‫برای‬ ‫شده‬‫مدیریت‬ ‫و‬ ‫مجزا‬ ً‫کامال‬ ‫های‬‫محیط‬ ‫آوری‬‫فراهم‬ ‫نسخه‬ ‫تحویل‬ ‫و‬ ،‫تست‬ ،‫تولید‬ •‫تمامی‬ ‫برای‬ ‫وکار‬‫کسب‬ ‫فرایندهای‬ ‫مستندسازی‬ ‫و‬ ‫تعریف‬ ‫پیشنهادی‬ ‫کار‬ ‫چرخه‬-‫مالحظات‬ ‫برخی‬ 37
  38. 38. ‫افزار‬‫نرم‬ ‫آکادمی‬ 38 ‫افزار‬‫نرم‬ ‫تولید‬ ‫در‬‫چابک‬ ‫متدهای‬‫بر‬ ‫ی‬‫ر‬‫و‬‫مر‬ (Agile Methods)
  39. 39. 39 THE TRADITIONAL APPROACH (PHASED DELIVERY OF KNOWN OUTPUTS) THE AGILE APPROACH (ITERATIVE DELIVERY TO MEET CHANGING EXPECTATIONS)
  40. 40. ‫کمکی‬ ‫اسالیدهای‬ 40
  41. 41. ‫محصول‬ ‫مدیریت‬ ‫سرویس‬ ‫مدیریت‬/‫راهکار‬ ‫وکار‬‫کسب‬ ‫تحلیلگر‬(BA)‫و‬ ‫طراح‬‫کاربری‬ ‫ی‬‫تجربه‬(UXD) ‫تیم‬(‫های‬)‫افزاری‬‫نرم‬ ‫محصول‬ ‫تولید‬ [‫کاسپین‬ ‫داخل‬] ‫سرویس‬ ‫پشتیبانی‬ ‫و‬ ‫نگهداری‬ ‫تیم‬ ‫افزاری‬‫نرم‬ ‫محصول‬ ‫استقرار‬ ‫تیم‬ ‫دسک‬‫هلپ‬ ‫مشتری‬ Test Cases Detailed Design Releases … ‫تیم‬(‫های‬)‫افزاری‬‫نرم‬ ‫محصول‬ ‫تولید‬ [‫کاسپین‬ ‫از‬ ‫خارج‬] Requirements Spec. UX Design Release Plan PMO SQA R&D Data Migration, Training, … ‫تیم‬(‫های‬)‫سرویس‬ ‫پشتیبانی‬ ‫و‬ ‫نگهداری‬ [‫کاسپین‬ ‫از‬ ‫خارج‬] 41 DRAFT IDEA!
  42. 42. WATERFALL MODEL 42
  43. 43. RAPID APPLICATION DEVELOPMENT 43
  44. 44. DYNAMIC SYSTEMS DEVELOPMENT MODEL METHODOLOGY 44
  45. 45. SPIRAL MODEL 45
  46. 46. EXTREME PROGRAMMING METHODOLOGY 46
  47. 47. FEATURE DRIVEN DEVELOPMENT 47
  48. 48. JOINT APPLICATION DEVELOPMENT METHODOLOGY 48
  49. 49. LEAN DEVELOPMENT METHODOLOGY 49
  50. 50. RATIONAL UNIFIED PROCESS METHODOLOGY 50
  51. 51. SCRUM DEVELOPMENT METHODOLOGY 51
  52. 52. PROTOTYPE METHODOLOGY 52
  53. 53. AGILE SOFTWARE DEVELOPMENT METHODOLOGY 53

×