Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
1,44 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TIỂU LUẬN MÔN HỌC: QUẢN LÝ DỰ ÁN PHẦN MỀM CHUYÊN ĐỀ: TÌM HIỂU VỀ Managing Agile Project Giáo viên hướng dẫn: TS. Trương Anh Hoàng TS. Phạm Ngọc Hùng Nhóm học viên: 1. Trần Thị Hiền 2. Nguyễn Anh Khiêm* 3. Phan Thị Luân 4. Phạm Đức Mạnh 5. Nguyễn Thị Yến Hà Nội 04/2013 LỜI CẢM ƠN Lời đầu tiên chúng em xin cảm ơn thầy TS. Trương Anh Hoàng và TS. Phạm Ngọc Hùng, thầy đã nhiệt tình giảng dạy và hướng dẫn chúng em làm bài tập lớn môn Quản lý dự án phần mềm trong học kỳ này. Chúng tôi cũng gửi lời cảm ơn tới các bạn học viên lớp Quản lý dự án đã có những ý kiến đóng góp giá trị cùng những lời động viên khích lệ khi thực hiện tiểu luận này. Hà Nội, ngày 31 tháng 03 năm 2013 Học viên nhóm 2 Trần Thị Hiền Nguyễn Anh Khiêm* Phan Thị Luân Phạm Đức Mạnh Nguyễn Thị Yến TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN BẢNG PHÂN CÔNG CÔNG VIỆC STT Họ và tên Nội dung công việc 11 Trần Thị Hiền Tìm hiểu các kiến thức chung về Agile Viết báo cáo 22 Nguyễn Anh Khiêm Tổng hợp các kiến thức chung về Agile Viết báo cáo và thiết kế Slide 33 Phan Thị Luân Tìm hiểu các kiến thức chung về Agile Viết báo cáo 44 Phạm Đức Mạnh Tìm hiểu về sự phát triển của Agile Thiết kế Slide 55 Nguyễn Thị Yến Tổng hợp các kiến thức chung về Agile Viết và chỉnh sửa báo cáo 3 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN MỤC LỤC 2.3 Quản lý dự án theo phương pháp Agile 13 1. Sự thỏa mãn của khách hàng 24 2. Thích nghi với việc thay đổi yêu cầu 25 3. Bàn giao sản phẩm thường xuyên 25 4. Làm việc cùng nhau thường xuyên 25 5. Xây dựng dự án cùng các cá nhân cầu tiến 26 6. Giao tiếp mặt đối mặt 26 7. Đo tiến độ dự án bằng khả năng thực thi của phần mềm 26 8. Giữ tốc độ phát triển ứng dụng một cách ổn định 27 9. Chú ý đến sự phát triển của công nghệ 27 10. Đạt đến sự đơn giản là điều thiết yếu phải làm 27 11. Tự tổ chức 27 12. Phản ánh và Điều chỉnh 28 TÀI LIỆU THAM KHẢO 30 4 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN DANH MỤC CÁC HÌNH VẼ Hình 1: Mô hình thác nước 7 Hình 2: Mô hình thác nước mở rộng 8 Hình 3: Mô hình chữ V 8 Hình 4: Mô hình Prototype 8 Hình 5: Mô hình xoắn ốc 9 Hình 6: Mô hình lãnh đạo và quản lý 17 5 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Giải thích Agile Agile software development APM Agile Project Management ID Interative Development BDD Behavior Driven Development TDD Test Driven Development DDD Domain Driven Design 5 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN XÁC ĐỊNH VAI TRÒ & TRÁCH NHIỆM CỦA QUẢN LÝ AGILE Với phương pháp phát triển phần mềm truyền thống là “waterfall” hay “RUP”, thời gian hoàn thiện hay nâng cấp một phiên bản phần mềm thường kéo dài gần một năm trời như Windows hay nhiều phần mềm khác, thường một năm thậm chí hơn, các công ty mới cho ra một bản nâng cấp. Với phần mềm được phát triển theo Agile tiêu biểu như Chrome, một năm, trình duyệt này cho ra vài ba bản nâng cấp. Thậm chí chỉ mất một tuần để cho ra sản phẩm đầu tiên rồi một tuần sau lại ra một bản cập nhật, cứ liên tục như vậy. Với xu hướng mobile hóa như hiện nay, phát triển phần mềm ứng dụng theo Agile là rất phù hợp để nhanh có sản phẩm đưa ra thị trường. Quy trình quản lý dự án phần mềm: 7 bước. B1: Định nghĩa bài toán. B2: Phân tích B3: Thiết kế B4: Lập trình. B5: Tích hợp hệ thống. B6: Nghiệm thu. B7: Vận hành. 1. Giới thiệu phát triển lặp: Là một kiểu phát triển phần mềm mà chu trình sống của phần mềm được chia thành các vòng lặp liên tiếp nhau. Ví dụ: Giả sử sau khi nghiên cứu yêu cầu từ phía khách hàng, ta thống kê được phần mềm có tổng cộng 50 chức năng. Giả sử ta chọn 2 trong số 50 chức năng trên, ước lượng thời gian thực hiện 2 chức năng đó trong vòng khoảng 2 tuần chẳng hạn, để thực hiện hoàn chỉnh. Ta xây dựng phần mềm hoàn chỉnh phần mềm với chỉ 2 chức năng đó, rồi chuyển cho khách hàng sử dụng và đánh giá. Sau đó, khách hàng sẽ đưa ra đánh giá về 2 chức năng mà ta đã làm. Giả sử trong 2 chức năng đó, có 1 chức năng chưa hoàn chỉnh hoặc chưa 6 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN đáp ứng đúng yêu cầu khách hàng, ta giữ lại chức năng đó cùng với những đánh giá của khách hàng. Tiếp theo trong 48 chức năng còn lại, ta lại chọn ra 3 chức năng nữa, cộng với chức năng cũ là thành 4 chức năng và ước lượng thời gian hoàn thành trong vòng 2 tuần. Ta lại xây dựng phần mềm hoàn thiện với chỉ 4 chức năng đó. Sau khi xây dựng xong, ta lại đưa cho khách hàng chạy thử và xem phản hồi, đánh giá từ khách hàng. Tiếp tục ta lại chọn ra thêm 10 chức năng nữa để xây dựng, và ước lượng thời gian hoàn thành trong vòng cũng 2 tuần. Càng ngày ta có thể xây dựng phần mềm càng nhanh vì ta đã gần như nắm bắt được hệ thống, càng ngày càng có kinh nghiệm xây dựng các chức năng cho hệ thống đó. Theo đó, ta sẽ chọn thời gian cho mỗi vòng lặp là cứ 2 tuần. Hệ thống của chúng ta từ nhỏ, sẽ to dần to dần cho đến khi hoàn tất tất cả chức năng mà khách hàng yêu cầu. Mục tiêu của mỗi vòng lặp là một hệ thống được xây dựng, kiểm thử cẩn thận, chạy ổn định và có thể đưa vào sử dụng. Mỗi vòng lặp đều gồm các bước phân tích yêu cầu, thiết kế, phát triển, tích hợp (có thể ban đầu chúng ta chưa cần thực hiện bước này), kiểm thử và vận hành, chuyển giao cho khách hàng sử dụng và nhận phản hồi. Kết quả của mỗi vòng lặp là một release hoàn chỉnh, và release sau phải bao gồm cả release trước đó chứ không phải là release độc lập. Điểm khác biệt so với những mô hình cổ điển (water fall, V model…) Hình 1 : Mô hình thác nước 7 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN Hình 2 : Mô hình thác nước mở rộng Hình 3 : Mô hình chữ V Hình 4: Mô hình Prototype 8 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN Hình 5: Mô hình xoắn ốc Chẳng hạn ta có phần mềm phát triển trong vòng 2 năm: - Nếu phát triển theo water fall: ta có thể thực hiện việc phân tích yêu cầu trong vòng 3 tháng, thiết kế hệ thống trong vòng 3 tháng, phát triển trong vòng 1 năm và bảo trì trong vòng 6 tháng còn lại. - Nếu phát triển theo phát triển lặp: 3 tuần đầu thực hiện phân tích yêu cầu của 2 chức năng, sau đó thiết kế hệ thống và phát triển hoàn thiện 2 chức năng đó, kiểm thử và chuyển cho khách hàng sử dụng và đánh giá. Trong 3 tuần tiếp theo, ta thực hiện phân tích yêu cầu của 5 chức năng khác, sau đó thiết kế hệ thống và phát triển 5 chức năng này, kiểm thử và lại chuyển giao cho khách hàng sử dụng và đánh giá. Quá trình này cứ lặp đi lặp lại, công việc trong mỗi vòng lặp tương tự nhau. 3 tuần đầu chúng ta vẫn có phần phân tích yêu cầu, 3 tuần kế tiếp vẫn có phần phân tích yêu cầu,… cho đến 3 tuần cuối cùng của 2 năm ta vẫn có phần phân tích yêu cầu. Đối với water fall, việc phân tích yêu cầu chỉ xảy ra ở 3 tháng đầu tiên, qua thời gian này là đã chuyển sang bước khác. Khái niệm “time-boxed” trong phát triển lặp: có nghĩa là chúng ta cố định thời gian kết thúc 1 vòng lặp. Khái niệm trên nghe có vẻ đơn giản nhưng chúng ta cần lưu ý như sau. Quay trở lại “tam giác chất lượng”, ta có 4 thành phần ảnh hưởng đến dự án, đó là yêu cầu của khách hàng, thứ 2 là chất lượng của dự án, thứ 3 là nguồn lực mà chúng ta có, và cuối cùng là thời gian. Vậy “time-boxed” ở đây có ý nghĩa gì? Ở đây, nó có nghĩa rằng chúng ta cố định phần thời gian thực 9 [...]... theo Agile thì đội đó đặt mục tiêu hoàn thành công việc lên hàng đầu Nếu cả đội làm việc trong một môi trường thân thiện, họ sẽ ra cách làm việc tốt nhất và lúc đó công việc của cả đội sẽ đạt được hiệu quả cao nhất KẾT LUẬN Trong quá trình học môn Quản lý dự án phần mềm và tìm hiểu về việc phát triển phần mềm theo Agile chúng em đã nắm được các kiến thức về khái niệm về Agile, cách quản lý dự án theo Agile. .. một phần mềm, nhanh có sản phẩm đưa ra thị trường, tối ưu hóa đầu tư Khái niệm phát triển phần mềm linh hoạt (agile software development - gọi tắt là agile) là một nhóm các phương pháp và phương pháp luận phát triển phần mềm dựa trên 12 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN các nguyên tắc, theo đó nhu cầu và giải pháp thông qua sự hợp tác giữa các nhóm với nhau Theo quan niệm truyền thống: một dự án phần mềm. .. như kiến trúc kỹ thuật, quá trình phát triển quản lý, quản lý nhân sự, quản lý dự án, quản lý thay đổi, đánh giá hiệu quả, theo dõi dự án, kế toán và ngân sách Mặc dù sự mâu thuẫn này nó đã được kinh nghiệm của tôi mà quản lý dự án được định nghĩa là những cá nhân chịu trách nhiệm xây dựng và nhóm 13 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN lãnh đạo chịu trách nhiệm cho thành công hay thất bại của họ- nó đóng... án theo Agile và vai trò của người quản lý trong Agile Việc phát triển dự án theo phương pháp Agile nó phù hợp với các dự án có mức độ rủi ro thấp, các thành viên nhóm có kinh nghiệm, dự án có yêu cầu thay đổi thường xuyên, kích thước nhóm nhỏ và các thành viên làm việc cùng một địa điểm 28 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN Phương pháp này là rất tốt cho các dự án nhỏ có từ hai tới tám người cùng làm... người quản lý Agile – người chịu trách nhiệm cho việc cung cấp giá trị kinh doanh Các dự án sử dụng phương pháp phát triển phần mềm Agile Nó cũng có vai trò yêu cầu và các kỹ năng và giá trị cơ bản 2.4 Vai trò của người quản lý Agile Vai trò của người quản lý Agile là để lãnh đạo việc cung cấp các giá trị kinh doanh dự án Agile bằng cách thiết lập các nguyên tắc và thực hành APM (Agile Project Management)... tiến hành phản ánh về dự án 15 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN • Thực hiện kịch bản lập kế hoạch Trách nhiệm của người quản lý Agile được thể hiện trong bảng 2-4: được chia làm hai loại trách nhiệm lãnh đạo và trách nhiệm quản lý Tại sao lại có sự khác biệt này? Mặc dù lãnh đạo và quản lý đôi khi được sử dụng để thay thế cho nhau, họ tham khảo khác nhau như bên mô tả Người lãnh đạo hay quản lý họ mất gì?... truyền thống 22 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN 3 Các đặc điểm của phương pháp Agile 1 Được phát triển dựa trên quy trình phát triển lặp (Interative Development) – Mỗi dự án được chia thành nhiều mảng nhỏ, dễ sử dụng và sửa đổi khi yêu cầu của khách hàng thay đổi Dự án sẽ thực hiện từng phần nhỏ này như từng dự án nhỏ cho đến khi tất cả các yêu cầu của khách hàng được đáp ứng và dự án được bàn giao 2 Cứ... quản lý Agile chịu trách nhiệm Người quản lý Agile, huấn luận viên kỹ thuật, khách hàng, đội • Thông tin mở • • Light Touch Người quản lý Agile chịu trách nhiệm chính • Người quản lý Agile chịu trách nhiệm chính Việc nghiên cứu học tập và thiết lập • Thiết đạo lập lãnh • Người quản lý Agile chịu trách nhiệm chính Như đã thể hiện trong kiểu chữ in đậm, người quản lý Agile có trách nhiệm chính về các... cũng không nên phán xét lập trình viên khi công việc của họ chưa hoàn thành, bởi không ai muốn lập trình ra phần mềm không xài được cả, và khi họ chịu trách nhiệm về chính mỗi chức năng họ viết, họ sẽ ít khi làm 26 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN cho phần mềm tệ đi Mặt khác, khách hành chỉ hạnh phúc khi mà công việc được hoàn thành theo đúng yêu cầu, chứ họ không hề quan tâm cách mà phần mềm được viết... người lãnh đạo Agile là người có trách nhiệm được xác định và giao tiếp yêu cầu cụ thể cho các thành viên khác tong nhóm và chịu trách nhiệm với họ để thực hiện công việc, vai trò của người quản lý được thảo luận trong phần tiếp theo 17 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN 2.6 Vai trò khác của quản lý APM quy định ba vai trò đó cũng là trách nhiệm quản lý và bổ xung hỗ trợ người quản lý Agile Đó là vai . ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TIỂU LUẬN MÔN HỌC: QUẢN LÝ DỰ ÁN PHẦN MỀM CHUYÊN ĐỀ: TÌM HIỂU VỀ Managing Agile Project Giáo viên hướng dẫn: TS. Trương Anh Hoàng TS. Phạm. Mạnh Tìm hiểu về sự phát triển của Agile Thiết kế Slide 55 Nguyễn Thị Yến Tổng hợp các kiến thức chung về Agile Viết và chỉnh sửa báo cáo 3 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN MỤC LỤC 2.3 Quản lý dự. nước 7 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN Hình 2 : Mô hình thác nước mở rộng Hình 3 : Mô hình chữ V Hình 4: Mô hình Prototype 8 TIỂU LUẬN MÔN HỌC QUẢN LÝ DỰ ÁN Hình 5: Mô hình xoắn ốc Chẳng hạn ta có phần