introduction to the agile methods

53
ار ز ف رما ن د ی ل و ت در ک ب ا دهای چ ی م ر نوری ر م( Agile Methods ) ار ز ف رما ن ی م ;pma& کاد ا ان یس ب ا ت1394

Upload: softwareacademy

Post on 13-Apr-2017

113 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Introduction to the Agile Methods

مروری بر متدهای چابک در تولید نرم افزار

(Agile Methods)آکادمی نرم افزار

1394تابستان

Page 2: Introduction to the Agile Methods

2

نتایج یک بررسی

Detailed results online at www.ambysoft.com/surveys/

Page 3: Introduction to the Agile Methods

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.

Page 4: Introduction to the Agile Methods

4

Agile Pyramid

Page 5: Introduction to the Agile Methods

5

ت( چابکیس

بیان نامه )مانیف

Page 6: Introduction to the Agile Methods

6THE AGILE MANIFESTO 2001www.agilemanifesto.org

بیان نامه ی توسعه ی نرم افزار با رویکرد چابک

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

ما ارج می گذاریم: را باالتر از فرایندها و ابزارهاافراد و تعامالت

 را باالتر از مستندات جامعنرم افزار کارکننده را باالتر از قرارداد کارمشارکت مشتری در انجام کار

 را باالتر از پیروی یک طرح پاسخگویی به تغییرات

با وجود اینکه موارد سمت چپ نیز ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم.

Page 7: Introduction to the Agile Methods

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

Page 8: Introduction to the Agile Methods

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

... بیان نامه ی )مانیفست( چابکی - اصول

Page 9: Introduction to the Agile Methods

9

معرفی برخی از متدهای چابک

Page 10: Introduction to the Agile Methods

10

Agile

CrystalXPScrum

DSDMFDD

Kanban RUPand few more…

TDD

RAD

BDDLean

ASD

متدهای چابک

Page 11: Introduction to the Agile Methods

11

طیف چابکی

Strict WaterfallPure Agile

Iterative

Incremental

Evolutionary

بخش عمده ی متدهای تولید

Page 12: Introduction to the Agile Methods

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

Page 13: Introduction to the Agile Methods

13

متدهای چابکفرایندمقایسه

• eXtreme Programming (XP)1. Exploration 2. Planning 3. Iterations to first release4. Production5. Maintenance

Page 14: Introduction to the Agile Methods

14

متدهای چابکفرایندمقایسه

• Scrum 1. Pre-game2. Development3. ReleaseCrystal Clear

No defined Process

Page 15: Introduction to the Agile Methods

15

متدهای چابکفرایندمقایسه

• Feature Driven Development1. Develop an Overall Model2. Build a Features List3. Plan by Feature 4. Design by Feature5. Build by Feature

Page 16: Introduction to the Agile Methods

16

متدهای چابکفرایندمقایسه

• [Rational] Unified Process1. Inception 2. Elaboration 3. Construction4. Transition• Adaptive Software Development1. Speculate 2. Collaborate3. Learn

Page 17: Introduction to the Agile Methods

17

متدهای چابکفرایندمقایسه

• Dynamic System Development Method1. Feasibility 2. Business study 3. Functional Model Iteration4. Design and build iteration5. Implementation

Page 18: Introduction to the Agile Methods

18

در متدهای چابکنقش ها و مسئولیت هامقایسه

• eXtreme Programming (XP)1. Coach 2. Programmer 3. Tester 4. Customer 5. Consultant• Scrum1. Product Owner 2. Scrum Team3. Scrum Master

Page 19: Introduction to the Agile Methods

19

در متدهای چابکنقش ها و مسئولیت هامقایسه

• Crystal Clear 1. Sponsor 2. Designer-Programmers3. Coordinator 4. Business Expert5. Ambassador User6. Lead Designer 7. Tester 8. Writer

Page 20: Introduction to the Agile Methods

20

در متدهای چابکنقش ها و مسئولیت هامقایسه

• Feature Driven Development1. Project manager2. Chief architect 3. Domain experts 4. Development Manager5. Chief Programmers6. Class owners 7. Environment Manager8. Tester

Page 21: Introduction to the Agile Methods

21

در متدهای چابکنقش ها و مسئولیت هامقایسه

• Rational Unified Process30 roles called workers

• Adaptive Software Development1. Project Manager 2. Developer representative3. Facilitator4. Customer 5. Scribe

Page 22: Introduction to the Agile Methods

22

در متدهای چابکنقش ها و مسئولیت هامقایسه

• Dynamic System Development Method1. Project Manager 2. Team Leader3. Developer 4. Tester 5. Scribe6. Advisor User7. Technical Coordinator8. Executive Sponsor9. Visionary10. Ambassador User

Page 23: Introduction to the Agile Methods

23

در متدهای چابکپراکتیس هامقایسه • eXtreme Programming (XP)1. Planning game2. Small/short releases3. System Metaphor4. Simple design5. Testing6. Frequent Refactoring7. Pair programming8. Collective ownership9. Continuous integration10. 40-hour week (sustainable pace)11. On-site customer12. Coding standards13. Open workspace14. Just rules

Page 24: Introduction to the Agile Methods

24

در متدهای چابکپراکتیس هامقایسه

• Scrum1. Self-directed and self-organizing team2. No external addition of work to an iteration, once chosen3. Daily standup meeting with special questions4. Usually 30-calendar day iterations5. Demo to external stakeholders at end of each iteration6. Each iteration, client-driven adaptive planning

Page 25: Introduction to the Agile Methods

25

در متدهای چابکپراکتیس هامقایسه

• Crystal Clear 1. Frequent delivery2. Close communication3. Reflective improvement4. Personal safety 5. Focus 6. Easy access to experts users7. Technical environment

Page 26: Introduction to the Agile Methods

26

در متدهای چابکپراکتیس هامقایسه

• Feature Driven Development1. Domain Object Modeling2. Developing by Feature3. Individual Class (Code) Ownership4. Feature Teams5. Inspections6. Regular Builds 7. Configuration Management 8. Reporting/Visibility of Results

Page 27: Introduction to the Agile Methods

27

در متدهای چابکپراکتیس هامقایسه

• [Rational] Unified Process1. Develop Software iteratively2. Manage requirements3. Use component based architectures4. Visually model software5. Continuously verify software quality6. Control changes to software

Page 28: Introduction to the Agile Methods

28

در متدهای چابکپراکتیس هامقایسه

• Dynamic System Development Method1. Active user involvement is imperative2. Teams must be empowered to make decisions3. The focus is on frequent delivery of products4. Fitness for business purpose5. An iterative and incremental approach6. All changes during development are reversible7. Requirements are base lined at a high level8. Testing is integrated throughout the lifecycle9. A collaborative and co-operative approach

Page 29: Introduction to the Agile Methods

29

در متدهای چابکپراکتیس هامقایسه

• Adaptive Software Development1. Iterative development2. Feature-based (component based) planning3. Customer focus group reviews

Page 30: Introduction to the Agile Methods

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

Page 31: Introduction to the Agile Methods

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

Page 32: Introduction to the Agile Methods

32

)پوشش چرخه ی حیات نرم افزار(مقایسه برخی متدهای چابک

پروژه مدیریت

تیم مدیریت

نیازمندی ها

معماری

پیاده سازی

تست

پشتیبانی)کسب وکار(استقرار

روزانه(day to day)

کاری چرخه ی(iteration)

ئه ی نسخه ی تحویلیارا(release)

پروژه(project)

XP

Scrum

Prince2

RUP

Page 33: Introduction to the Agile Methods

33

یک راهکار پیشنهادی

Page 34: Introduction to the Agile Methods

34

چابکی + دیسیپلین

حاکمیت بر پروژه ها

به کارگیری تجارب تولید ناب

انتقال راهکار به مشتری

شروع پروژه

پوشش مالحظات کل چرخه

پوشش مالحظات کالن سازمان

هدف گرا

تحویل تدریجی راهکار

یادگیری پیوسته

کاهش ]طول[ چرخه ی بازخورد

Page 35: Introduction to the Agile Methods

35

چرخه کار پیشنهادی - مرور کلیDisciplined Agile Delivery

Page 36: Introduction to the Agile Methods

36

چرخه کار پیشنهادی - اهداف فازها

Page 37: Introduction to the Agile Methods

37

( و نه فقط نرم افزارSolutionتمرکز بر ارائه ی راهکار )•راهکار = نرم افزار + مس[تندات فن[ی و س[ازمانی + ]س[خت افزار[ + ]فرایندهای سازمانی متحول شونده[ + •

]تحوالت در ساختار سازمانی[ + خدمات نگهداری به کارگیری رویکرد اسکرام در تیم های تولید•ارتقاء سطح بلوغ سازمان در تعامل با مشتری•

به خصوص تعریف نقش ها و کارکردهای مدیریت محصول و مدیریت سرویس/راهکار•آموزش پرسنل در خصوص متدهای چابک، ابزارها، زیرساخت ها، رویه های تست، پیکره بندی و •

تحویل نسخه( و ownership( همراه با تعریف دقیق مالکیت )Technology Stackمستندسازی فناوری های مورد استفاده )•

سطوح خدمات، فراهم آوری محیط های کامالً مجزا و مدیریت شده برای تولید، تست، و تحویل نسخه

تعریف و مستندسازی فرایندهای کسب وکار برای تمامی دامنه های کاری•با مالحظات متدهای چابک به خصوص در رابطه با سنجش پیشرفت PMOتطبیق چارچوب کاری •

پروژهآموزش مدیریت ارشد سازمانی )شرکت، هولدینگ و همچنین بانک(•کمک گرفتن از افراد باتجربه برای ایفای نقش های کلیدی در تیم ها•

چرخه کار پیشنهادی - برخی مالحظات

Page 38: Introduction to the Agile Methods

38آکادمی نرم افزار

مروری بر متدهای چابک در تولید نرم افزار(Agile Methods)

Page 39: Introduction to the Agile Methods

39

THE TRADITIONAL APPROACH (PHASED DELIVERY OF KNOWN OUTPUTS)

THE AGILE APPROACH (ITERATIVE DELIVERY TO MEET CHANGING EXPECTATIONS)

Page 40: Introduction to the Agile Methods

40

اسالیدهای کمکی

Page 41: Introduction to the Agile Methods

41

مدیریت محصول

مدیریت سرویس/راهکار

( و BAتحل[یلگر کسب وکار )(UXDطراح تجربه ی کاربری )

تیم)های( تولید محصول نرم افزاری]داخل[ کاسپین[

تیم نگهداری و پشتیبانی سرویس

تیم استقرار محصول نرم افزاری

هلپ دسک

مشتری

Test CasesDetailed DesignReleases… تیم)های( تولید محصول نرم افزاری

]خارج از کاسپین[

Requirements Spec.UX DesignRelease Plan

PMO

SQA

R&D

Data Migration, Training, …

تیم)های( نگهداری و پشتیبانی سرویس]خارج از کاسپین[

DRAFT IDEA!

Page 42: Introduction to the Agile Methods

42

WATERFALL MODEL

Page 43: Introduction to the Agile Methods

43

RAPID APPLICATION DEVELOPMENT

Page 44: Introduction to the Agile Methods

44

DYNAMIC SYSTEMS DEVELOPMENT MODEL METHODOLOGY

Page 45: Introduction to the Agile Methods

45

SPIRAL MODEL

Page 46: Introduction to the Agile Methods

46

EXTREME PROGRAMMING METHODOLOGY

Page 47: Introduction to the Agile Methods

47

FEATURE DRIVEN DEVELOPMENT

Page 48: Introduction to the Agile Methods

48

JOINT APPLICATION DEVELOPMENT METHODOLOGY

Page 49: Introduction to the Agile Methods

49

LEAN DEVELOPMENT METHODOLOGY

Page 50: Introduction to the Agile Methods

50

RATIONAL UNIFIED PROCESS

METHODOLOGY

Page 51: Introduction to the Agile Methods

51

SCRUM DEVELOPMENT

METHODOLOGY

Page 52: Introduction to the Agile Methods

52

PROTOTYPE METHODOLOGY

Page 53: Introduction to the Agile Methods

53

AGILE SOFTWARE DEVELOPMENT METHODOLOGY