TÌM HIỂU VỀ MÔ HÌNH AGILE
-
Tổng quan về Agile
Agile là một cách làm trong phát triển phần mềm, được sử dụng để giúp nhóm làm việc linh hoạt hơn trong quá trình xây dựng sản phẩm. Điểm em thấy dễ hiểu nhất ở Agile là không nhất thiết phải làm toàn bộ dự án một lần rồi đến cuối mới kiểm tra, mà có thể chia công việc thành những phần nhỏ, làm từng phần và kiểm tra trong quá trình thực hiện.
Ví dụ, nếu một nhóm đang làm một website bán hàng, như web bán sữa của em, thì có thể chia ra làm trang sản phẩm, đăng nhập, giỏ hàng, thanh toán,... Nhóm có thể hoàn thành một phần trước, sau đó kiểm tra và cho khách hàng hoặc người phụ trách xem thử. Nếu có chỗ nào chưa phù hợp thì sửa lại ở những phần tiếp theo.
Agile cũng chú trọng đến việc các thành viên trong nhóm trao đổi với nhau và thường xuyên nhận phản hồi. Trong thực tế làm phần mềm, yêu cầu của khách hàng có thể thay đổi trong lúc đang làm nên việc có thể điều chỉnh kế hoạch sẽ thuận tiện hơn.
Trong đó có 4 giá trị chính: đề cao sự phối hợp giữa con người, phần mềm hoạt động được, sự hợp tác với khách hàng và khả năng phản hồi với thay đổi.
Agile không phải là một quy trình cố định mà là một cách tiếp cận trong phát triển phần mềm. Khi áp dụng Agile, mỗi nhóm có thể lựa chọn cách tổ chức công việc khác nhau, chẳng hạn như Scrum hoặc Kanban, miễn là vẫn hướng đến sự linh hoạt, hợp tác, nhận phản hồi và cải tiến liên tục.
-
Cách Agile được áp dụng
Theo em hiểu, một dự án áp dụng Agile thường không làm theo một đường thẳng từ đầu đến cuối mà sẽ chia thành nhiều vòng làm việc.
Có thể hiểu đơn giản như sau: Lên kế hoạch → Chia công việc → Thực hiện → Kiểm tra → Nhận phản hồi → Điều chỉnh → tiếp tục thực hiện
Ví dụ nhóm được giao làm một website bán hàng. Thay vì chờ làm xong tất cả các chức năng mới đưa cho khách hàng xem, nhóm có thể làm trước phần trang chủ và sản phẩm. Sau khi hoàn thành thì kiểm tra và cho khách hàng xem.
Nếu khách hàng thấy phần tìm kiếm sản phẩm chưa thuận tiện hoặc muốn thay đổi cách hiển thị thì nhóm có thể ghi nhận lại và thực hiện trong những phần tiếp theo.
Như vậy, sản phẩm được cải thiện dần trong quá trình làm chứ không nhất thiết phải hoàn chỉnh ngay từ đầu.
-
Một số đặc điểm của Agile
Theo em, có một số điểm khá dễ nhận thấy khi tìm hiểu về Agile:
-
Công việc thường được chia thành những phần nhỏ để dễ thực hiện và theo dõi.
-
Các thành viên trong nhóm trao đổi với nhau thường xuyên.
-
Sản phẩm được kiểm tra trong quá trình phát triển.
-
Khách hàng hoặc người phụ trách có thể đưa ra phản hồi trong quá trình làm.
-
Khi yêu cầu thay đổi thì nhóm có thể điều chỉnh kế hoạch.
-
Sau mỗi giai đoạn, nhóm có thể nhìn lại những gì chưa tốt để cải thiện.
Điểm quan trọng là Agile không có nghĩa là làm việc không theo kế hoạch. Vẫn cần có kế hoạch và phân chia công việc, nhưng kế hoạch có thể được điều chỉnh khi dự án có thay đổi.
-
Ưu điểm của Agile
Một ưu điểm em thấy khá rõ của Agile là khả năng thích ứng với thay đổi. Khi làm phần mềm, đôi khi yêu cầu ban đầu của khách hàng chưa hoàn toàn rõ hoặc sau khi nhìn thấy sản phẩm thì khách hàng mới phát hiện ra mình muốn thay đổi một số chỗ.
Ngoài ra, do công việc được chia nhỏ và kiểm tra thường xuyên nên nhóm có thể phát hiện vấn đề sớm hơn. Các thành viên cũng dễ theo dõi được mình đang làm gì và còn những công việc nào chưa hoàn thành.
-
về nhược điểm
Vì agile có tính đặc thù phải giao tiếp tốt, Yêu cầu các thành viên trong team phải giao tiếp tốt với nhau, có kỹ năng thuyết trình, trình bày giải quyết các vấn đề một cách rõ ràng, mối quan hệ cũng phải tốt thì làm việc mới không bị căng thẳng
Bài viết khác
BÀI 5: TÌM HIỂU CHUYÊN SÂU VỀ LANGUAGE SWITCHING TRONG FLUTTER
1. Language Switching là gì? Trong một ứng dụng hỗ trợ nhiều ngôn ngữ, việc có sẵn các bản dịch chưa đủ để tạo ra trải nghiệm đa ngôn ngữ hoàn chỉnh. Ứng dụng còn cần xác định ngôn ngữ nào sẽ được sử dụng và cho phép thay đổi ngôn ngữ khi cần thiết. […]
TÌM HIỂU CHUYÊN SÂU VỀ UTC & LOCAL TIME CONVERSION TRONG FLUTTER
1. UTC & Local Time Conversion là gì? Trong một ứng dụng Flutter, thời gian xuất hiện ở rất nhiều chức năng như ngày tạo tài khoản, thời gian đặt hàng, lịch sử giao dịch, lịch hẹn, thời gian gửi thông báo và thời hạn của chương trình khuyến mãi. Khi ứng dụng chỉ chạy […]
TÌM HIỂU CHUYÊN SÂU VỀ DATE / NUMBER / CURRENCY FORMATTING TRONG FLUTTER
1. Date / Number / Currency Formatting là gì? Trong một ứng dụng Flutter, dữ liệu thường được lưu trữ và xử lý dưới dạng số, ngày giờ hoặc các kiểu dữ liệu có cấu trúc. Tuy nhiên, dữ liệu dùng để tính toán không nhất thiết giống với cách dữ liệu được hiển thị […]
TÌM HIỂU CHUYÊN SÂU VỀ LOCALIZATION (l10n) TRONG FLUTTER
1. Localization (l10n) là gì? Khi một ứng dụng được sử dụng ở nhiều quốc gia, sự khác biệt không chỉ nằm ở ngôn ngữ mà còn ở cách người dùng đọc ngày tháng, số, tiền tệ, đơn vị đo lường và các thông tin trên giao diện. Ví dụ, một ứng dụng bán hàng […]
TÌM HIỂU CHUYÊN SÂU VỀ INTERNATIONALIZATION (i18n) TRONG FLUTTER
1. Internationalization (i18n) là gì? Trong quá trình phát triển ứng dụng, lập trình viên thường xây dựng giao diện bằng một ngôn ngữ ban đầu, chẳng hạn như tiếng Việt. Khi ứng dụng được sử dụng bởi người dùng ở nhiều quốc gia, việc chỉ hỗ trợ một ngôn ngữ có thể khiến người […]
TÌM HIỂU CHUYÊN SÂU VỀ APP RELEASE & DEPLOYMENT TRONG FLUTTER
1. App Release & Deployment là gì? Trong quá trình phát triển ứng dụng Flutter, sau khi hoàn thành các chức năng, lập trình viên cần đưa ứng dụng đến người dùng thực tế. Ví dụ, một nhóm đã xây dựng xong ứng dụng bán hàng với những chức năng như đăng nhập, xem sản […]