6 minute read

Đổi mới quy trình phát triển phần mềm để phát triển

Bá Tuấn – THanH Huyền

Mô hình đầu tiên được sử dụng rộng rãi trong ngành công nghiệp phần mềm là Waterfall. Những năm gần đây, sự phổ biến của mô hình này đã giảm nhiều do sự bất cập của Waterfal và nó đang dần bị lấn át bởi các phương pháp phát triển phần mềm linh hoạt (Agile Software Development). Agile là gì và có nên áp dụng Agile thay thế Waterfall để phát triển phần mềm tại BIDV?

Advertisement

khi Nào agiLe, khi Nào WaterfaLL?

Đây là một câu hỏi khó, không dễ trả lời. Bảng dưới dây có thể là một phép so sánh:

Lợi ích của agiLe

Agile là mô hình phát triển phần mềm linh hoạt, dựa trên phương thức lặp (iterative) và tăng trưởng (incremental). Nó sẽ gắn kết khách hàng vào quy trình phát triển của phần mềm, mọi người cố gắng cho ra sản phẩm càng nhanh càng tốt; rồi đưa cho khách hàng dùng thử và phản hồi lại. Đội ngũ phát triển sau đó sẽ tiếp tục phát triển các giai đoạn tiếp theo.

Khác với Agile, Waterfall là quá trình phát triển phần mềm được chia thành các giai đoạn khác nhau và thực hiện tuần tự; đầu ra của giai đoạn này là đầu vào của giai đoạn tiếp theo và không có sự chồng chéo. Việc tiếp cận tuần tự từ trên xuống dưới như vậy giống như dòng chảy của một thác nước nên mô hình này được đặt tên là mô hình thác nước.

Phương pháp Agile hiệu quả hơn phương pháp Waterfall truyền thống ở một số điểm như dự án được chia thành các phần nhỏ, riêng biệt, không phụ thuộc lẫn nhau và có thể thay đổi ở các giai đoạn. Agile phù hợp với các dự án chưa xác định mục tiêu rõ ràng. Việc chia nhỏ dự án cho phép đội dự án bàn giao từng phần. Agile khuyến khích thành viên và khách hàng cung cấp phản hồi để cải tiến và hoàn thiện.

Ngược lại, phương pháp này cũng có những hạn chế nhất định. Dự án được chia nhỏ nên khó lên kế hoạch bàn giao cả sản phẩm cuối và các thành viên cần được đào tạo, hướng dẫn để nắm bắt được phương pháp này. Agile đòi hỏi sự hợp tác như cam kết về thời gian của các thành viên trong suốt dự án, phải có sự tham gia tích cực của người dùng, mỗi thành viên phải có khả năng chủ động hoàn thành công việc.

Agile

Nhu cầu khách hàng và yêu cầu về giải pháp thay đổi thường xuyên Cần cộng tác với khách hàng và có thể cung cấp các phản hồi nhanh, khách hàng nắm rõ hơn về những gì họ mong muốn

Vấn đề rất phức tạp, giải pháp không rõ từ đầu và phạm vi không được xác định rõ

Đặc tả sản phẩm có thể thay đổi, và những sáng tạo luôn được ưu tiên …

Waterfall

Điều kiện thị trường ổn định và có thể tiên lượng

Yêu cầu rõ ràng và luôn ổn định

Khách hàng không thể cộng tác thường xuyên

Công việc tương tự những gì đã làm trước đó và giải pháp là rất rõ ràng. Đặc tả chi tiết có thể làm ra với sự dự đoán rõ ràng và chính xác …

Rõ ràng, không thể khẳng định phương pháp nào tốt hơn hoàn toàn, quan trọng là cách đội nhóm áp dụng phù hợp vào các trường hợp cụ thể. Để sử dụng phương pháp quản lý dự án phù hợp nhất cho việc phát triển phần mềm, cần dựa vào các tiêu chí: Đặc điểm của dự án, đặc điểm kỹ thuật sản phẩm, dữ liệu đầu vào và yêu cầu ứng dụng của khách hàng, quy mô và ý nghĩa của sản phẩm phát triển.

Ví dụ năm 2021, BIDV áp dụng mô hình Agile để nâng cấp SmartBanking thế hệ mới. Đội ngũ của dự án bao gồm nhân sự của nhiều đơn vị như Trung tâm Ngân hàng số, Ban Phát triển Ngân hàng bán lẻ, Trung tâm Thẻ và Trung tâm Công nghệ thông tin (CNTT), phối hợp với đơn vị phát triển phần mềm là VNPAY để thực hiện bổ sung các tính năng mới theo đúng chức năng nhiệm vụ của từng đơn vị. Các yêu cầu phát triển nâng cấp được chia thành các sprint (khoảng thời gian) nhỏ, thường là 4 tuần, với danh mục trong mỗi sprint bao gồm đầy đủ tính năng mới, tính năng nâng cấp và bảo trì.

Thời gian cho mỗi sprint ngắn, với khối lượng công việc lớn, cách phối hợp nhịp nhàng theo Agile và sự cam kết cao về việc bố trí nguồn lực và tuân thủ thời gian giữa các đơn vị, đã giúp SmartBanking đưa các phiên bản mới đến khách hàng thường xuyên hơn tại cuối mỗi sprint.

Theo lộ trình, BIDV tiếp tục cải tiến quá trình phát triển sản phẩm, tiến tới áp dụng đầy đủ hơn mô hình Agile cũng như ứng dụng các công cụ tự động hóa để chuyển dần sang mô hình phát triển/phát hành liên tục (CI/CD) gọi là DevOps. Đây cũng là quá trình chuyển đổi số trong phát triển phần mềm tại BIDV”.

kết hợp agiLe và WaterfaLL

Với đặc thù tại BIDV, các ban kinh doanh là đơn vị đầu mối đưa yêu cầu phát triển sản phẩm từ các nhu cầu thực tế của khách hàng, Trung tâm Ngân hàng số phân tích, phát triển hoặc kết hợp với Trung tâm CNTT tích hợp hệ thống sau đó bàn giao Trung tâm CNTT nghiệm thu triển khai và vận hành. Do đó, các đơn vị tham gia vào các khâu khác nhau trong quá trình phát triển phần mềm dẫn đến khó khăn cho việc tổ chức nhóm Scrum theo mô hình Agile.

Agifall là gợi ý về mô hình kết hợp cả Agile và Waterfall, lấy lợi thế của các mô hình để tăng hiệu quả trong quản lý dự án. Theo đó, Waterfall chỉ áp dụng ở giai đoạn yêu cầu định nghĩa và kiểm thử hệ thống; trong khi giai đoạn thiết kế và lập trình sẽ được tăng năng suất bằng cách phát triển với Agile. Để sử dụng mô hình kết hợp, các chuyên gia cần có kiến thức tổng quan về hệ thống, phần chi tiết và cốt lõi có thể linh động chia nhỏ để thực hiện một cách nhanh nhẹn.

Tại BIDV, phương pháp Agifall cũng đã được áp dụng tại Trung tâm Ngân hàng số với dự án Quickwin 2. Đây là dự án phát triển cấu phần đăng ký dịch vụ trực tuyến cho các khách hàng doanh nghiệp trên hệ thống iBank. Với Quickwin 2, nhóm Scrum Team tại Trung tâm Ngân hàng số chia làm 4 Sprint phát triển linh hoạt theo mô hình Agile trong 15 tuần. Bên cạnh đó, Trung tâm Ngân hàng số cũng phối hợp với Trung tâm CNTT để nghiệm thu và triển khai theo đúng các quy định của BIDV.

Áp dụng cả Agile và Waterfall trong cùng 1 dự án có thể giúp đội nhóm phát triển phần mềm dễ đối phó với những thất bại hoặc rủi ro của dự án hoặc thay đổi về thiết kế, do đó sẽ cải thiện năng suất bằng cách giảm khối lượng công việc. Việc áp dụng này phù hợp cho các dự án hệ thống quy mô lớn, dù điều này không hề dễ nhưng rõ ràng một chiến lược lấy “khách hàng là trọng tâm” thì không thể thiếu sự linh hoạt, cải tiến liên tục để đưa sản phẩm ra thị trường nhanh chóng hơn.

This article is from: