tìm hiểu mô hình phát triển agile

27 756 5
tìm hiểu mô hình phát triển agile

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA – HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÁO CÁO MÔN HỌC: QUẢN LÝ DỰ ÁN PHẦN MỀM ĐỀ TÀI: TÌM HIỂU MÔ HÌNH PHÁT TRIỂN AGILE Giảng viên: TS. Trương Anh Hoàng - TS. Phạm Ngọc Hùng Khóa: K18 CNPM - Nhóm 1 Học viên: Phạm Minh Tuấn Phạm Hữu Bằng Nguyễn Thúy Hồng Trần Thị Hiên Phạm Thị My Mục lục Giới thiệu 5 Phương pháp quản lý dự án 6 Cách tiếp cận theo phương pháp Agile 9 Đánh giá 22 Kết luận 25 Tài liệu tham khảo 27 2 Danh mục hình vẽ Hình 1 - Phương pháp quản lý dự án Agile 5 Hình 2 - Mô hình phát triển thác nước 7 Hình 3 - Dự án như những hệ thống thích nghi phức hợp 12 Hình 4 - Ba tiêu chí đánh giá thành công của một dự án phần mềm 14 Hình 5 - Sơ đồ tổ chức nhóm làm việc 16 Hình 6 - Tầm nhìn chỉ đạo 17 Hình 7 - Các quy tắc đơn giản 19 Hình 8 - Thông tin mở trong phát triển dự án 20 Hình 9 - Quản lý theo hình thức nới lỏng 21 Hình 10 - Mô hình lãnh đạo trong quản lý dự án 22 Hình 11 - Quá trình thực hiện mô hình phát triển Scrum 23 Danh mục bảng Bảng 1- So sánh ưu, nhược điểm của các mô hình phát triển phần mềm 25 3 TÌM HIỂU MÔ HÌNH PHÁT TRIỂN AGILE Tóm tắt– “Phương pháp quản lý dự án Agile là một trong những phương pháp quản lý dự án đang ngày một trở nên phổ biến và được nhiều người quan tâm. Thay vì cách tiếp cận của nhiều phương pháp quản lý dự án khác, Agile là phương pháp tiếp cận hướng tới giá trị khách hàng, bao gồm chuyển giao một sản phẩm đúng yêu cầu khách hàng với một mức giá “hợp lý” tại thời điểm đúng như khách hàng mong muốn.” Từ khóa – Agile project management, project management methodology. 4 Giới thiệu 1. Đặt vấn đề Quản lý dự án là một vấn đề khó và quản lý dự án phần mềm cũng luôn phải đối mặt với những vấn đề chung và vấn đề đặc thù trong phạm trù của các dự án phần mềm. Trong môi trường phát triển và biến động như hiện nay, các dự án phần mềm luôn phải trả các chi phí lớn trong những vấn đề liên quan đến quản trị dự án.Nếu trước kia nói đến dự án phần mềm thì người ta thường nghĩ đến quy trình phức tạp và nhiều giai đoạn trải qua khoảng thời gian khá dài từ vài tháng đến vài năm để hoàn thành dự án. Việc này dẫn đến chi phí phát triển các phần mềm bị đội lên rất cao và thiếu tính cạnh tranh nên các phương pháp cũ dần dần chỉ còn được áp dụng cho các dự án cụ thể, yêu cầu rõ ràng và dễ bảo trì. Hình 1 - Phương pháp quản lý dự án Agile Ngày nay, cùng với việc yêu cầu phát triển sản phẩm ngày càng chất lượng nhưng cũng cần có tính cạnh tranh về thời gian và chi phí, các phương pháp mới ra đời phải đáp ứng được tiêu chí là: nhanh chóng bàn giao được sản phẩm, tiếp xúc thường xuyên để ghi nhận ý kiến khách hàng và quan trọng nhất là tạo ra sản phẩm có tính cạnh tranh cao. Một trong các phương pháp quản lý dự án được đưa ra đó cần kể đến phương pháp Agile. Mô hình phát triển phần mềm linh hoạt Agile là một phương pháp Agile chủ trương hướng tới một cách tiếp cận nhằm mục đích tránh việc lãng phí thời gian, chi phí trong phát triển phần mềm và tăng cường sự đáp ứng với vấn đề thay đổi trong quá trình phát triển phần mềm.Nó bao gồm nhiều rất nhiều phương pháp luận, quy trình và thực nghiệm để hỗ trợ cho việc phát triển phần mềm trở nên 5 nhanh chóng và dễ dàng. Mục tiêu quan trọng nhất mà phương pháp Agile hướng đến là “giá trị khách hàng”. Khi mà phương pháp Agile đã định ra rõ ràng khái niệm “giá trị khách hàng” là gì thì tất cả các phương pháp luận hay quy trình bao hàm trong nó sẽ được xây dựng để xoay quanh làm sao để đạt được nó. Báo cáo được chia làm 5 phần: − Phần được tiếp theo đây bằng cách làm rõ khái niệm “giá trị khách hàng” và sự linh hoạt trong quản lý dự án mà phương pháp Agile hướng đến. − Phần trình bày tổng quan về triết lý và phương pháp luận của một số phương pháp quản lý dự án khác nhau. − Phần sẽ đi sâu hơn vào hướng tiếp cận cũng như chi tiết của phương pháp Agile. − Đưa ra ví dụ về mô hình phát triển Scrum và kết thúc đánh giá phương pháp Agile so với một số phương pháp khác trong Phần IV. − Kết luận của nhóm trong Phần . 2. Giá trị khách hàng Giá trị khách hàng luôn là mục tiêu quan trọng nhất xuyên suốt phương pháp luận và cách tiếp cận theo phương pháp quản lý Agile. Đối với mọi mô hình quản lý dự án theo phương pháp Agile, giá trị khách hàng có thể hiểu là khách hàng luôn muốn nhận được một sản phẩm như mong muốn với một giá cả hợp lý trong một khoảng thời gian như mong đợi.Đối với phương pháp Agile, sản phầm như khách hàng mong muốn là sản phẩm bao gồm một cách chính xác các thuộc tính như khách hàng đưa ra.Giá cả hợp lý có thể được hiểu là một giá cả mà khách hàng nghĩ rằng nó là một giá cả xứng đáng với sản phẩm được bàn giao.Cuối cùng, khoảng thời gian cho phép cũng chính là điều khách hàng mong đợi. Đó là khái niệm rõ ràng về “giá trị khách hàng” đối với phương pháp Agile. Phương pháp quản lý dự án Quản lý dự án là một khái niệm liên quan đến việc lập kế hoạch, tổ chức, thúc đẩy và kiểm soát nguồn lực nhằm đạt được một mục tiêu cụ thể nào đó. Có hai thách thức quan trọng nhất đối với quản lý dự án.Thách thức đầu tiên chính là làm sao để đạt được tất cả mục tiêu của dự án với những ràng buộc của môi trường và hoàn cảnh. Thách thức này bao gồm phạm vi của dự án, thời gian, chất lượng và kinh phí. Thách thức thứ hai chính là làm sao để có thể tối ưu những cung cấp đầu 6 vào (có thể là giảm thiểu chi phí) và kết hợp chúng với những mục tiêu được định sẵn. Có rất nhiều cách tiếp cận đối với việc quản lý các hoạt động của dự án như lặp, gia tăng, chia pha Trong phần này, nhóm chúng tôi sẽ điểm qua một số cách tiếp cận hay được sử dụng trong thực tế. 3. Tiếp cận truyền thống Cách tiếp cận theo dạng chia pha truyền thống hay gặp nhất (xuất hiện trong rất nhiều các biến thể khác) chỉ ra một chuỗi các bước thực hiện dự án cần được hoàn thành để hoàn thành dự án. Các bước đó có thể được liệt kê ra dưới đây: - Bước 1: Khởi đầu - Bước 2: Lập kế hoạch và thiết kế - Bước 3: Thực thi và xây dựng / triển khai - Bước 4: Giám sát và điều khiển hệ thống - Bước 5: Kết thúc dự án Tuy nhiên, trong thực tế, mỗi dự án có thể có những tiến hóa khác nhau. Đối với các dự án không thành công thì có thể sẽ được hủy trước cả bước kết thúc dự án. Nhiều dự án khác lại có thể thực hiện Bước 2, 3, 4 lặp đi lặp lại đến khi dự án thành công (đạt được những mục tiêu đã đặt ra của dự án).Phụ thuộc vào những lĩnh vực khác nhau, cách tiếp cận này có thể có những tên gọi cũng như nội dung tương ứng thích hợp khác nhau. Đối với các dự án phần mềm, cách tiếp cận này thường được biết đến với tên gọi mô hình thác nước (waterfall). Hình 2 - Mô hình phát triển thác nước 7 Tuy nhiên, đã có nhiều nghiên cứu cũng như thống kê gần đây đã chỉ ra mô hình thác nước thường chỉ thành công đối với những dự án cỡ nhỏ, hoặc những dự án được đề xuất với một hiểu biết sâu sắc từ phía khách hàng cũng như đơn vị triển khai. Còn đối với những dự án có kích thước lớn, mô hình thác nước thường thất bại hoặc đem lại chi phí quản lý dự án rất lớn. Nhược điểm lớn nhất của mô hình thác nước chính là không cho phép có sự thay đổi trong quá trình thực hiện dự án, những thay đổi càng xuất hiện muộn trong vòng đời dự án thì càng phải trả giá lớn về tiền bạc và thời gian. 4. PRINCE2 PRINCE2 là cách tiếp cận có cấu trúc được giới thiệu vào năm 1996.PRINCE2 là sự kết hợp giữa phương pháp PROMPT và MITP.Ưu điểm của PRINCE2 là cung cấp một bộ khung tiêu chuẩn để quản lý các dự án. PRINCE2 mô tả những quy trình để phối hợp giữa con người và các hoạt động dự án, hay nói cách là là phương pháp để thiết kế và giám sát dự án. Tuy nhiên, mô hình PRINCE2 cũng gặp nhược điểm khi đề cao vai trò của giám sát trong dự án nhằm đạt được các mục tiêu đề ra của dự án. Con người tham gia trong dự án có thể sẽ chịu nhiều áp lực khi dự án được thực hiện. Chính điều này đôi khi làm các dự án sa đà quá nhiều vào vấn đề giám sát, chi phí của dự án sẽ được đưa nhiều vào hoạt động giám sát trong khi giá trị khách hàng mới là điều nên được quan tâm nhiều nhất. 5. CCPM Quản lý Chuổi dự án quan trọng (CCPM) là một phương pháp lập kế hoạch và quản lý dự án đặt trọng tâm chính trên các nguồn lực cần thiết để thực hiện nhiệm vụ dự án. Được phát triển bởi Eliyahu M. Goldratt. Một chuỗi mạng dự án quan trọng sẽ có xu hướng giữ nguồn tài nguyên quá tải, nhưng sẽ đòi hỏi họ phải được linh hoạt trong thời gian bắt đầu của họ và để nhanh chóng chuyển đổi giữa các tác vụ và các chuỗi công việc để giữ cho toàn bộ dự án đúng tiến độ. 6. Quản lý dự án linh hoạt (Agile) Quản lý dự án linh hoạt dựa trên cơ sở các nguyên tắc về quản lý tương tác con người. Phương pháp Agile thường được sử dụng nhiều trong môi trường công nghiệp phần mềm, website, công nghệ, sáng tạo hoặc quảng cáo – những môi trường thường có sự thay đổi liên tục, đòi hỏi sự thích ứng liên tục và đạt được những giá trị cho khách hàng tốt nhất có thể. 8 Cách tiếp cận theo phương pháp Agile 7. Bản tuyên ngôn cho phương pháp phát triển phần mềm linh hoạt Agile a. Lịch sử ra đời của tuyên ngôn Tháng 2 năm 2001 , 17 nhà phát triển phần mềm đã họp mặt tại khu trượt tuyết Snowbird , Utah và đưa ra Tuyên ngôn Phương pháp phát triển phần mềm linh hoạt (Agile Manifesto). Tuyên ngôn gồm 4 điểm : o Cá nhân và các tương tác quan trọng hơn quy trình và công cụ. o Tập trung làm cho phần mềm chạy được thay vì viết tài liệu. o Cộng tác trực tiếp với khách hàng thay vì dựa trên hợp đồng. o Phản ứng với các thay đổi thay vì tuân theo một kế hoạch định sẵn. b. 12 nguyên tắc của mô hình Agile o Ưu tiên cao nhất của dự án là thỏa mãn khách hàng bằng việc bàn giao sản phẩm sớm và liên tục. o Hoan nghênh các thay đổi từ phía khách hàng, kể cả các thay đổi vào giai đoạn cuối. o Bàn giao sản phẩm theo chu kì từ vài tuần đến vài tháng. Chu kì ngắn tốt hơn chu kì dài. o Các nhân viên hiểu nghiệp vụ và các lập trình viên phải làm việc cùng nhau hàng ngày. o Tổ chức dự án xoay quanh những cá nhân tích cực. Hỗ trợ và tin tưởng họ. o Phương pháp giao tiếp tốt nhất trong đội dự án là gặp mặt trực tiếp. o Các chức năng đã họat động là thước đo chính cho tiến độ dự án. o Khuyến khích phát triển bền vững: Lập trình viên, người dùng, nhà quản lí…phải có khả năng tham gia dự án một cách liên tục. o Liên tục cải tiến chất lượng thiết kế và mã nguồn. o Tính đơn giản giữ vai trò cốt yếu. Làm càng ít càng tốt. o Những yêu cầu và thiết kế tốt nhất được nảy nở từ những nhóm làm việc tự chủ. o Sau những khoảng thời gian nhất định, đội dự án xem xét cách thức cải tiến hiệu quả công việc. 9 8. Cơ sở phương pháp Agile Để hiểu hơn về phương pháp Agile, dưới đây là một số kỹ thuật cơ bản được sử dụng xuyên suốt trong phương pháp luận cũng như quy trình của Agile. − Phát hành các phiên bản nhỏ của chương trình (hoặc hệ thống). Dự án được chia làm nhiều thành phần nhỏ với mục đích dễ quản lý về độ phức tạp cũng như làm sao để nhận được phản hồi từ khách hàng và người dùng cuối nhanh nhất có thể. Các phiên bản thường được bàn giao trong khoảng 1 đến 3 tháng. − Đây là phương pháp phát triển lặp và tăng dần. Các dự án được quản lý theo phương pháp Agile được chia làm nhiều vòng lặp nhỏ. Mỗi vòng lặp đều bao gồm đầy đủ các bước như lập kế hoạch, đặc tả yêu cầu, thiết kế, viết mã nguồn và kiểm thử. Như vậy, phương pháp Agile sẽ gồm nhiều vòng lặp, trong đó mỗi vòng lặp đã có đầy đủ các pha như mô hình “thác nước” (waterfall). Tùy theo đặc thù của các dự án phần mềm và theo yêu cầu của khách hàng, mỗi vòng lặp có thể tương ứng với một hoặc một vài chức năng mới hoặc chức năng được cải tiến. − Tùy theo tính chất của dự án, khoảng thời gian của một vòng lặp trong các dự án sử dụng phương pháp Agile có thể là từ 2 tuần đến 1 tháng. Người quản trị dự án có thể cân nhắc dựa trên nhiều yếu tố khác nhau như thời gian lặp càng ngắn thì số phiên bản của chương trình (hoặc hệ thống) sẽ càng nhiều và đồng thời sẽ có càng nhiều phản hồi (góp ý) từ khách hàng và người dùng cuối. Nhưng ngược lại thời gian lặp càng ngắn thì áp lực lên tất cả các thành viên dự án cũng như việc lập kế hoạch tổng thể dự án sẽ phức tạp hơn. Chính vì thế, đối với phương pháp Agile, việc cân đối thời gian lặp là một trong những nhiệm vụ quan trọng của người quan trị dự án. − Khác với nhiều mô hình khác như mô hình thác nước, phương pháp Agile đòi hỏi sự tập trung cao độ của tất cả thành viên dự án, các bên liên quan đến dự án, khách hàng và đôi khi là cả người dùng cuối. Bởi mỗi vòng lặp có thể chỉ diễn ra trong vỏn vẹn 2 tuần, trong 2 tuần đó sẽ luôn đòi hỏi sự có mặt của tất cả các cá nhân liên quan. Việc kết nối qua thư điện tử, điện thoại, gặp 10 [...]... hợp với cách tiếp cận của mình Đánh giá a Giới thiệu về mô hình phát triển Scrum Scrum đó là một quy trình phát triển phần mềm theo mô hình linh hoạt (Agile) Công nghệ Agile cung cấp rất nhiều phương pháp luận, quy trình và các thực nghiệm để cho việc phát triển phần mềm trở nên nhanh chóng và dễ dàng Scrum chia dự án thành các vòng lặp phát triển gọi là các sprint Mỗi sprint thường mất 24 tuần (30... nay có rất nhiều mô hình vòng đời phần mềm được sử dụng và mỗi loại thì đều có ưu, nhược điểm riêng Từ mô hình thác nước với tính ổn định và dễ đổ vỡ với sự thay đổi, đến mô hình xoắn ốc lặp theo từng giai đoạn Tất 24 cả các mô hình kinh điển này đều có những ưu, nhược điểm riêng mà các mô hình phát triển phần mềm hiện đại như Agile cần kế thừa và tránh gặp phải các sai lầm, giảm thiểu rủi ro khi khách... lại với bản kế hoạch b So sánh mô hình phát triển Agile và một số mô hình phát triển kinh điển Vòng đời phần mềm của mỗi sản phẩm nhiều khi có sự khác biệt rất lớn Có phần mềm dùng một vài năm cho pha khảo sát, tìm hiểu vấn đề Những trường hợp như thế này thường xảy ra do chưa có phần cứng phù hợp để xây dựng phần mềm, hoặc cần phải tiến hành khá nhiều nghiên cứu để tìm ra thuật toán hiệu quả Có sản... Do đó, mô hình Agile yêu cầu tính hợp tác trong nhóm làm việc rất cao và rất cần sự đóng góp, chia sẻ giữa các thành viên vì mục đích hoàn thành dự án Mô hình làm việc theo cặp được áp dụng theo nguyên lý các nhà phát triển và cả các người khác thực hiện công việc theo nhóm 2 người để tăng sự cộng tác cũng như chia sẻ kiến thức và nâng cao chất lượng sản phẩm Phát triển phần mềm dựa trên phát triển. .. mục, đội làm việc sẽ phát triển và đánh giá lại sao cho đạt được mục đích ban đầu trong khoảng thời gian đề ra Hình 11 - Quá trình thực hiện mô hình phát triển Scrum Thành phần chính quan trọng của scrum là các role (vai trò) và các cuộc trao đổi đánh giá Có các role chính là: o Product Owner: là người làm những công việc bắt đầu cho dự án, tạo ra các yêu cầu trong quá trình phát triển dự án Phân tích... thấp Khả năng trao đổi giữa khách hàng và nhà phát triển, giữa những thành viên trong đội được đặt lên mức cao o Tốc độ phát triển nhanh, tiết kiệm thời gian Việc chuẩn bị hành động cho những thay đổi trong quá trình phát triển tốt hơn vì hầu như hàng ngày luôn có những buổi họp đánh giá lại ở những vòng lặp phát triển o Các bugs (lỗi) và các vấn đề được phát hiện sớm hơn rất nhiều so với các phương... nghĩa là nó đã đủ các kĩ năng (competency) cần thiết cho việc phát triển phần mềm, do vậy nó có thể được trao quyền để tự ra quyết định, tự quản lí và tổ chức lấy công việc của chính mình để đạt được hiệu quả cao nhất Ví dụ, nhóm phát triển phần mềm bao gồm người phát triển phần mềm và các nhà phân tích kinh doanh được lựa chọn theo chuyên môn của họ (J2EE, các dịch vụ tài chính,…) Nếu cần nhiều công... lựa chọn tính năng nào để phát triển là hoàn toàn tùy theo mong muốn của khách hàng Những tính năng được yêu cầu và được xếp loại mức độ ưu từ cao xuống thấp Việc xếp loại mức độ ưu tiên được thực hiện bởi sự cộng tác với các nhà phát triển và khách hàng dựa trên lý thuyết trò chơi (mục đích là tối đa hóa lợi ích của cả 2 bên và tối thiểu hóa rủi ro của đối tác) Các nhà phát triển dự tính khả năng cố... Các phương pháp Agile giúp cho dự án phần mềm đạt được ba thành công này Hình 4 - Ba tiêu chí đánh giá thành công của một dự án phần mềm Thành công ở mức công ty: Agile nhằm đến việc tạo ra giá trị cho công ty trong khi làm giảm chi phí Đồng thời, Agile giúp sớm xác định các kì vọng đối với sản phẩm đang được phát triển Nhờ đó, những dự án không mang lại giá trị như mong đợi sẽ được phát hiện sớm, tiết... chiến lược tốt nhất để đảm bảo cho việc mở rộng quy mô dự án Quy tắc 2: Tầm nhìn chỉ đạo (Guiding Vision): Tổ chức nhóm liên kết và chỉ đạo với mô hình chia sẻ tinh thần Hình 6 - Tầm nhìn chỉ đạo Các nhà lãnh đạo phải là những người có tầm nhìn xa, những người có khả năng dự báo trước những xu thế lớn, biến tầm nhìn trở thành hiện thực và luôn phát triển các chiến lược và chiến thuật mới Một tầm nhìn . Thông tin mở trong phát triển dự án 20 Hình 9 - Quản lý theo hình thức nới lỏng 21 Hình 10 - Mô hình lãnh đạo trong quản lý dự án 22 Hình 11 - Quá trình thực hiện mô hình phát triển Scrum 23 Danh. bảng Bảng 1- So sánh ưu, nhược điểm của các mô hình phát triển phần mềm 25 3 TÌM HIỂU MÔ HÌNH PHÁT TRIỂN AGILE Tóm tắt– “Phương pháp quản lý dự án Agile là một trong những phương pháp quản lý. theo phương pháp Agile 9 Đánh giá 22 Kết luận 25 Tài liệu tham khảo 27 2 Danh mục hình vẽ Hình 1 - Phương pháp quản lý dự án Agile 5 Hình 2 - Mô hình phát triển thác nước 7 Hình 3 - Dự án như

Ngày đăng: 27/07/2014, 19:02

Mục lục

  • 2. Giá trị khách hàng

  • 3. Tiếp cận truyền thống

  • 6. Quản lý dự án linh hoạt (Agile)

  • 7. Bản tuyên ngôn cho phương pháp phát triển phần mềm linh hoạt Agile

    • a. Lịch sử ra đời của tuyên ngôn

    • b. 12 nguyên tắc của mô hình Agile

    • 8. Cơ sở phương pháp Agile

    • 9. Quản lý dự án linh hoạt

    • 10. Quy tắc APM

      • a. Giới thiệu về mô hình phát triển Scrum

      • b. So sánh mô hình phát triển Agile và một số mô hình phát triển kinh điển

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan