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,43 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ÌMHIỂUVỀManagingAgileProject 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 S TT Họ và tên Nội dung công việc 1 1 Trần Thị Hiền Tìmhiểu các kiến thức chung vềAgile Viết báo cáo 2 2 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 3 3 Phan Thị Luân Tìmhiểu các kiến thức chung vềAgile Viết báo cáo 4 4 Phạm Đức Mạnh Tìmhiểuvề sự phát triển của Agile Thiết kế Slide 5 5 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 AgileAgile software development APM AgileProject 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 [...]... độ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ểuvề 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 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ự... 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)... định sẵn Dự án phát triển phần mềm tiêu biểu trên thế giới theo phương pháp Agile là Chrome với khả năng cập nhật phiên bản mới liên tục Trước năm 2011, Agile ở Việt Nam chưa được quan tâm nhiều Các công ty khó tìm kiếm các chuyên gia am hiểuAgile để phát triển các sản phẩm của riêng họ hoặc đáp ứng yêu cầu của khách hàng về mặt phương pháp luận Hiện nay, càng nhiều doanh nghiệp Việt Nam có xu hướng... Phương pháp Agile cần có các cá nhân đa năng, có động lực, biết nghiên cứu, biết phân tích, biết sáng tạo, và có các kỹ năng giao tiếp cần thiết để hiểu thấu các vấn đề của khách hàng Họ cũng phải là những người làm việc nhóm có tính kỹ luật, và là những kỹ sư phần mềm tài ba có thể cho ra đời sản phẩm đúng hạn thời gian cho phép 12 nguyên lý và kỹ thuật của Agile Đây chỉ là bước đầu của việc tìm hiểu thế... chính • Hướng dẫn các • phiên bản • Người quản lý Agile, huấn luận viên kỹ thuật, khách hàng, đội Các quy luật đơn • giản Khuyến khích sự xuất hiện và tự tổ chức Người 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... 2.2 Quá trình vận hành Agile: Đầu tiên là phải xác định vấn đề phải giải quyết cho phần mềm, sau đó đưa ra các khái niệm, ý tưởng để giải quyết vấn đề đó Tiếp theo, chúng ta đưa ra chứng minh cho khách hàng xem là ta có thể thực hiện được (proof of concept) – không nên thiên về kỹ thuật nên hướng về phần nghiệp vụ nhiều hơn Đây là bước quan trọng bắt buộc khi phát triển theo Agile Sau khi 2 bên đã... 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 thực hành: Các tổ chức nhóm, thông tin mở, Light Touch và thiết lập lãnh đạo Đỗi với các thực hành khác, 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... lãnh đạo cung cấp Một nhóm Agile do đó bao gồm nhiều lãnh đạo, người quản lý Agile cần nhận biết khởi tạo và luyện mô hình phân phối hay hợp tác trong khi vẫn chịu trách nhiệm cuối cùng cho dự án Sắp xếp như thế nào là phù hợp nhất cho những hoạt động trong môi trường Agile hợp tác với các trách nhiệm cụ thể này? Loại kỹ năng mà cá nhân nào cần ở đây? Một dự án cho quản lý Agile vạch ra các giá trị... Trước khi nhà quản lý Agile có thể làm việc trên các đội ngũ cộng tác, họ cần phải hợp tác giá trị bản thân Điều này đòi hỏi một sự sẵn sàng làm việc với những người khác trong mối quan hệ ngang, và sự hiểu biết và đánh giá cao giá trị của sự hợp tác Để hỗ trợ học tập và thích ứng trong nhóm của họ, quản lý Agile đòi hỏi một cam kết sâu sắc cá nhân hay học tập của đội Người quản lý Agile được yêu cầu... người quản lý Agile cần phải duy trì cao tiêu chuẩn đạo đức.Thay vì được thúc đẩy họ cần phải giải quyết bởi tài chính đạt được, công nhận, thậm chí họ cần phải tin tưởng vào giá trị của họ Họ là những người học suốt đời vì sự thay đổi hàng ngày của các dự án Agile, điều này là cần thiết học tập cho sự sống còn, quản lý Agile cần phải yêu thích việc học tập Với những người khác có thể tìm cách chấp . kế Slide 3 3 Phan Thị Luân Tìm hiểu các kiến thức chung về Agile Viết báo cáo 4 4 Phạm Đức Mạnh Tìm hiểu về sự phát triển của Agile Thiết kế Slide 5 5 Nguyễn. việc 1 1 Trần Thị Hiền Tìm hiểu các kiến thức chung về Agile Viết báo cáo 2 2 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