introduction to the agile methods

Post on 13-Apr-2017

114 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

1394تابستان

2

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

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

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.

4

Agile Pyramid

5

ت( چابکیس

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

6THE AGILE MANIFESTO 2001www.agilemanifesto.org

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

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

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

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

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

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

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

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

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

9

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

10

Agile

CrystalXPScrum

DSDMFDD

Kanban RUPand few more…

TDD

RAD

BDDLean

ASD

متدهای چابک

11

طیف چابکی

Strict WaterfallPure Agile

Iterative

Incremental

Evolutionary

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

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

13

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

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

14

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

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

No defined Process

15

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

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

16

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

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

17

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

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

18

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

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

19

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

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

20

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

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

21

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

• Rational Unified Process30 roles called workers

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

22

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

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

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

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

25

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

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

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

27

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

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

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

29

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

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

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

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

32

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

پروژه مدیریت

تیم مدیریت

نیازمندی ها

معماری

پیاده سازی

تست

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

روزانه(day to day)

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

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

پروژه(project)

XP

Scrum

Prince2

RUP

33

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

34

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

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

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

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

شروع پروژه

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

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

هدف گرا

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

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

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

35

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

36

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

37

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

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

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

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

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

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

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

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

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

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

39

THE TRADITIONAL APPROACH (PHASED DELIVERY OF KNOWN OUTPUTS)

THE AGILE APPROACH (ITERATIVE DELIVERY TO MEET CHANGING EXPECTATIONS)

40

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

41

مدیریت محصول

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

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

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

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

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

هلپ دسک

مشتری

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

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

Requirements Spec.UX DesignRelease Plan

PMO

SQA

R&D

Data Migration, Training, …

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

DRAFT IDEA!

42

WATERFALL MODEL

43

RAPID APPLICATION DEVELOPMENT

44

DYNAMIC SYSTEMS DEVELOPMENT MODEL METHODOLOGY

45

SPIRAL MODEL

46

EXTREME PROGRAMMING METHODOLOGY

47

FEATURE DRIVEN DEVELOPMENT

48

JOINT APPLICATION DEVELOPMENT METHODOLOGY

49

LEAN DEVELOPMENT METHODOLOGY

50

RATIONAL UNIFIED PROCESS

METHODOLOGY

51

SCRUM DEVELOPMENT

METHODOLOGY

52

PROTOTYPE METHODOLOGY

53

AGILE SOFTWARE DEVELOPMENT METHODOLOGY

top related