agile development & xp

21
Agile Development Hoang Giang Bien

Upload: jino-hoang

Post on 12-Aug-2015

93 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Agile Development & XP

Agile Development

Hoang Giang Bien

Page 2: Agile Development & XP

About me

Hoang Giang Bien- Class: 1210A03- PHP Developer at V-Next Software Jsc.

Email: [email protected]: 0988 578 812Github: http://github.com/bienhoang

Page 3: Agile Development & XP

Content1. Agile Development● What is Agile?● Agile history- Agile manifesto- Agile principles

2. Agile Umbrella● Agile Methodology● Agile Practices

3. Agile vs Waterfall4. eXtreme Programing (XP)● Pair Programing

Page 4: Agile Development & XP

Agile DevelopmentWhat is Agile?

Page 5: Agile Development & XP

Agile DevelopmentAgile history- Agile Alliance- On February 11-13, 2001- 17 people

Page 6: Agile Development & XP

Agile DevelopmentAgile Manifesto

(Lược dịch)

Cá nhân và sự tương tác hơn là quy trình và công cụ

Phần mềm chạy tốt hơn là tài liệu đầy đủ

Cộng tác với khách hàng hơn là đàm phán hợp đồng

Phản hồi với các thay đổi hơn là bám sát kế hoạch

Mặc dù các điều bên phải vẫn còn giá trị, nhưng chúng tôi đánh giá cao hơn các mục ở bên trái

Page 7: Agile Development & XP

Agile DevelopmentAgile Principles

(Lược dịch)1. Ưu tiên cao nhất của chúng tôi là thỏa mãn khách hàng thông qua việc chuyển giao sớm và liên tục các phần mềm có

giá trị.2. Chào đón việc thay đổi yêu cầu, thậm chí rất muộn trong quá trình phát triển. Các quy trình linh hoạt tận dụng sự thay

đổi cho các lợi thế cạnh tranh của khách hàng.3. Thường xuyên chuyển giao phần mềm chạy tốt tới khách hàng, từ vài tuần đến vài tháng, ưu tiên cho các khoảng thời

gian ngắn hơn.4. Nhà kinh doanh và nhà phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án.5. Xây dựng các dự án xung quanh những cá nhân có động lực. Cung cấp cho họ môi trường và sự hỗ trợ cần thiết, và tin

tưởng họ để hoàn thành công việc.6. Phương pháp hiệu quả nhất để truyền đạt thông tin tới nhóm phát triển và trong nội bộ nhóm phát triển là hội thoại trực

tiếp.7. Phần mềm chạy tốt là thước đo chính của tiến độ.8. Các quy trình linh hoạt thúc đẩy phát triển bền vững. Các nhà tài trợ, nhà phát triển, và người dùng có thể duy trì một

nhịp độ liên tục không giới hạn.9. Liên tục quan tâm đến các kĩ thuật và thiết kế tốt để gia tăng sự linh hoạt.

10. Sự đơn giản – nghệ thuật tối đa hóa lượng công việc chưa xong – là căn bản.11. Các kiến trúc tốt nhất, yêu cầu tốt nhất, và thiết kế tốt nhất sẽ được làm ra bởi các nhóm tự tổ chức.12. Nhóm phát triển sẽ thường xuyên suy nghĩ về việc làm sao để trở nên hiệu quả hơn, sau đó họ sẽ điều chỉnh và thay đổi

các hành vi của mình cho phù hợp.

Page 8: Agile Development & XP
Page 9: Agile Development & XP

Agile vs Waterfall

Page 10: Agile Development & XP

eXtreme Programing (XP)

Page 11: Agile Development & XP

eXtreme Programing (XP)

Rủi ro thường gặp trong phát triển phần mềm:- Trượt khỏi kế hoạch (Schedule Slips)

- Hủy dự án (Project Canceled)

- Không tương thích hệ thống (System goes sour)

- Tỉ lệ lỗi (Defect rate)

- Hiểu sai nghiệp vụ (Business misunderstood)

- Thay đổi nghiệp vụ (Business change)

- Biến động nhân sự (Staff turnover)

Page 12: Agile Development & XP

eXtreme Programing (XP)Cách tiếp cận của XP

- Trượt khỏi kế hoạch

=> Release ngắn, kết hợp các Iteration để khách hàng feedback.

=> Các Task 1 - 3 ngày tạo nên các Iteration.

=> Ưu tiên (Priority) các Task, chia nhỏ giai đoạn bàn giao

- Hủy dự án (Project Canceled)

=> Tư vấn các Release nhỏ

=> Chuyển hướng tiếp cận linh hoạt

Page 13: Agile Development & XP

eXtreme Programing (XP)Cách tiếp cận của XP

- Không tương thích hệ thống (System goes sour)

=> Cung cấp các Practice

=> Chạy test liên tục, lặp lại test khi có thay đổi

- Tỉ lệ lỗi (Defect rate)

=> Test Function by Function (Unit testing)

=> TDD (Test - Driven Development)

Page 14: Agile Development & XP

eXtreme Programing (XP)Cách tiếp cận của XP

- Hiểu sai nghiệp vụ (Business misunderstood)

=> Cộng tác với khách hàng

=> Cố gắng đưa khách hàng làm 1 phần trong Team

- Thay đổi nghiệp vụ (Business change)

=> Không ngại thay đổi vì nó mang tư tưởng Agile.

=> Ăn ngủ với thay đổi, và luôn chào đón sự thay đổi.

Page 15: Agile Development & XP

eXtreme Programing (XP)Cách tiếp cận của XP

- Biến động nhân sự (Staff turnover)

=> Pair Programing

=> Cross functional

Page 16: Agile Development & XP

eXtreme Programing (XP)Các giá trị của XP

● Giao tiếp (Communication)

● Tính đơn giản (Simplicity)

● Phản hồi (Feedback)

● Tôn trọng (Respect)

● Can đảm (Courage)

Page 17: Agile Development & XP

eXtreme Programing (XP)Các nguyên tắc của XP

● Phản hồi nhanh

● Giả định Đơn giản

● Thay đổi tiệm tiến

● Sống chung với Thay đổi

● Công việc chất lượng cao

Page 18: Agile Development & XP

eXtreme Programing (XP)XP Practices

● Trò chơi Lập kế hoạch

● Các bản phát hành nhỏ

● System Metaphor (Ẩn dụ Hệ thống)

● Thiết kế Đơn giản

● Kiểm thử (Testing)

● Tái cấu trúc (Refactoring)

● Lập trình theo cặp (Pair programming)

● Sở hữu tập thể (Collective ownership)

● Tích hợp liên tục (Continuous integration)

● Làm việc 40 giờ một tuần

● Khách hàng tại chỗ (On-site customer)

● Các chuẩn mực lập trình

Page 19: Agile Development & XP
Page 20: Agile Development & XP

Pair Programing

Page 21: Agile Development & XP

Thank you !