Danh mục

Phân tích định tính việc áp dụng mô hình agile vào quy trình phát triển phần mềm

Số trang: 7      Loại file: pdf      Dung lượng: 341.21 KB      Lượt xem: 18      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài báo này đề cập những phương pháp Agile được sử dụng nhiều nhất, ích lợi của việc sử dụng Agile, lợi thế của Agile trước Waterfall và đánh giá lợi ích thực tế của việc áp dụng Agile thông qua hai trường hợp Zonmob và Cisco. Mời các bạn tham khảo!
Nội dung trích xuất từ tài liệu:
Phân tích định tính việc áp dụng mô hình agile vào quy trình phát triển phần mềm PHÂN TÍCH ĐỊNH TÍNH VIỆC ÁP DỤNG MÔ HÌNH AGILE VÀO QUY TRÌNH PHÁT TRIỂN PHẦN MỀM Trần Nguyễn Quốc Khang Viện Đào tạo Quốc tế, Trường Đại học Công nghệ TP.Hồ Chí Minh GVHD: TS. Lê Thị Ngọc Thơ T M TẮT Ngày nay, khách hàng đang yêu cầu những phần mềm đòi hỏi cập nhật thường xuyên hay sửa lỗi trong thời gian ngắn, những mô hình phát triển phần mềm cổ điển không phù hợp để đáp ứng những nhu cầu này, vì thế Agile đang dần trở nên thịnh hành và phổ biến hơn, ở Việt Nam cũng không ngoại lệ, mô hình Agile đang ngày một phát triển và các công ty phần mềm đang ngày càng chú ý đến Agile. Bài báo này đề cập những phương pháp Agile được sử dụng nhiều nhất, ích lợi của việc sử dụng Agile, lợi thế của Agile trước Waterfall và đánh giá lợi ích thực tế của việc áp dụng Agile thông qua hai trường hợp Zonmob và Cisco. Từ khóa Agile, Scaling Agile, Quy trình phát triển phần mềm, Scrum, Scaled Agile Framework. 1 GIỚI THIỆU MÔ HÌNH AGILE 1.1 Tổng quan về m hình Agile Agile là một thuật ngữ chung cho một số phương pháp tiếp cận phát triển phần mềm theo cách lặp và tăng dần, với mỗi biến thể đó gọi là Agile framework hay Agile methodology. Lúc đầu, các Agile framework phổ biến bao gồm Scrum, Crystal, Phương thức phát triển hệ thống động và Phát triển dựa trên tính năng (Feature-Driven Development), sau này, Scrum, Kanban và các phương pháp hỗn hợp khác chiếm ưu thế. Trong đó, framework phổ biến và được ứng dụng nhiều nhất vẫn là Scrum. [1] Hình 1: Những phương pháp Agile được sử dụng[2] 944 Mặc dù mỗi loại phương pháp Agile có những tính chất độc đáo riêng, tất cả chúng đều kết hợp các yếu tố phát triển lặp và thu thập phản hồi liên tục khi tạo một ứng dụng. Bất kỳ dự án phát triển Agile nào cũng bao gồm lập kế hoạch liên tục, thử nghiệm liên tục, tích hợp liên tục và các hình thức phát triển liên tục khác của cả dự án và ứng dụng do Agile framework làm ra. Mỗi Agile framework có tính linh động cao. Các quy tắc và thông lệ được giữ ở mức tối thiểu và được thiết kế để có thể thích ứng với mọi loại hoàn cảnh. Thay vào đó, trọng tâm rơi vào việc trao quyền cho các nhà phát triển đủ loại để hợp tác và đưa ra quyết định cùng nhau như một nhóm một cách nhanh chóng và hiệu quả. Mấu chốt phương pháp phát triển Agile là tạo ra các ứng dụng theo từng bước nhỏ, kiểm tra từng mức tăng trưởng riêng lẻ trước khi hoàn thành. Quá trình này đảm bảo chất lượng được đưa vào trong sản phẩm, so với việc kiểm tra chất lượng sau này. [3] 1.2 Agile mở rộng (Scaling Agile) Khi áp dụng Agile, khó khăn lớn nhất là áp dụng nó cho nhiều team khác nhau trong một tổ chức lớn. Scaling Agile là một tập hợp những phương pháp Agile mở rộng dùng cho những công ty và tập đoàn lớn, trong đó, Scaled Agile Framework (SAFe) là phương pháp Scaling Agile được sử dụng nhiều nhất (30%).[2] Hình 2: Những phương pháp Scaling Agile được sử dụng [2] 1.3 Những t nh chất của Agile Tính mô đun: Tính mô đun cho phép Agile chia thành các thành phần và ưu tiên thực hiện các phần quan trọng.[4] Lặp lại: Agile tập trung vào các chu trình ngắn và lặp đi lặp lại nhằm cái tiến sản phẩm từng bước đến sự hoàn hảo. [4] Giới hạn thời gian: Mỗi chu kỳ của Agile có thể có giới hạn từ 1 đến 6 tuần. [4] Tiết kiệm: Với mỗi chu kỳ, chỉ đặt ra những mục tiêu tối thiểu nhằm vừa hoàn thành sản phẩm đúng hạn vừa giúp developer có thời gian nghỉ. [4] Thích nghi: Agile giúp dễ dàng phát hiện ra các nguy cơ trong mỗi vòng lặp nhằm giúp thay đổi để loại bỏ nguy cơ. [4] 945 Phi tập trung: Agile phân bổ việc ra quyết định cho các developer.[1] Hội tụ: Agile giúp loại bỏ toàn bộ các nguy cơ đáng quan tâm để đảm bảo sự thành công của sản phẩm trong một quá trình phát triển nhanh chóng. [4] Hướng tới con người: Agile quan trọng con người hơn công nghệ và quy trình, tất cả các nguyên lý của Agile nhằm giúp developer có tinh thần và năng suất cao nhất có thể (Ví dụ: con người giỏi làm từng việc cỡ nhỏ với nhịp độ nhất định hơn là làm một việc lớn dài hạn .[4 Hợp tác: Khách hàng làm việc gần gũi với đội ngũ phát triển, đưa ra phản hồi với từng vòng lặp giúp developer quyết định cách tốt nhất để làm hài lòng khách hàng. [4] 2 NHỮNG LỢI ÍCH THỰC TẾ CỦA AGILE SO VỚI WATERFALL ảng 1: So sánh tỷ lệ thành công của Agile so với Waterfall dựa trên kích cỡ các dự án[5] Kích cỡ Phương pháp Thành công (%) Khó khăn (%) Thất bại (%) Dự án mọi kích cỡ Agile 39 52 9 Waterfall 11 60 29 Dự án cỡ lớn Agile 18 59 23 Waterfall 3 55 42 Dự án cỡ Vừa Agile 27 62 11 Waterfall 7 68 25 Dự án cỡ nhỏ Agile 58 38 4 Waterfall 44 45 11 Dữ liệu trên được lấy từ 10000 dự án từ năm 2011 đến năm 2015. Từ kết quả trên cho thấy, mô hình Waterfall không có khả năng mở rộng tốt. Về tổng thể, khả năng thành công của Agile cao gần gấp 4 lần so với Waterfall, và khả năng thất bại của Waterfall cao gấp 3 lần so với Agile, Agile thích hợp để mở rộng các dự án, và khi kích cỡ dự án cà ...

Tài liệu được xem nhiều: