Download - Introduction to the Agile Methods
مروری بر متدهای چابک در تولید نرم افزار
(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