ÁP DỤNG MÔ HÌNH AGILE/SCRUM TRONG QUẢN LÝ DỰ ÁN

08/02/2023 14:02
Vào ngày 4/2/2023 vừa qua, Ajisai đã được cùng tham gia buổi đào tạo nội bộ về kỹ năng quản lý dự án agile/scrum cho các tân kỹ sư cầu nối BrSE Nhật Bản tại văn phòng công ty INTS. Việc áp dụng mô hình phát triển là điều quan trọng trong quá trình lớn mạnh của các doanh nghiệp sản xuất phần mềm. Mới đây, INTS đã tổ chức buổi đào tạo áp dụng mô hình Agile/Scrum cho các bạn TTS của trường ĐH GTVT, để có thể vận hành mô hình làm việc đạt hiệu quả cao.
ap-dung-mo-hinh-agile-trong-quan-ly-du-an
buổi đào tạo cho các tân kỹ sư BrSE Nhật Bản

Agile/scrum là modul quan trọng trong Khóa học kỹ sư cầu nối và đây cũng là yêu cầu cần có trong CV xin việc trong lĩnh vực CNTT của bạn.

Mô hình Agile – Quy trình Scrum là gì?

  • Agile là phương pháp phát triển phần mềm linh hoạt để làm sao đưa sản phẩm đến tay khách hàng càng nhanh càng tốt, là một hướng tiếp cận cụ thể cho việc quản lý dự án phần mềm.
  • Scrum là một dạng của mô hình Agile và là Framework phổ biến nhất khi thực hiện mô hình Agile. Scrum là mô hình phát triển lặp đi lặp lại. Những khoảng lặp cố định thường kéo dài 1,2 tuần được gọi là Sprint hoặc Iteration.

Scrum có lợi ích gì cho phát triển phần mềm hiện nay?

Nó giúp loại bỏ những công đoạn phức tạp và chỉ tập trung vào những công đoạn cần thiết đáp ứng được nhu cầu của khách hàng đưa ra. Ba yếu tố nòng cốt tạo thành một mô hình quản lý tiến trình thực nghiệm gồm: sự minh bạch (transparency), thanh tra (inspection) và thích nghi (adaptation).

Đọc thêm:  buổi đào tạo agile/scrum cho đội ngũ nhân viên INTS

1. Agile/Scrum Course

– Cơ bản về Agile và Scrum: Gia tăng nhận thức về Agile và khung làm việc Scrum.

  – Vai trò và kỹ năng của từng bộ phận: phân biệt sự khác nhau về trách nhiệm, công việc giữa các vai trò trong scrum và các kỹ năng cần thiết ở từng vị trí. Trong Scrum, đội ngũ tham gia phát triển phần mềm được phân chia ra 03 vai trò với trách nhiệm rõ ràng để đảm bảo tối ưu hóa các công việc đặc thù. Ba vai trò này bao gồm:

  • Product Owners: là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.
  • Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum. Họ phải đảm bảo các sprint được hoàn thành đúng mục đích, bảo vệ đội làm việc và loại bỏ các trở ngại.
  • Development Team (BA, Dev, Tester…): Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi các yêu cầu được tổ chức trong Product Backlog thành chức năng của hệ thống.

Nội dung cần nhớ của quy trình Scrum

Không thực hiện đưa toàn bộ yêu cầu/ nghiệp vụ hệ thống vào Code và Testing cùng một lúc, mà sẽ chia các yêu cầu làm theo từng giai đoạn. Mỗi giai đoạn chỉ làm một số lượng yêu cầu nhất định.

  • Chia thành nhiều giai đoạn nhỏ để thực hiện hay còn gọi lại Sprint.
  • Mỗi 1 Sprint thường kéo dài từ 1 đến 4 tuần (không dài hơn 1 tháng).
  • Đầu Sprint sẽ lên kế hoạch làm những yêu cầu nào, sau đó sẽ thực hiện code và test. Cuối Sprint là một sản phẩm hoàn hiện cả code lẫn test có thể demo và chạy được.
  • Hoàn thành Sprint 1, tiếp tục làm Sprint 2… cho đến khi hoàn thành hết các yêu cầu.
  • Trong mỗi 2 Sprint thì sẽ có họp hàng ngày – daily meeting. Cả team sẽ đứng họp thành 1 vòng tròn thường chỉ họp 15-20 phút. Mỗi thành viên sẽ báo cáo: Hôm qua đã làm gì? Hôm nay sẽ làm gì? Có gặp khó khăn gì không?…
  • Trong mỗi 1 Sprint thì các thành viên của dự án phải tạo task cho code và test. Một task code xong là phải có task test liền ngay đó. Do thời gian làm ngắn nên hiệu quả làm việc cao, đúng tiến độ đảm bảo cuối Sprint là hoàn thành được cả test.
  • Ưu điểm phù hợp với những yêu cầu nghiệp vụ hay thay đổi hoặc hệ thống nghiên cứu do làm theo từng giai đoạn ngắn ngày, có thể nhìn thấy những rủi ro hay những điểm chưa phù hợp để thay đổi.
  • Điều hành đội dự án sẽ là Scrum Master, còn có Product Owner là người đánh giá phần mềm làm đã đúng nghiệp vụ/ yêu cầu chưa.

2. 12 Nguyên tắc đằng sau tuyên ngôn Agile

Các nguyên tắc cần nắm để ứng dụng thành công mô hình linh hoạt

Để có thể giúp dự án hoàn thành đúng tiến độ và áp dụng phương pháp linh hoạt hơn thì sau đây là 12 nguyên tắc bạn cần nắm rõ. Các nguyên tắc bao gồm:

1. Ưu tiên cao nhất của chúng tôi là làm hài lòng khách hàng thông qua việc phân phối sớm và liên tục các phần mềm có giá trị.

2. Chào đón việc thay đổi các yêu cầu, thậm chí ngay cả khi rất muộn trong quá trình phát triển. Các quy trình linh hoạt tận dụng sự thay đổi để tạo lợi thế cạnh tranh cho khách hàng. 

3. Thường xuyên cung cấp phần mềm hoạt động tốt cho khách hàng, từ hàng tuần đến hàng tháng, ưu tiên khung thời gian ngắn hơn.

4. Các nhà kinh doanh và nhà phát triển phần mềm phải làm việc cùng nhau hàng ngày trong suốt quá trình dự án diễn ra. 

5. Xây dựng các dự án xung quanh những cá nhân có động lực. Cung cấp cho họ môi trường và sự hỗ trợ mà họ cần, và tin tưởng để họ hoàn thành công việc một cách tốt nhất có thể. 

6. Cách hiệu quả nhất để truyền tải thông tin đến nhóm phát triển đó chính là trò chuyện trực tiếp.

7. Phần mềm hoạt động tốt là thước đo quan trọng nhất cho sự tiến bộ.

8. Các quy trình linh Agile thúc đẩy sự phát triển bền vững. Các nhà tài trợ, các nhà phát triển và khách hàng (người dùng) có thể duy trì một nhịp độ mang tính liên tục, xuyên suốt và không bị giới hạn. 

9. Thường xuyên quan tâm đến kỹ thuật và thiết kế để gia tăng tính linh hoạt.

10. Sự đơn giản - nghệ thuật tối đa hóa hoạt động kinh doanh chưa hoàn thành - là điều cơ bản nhất. 

11. Các kiến trúc tốt nhất, yêu cầu tốt nhất và thiết kế tốt nhất sẽ do các nhóm tự tổ chức thực hiện.

12. Các nhóm phát triển không ngừng suy nghĩ về cách làm thế nào để hiệu quả hơn, sau đó họ điều chỉnh và thay đổi hành vi của mình cho phù hợp.

3. Phương pháp Agile

Như đã đề cập chi tiết ở trên, phương pháp Agile có nhiều cách thực hành nhưng tất cả chúng đều có chung một triết lý. Phương pháp Agile được sử dụng phổ biến nhất đó là:

Scrum: Theo Scrum Guide (tài liệu hướng dẫn Scrum) được đồng sáng lập bởi Ken Schwaber và Jeff Sutherland. Đây là một framework hướng đến sự phát triển bền vững của các sản phẩm phức tạp. Được cho là một trong những phương pháp Agile quan trọng nhất, Scrum sử dụng các cơ chế lặp lại và tăng trưởng để tối ưu hóa hiệu quả đồng thời kiểm soát rủi ro. 

=>Có thể thấy, trong số các phương pháp nhanh, Scrum là phổ biến nhất vì tính hiệu quả và tối ưu của nó. Các phương pháp lai với Scrum như Scrumban, Scrum và XP cũng chiếm gần ¾ mức độ phổ biến. Đây là lý do tại sao rất nhiều nhóm sử dụng Scrum để bắt đầu quá trình áp dụng phương pháp Agile. 

4. Tính đặc trưng của phương pháp Agile

Tính lặp lại - Iterative:  Các dự án sẽ được thực hiện theo các giai đoạn lặp đi lặp lại (lặp lại hoặc chạy nước rút), thường với khung thời gian ngắn (1-4 tuần). Trong mỗi phần, nhóm phát triển thực hiện tất cả các công việc cần thiết như lên kế hoạch, phân tích yêu cầu của khách hàng, thiết kế, triển khai, thử nghiệm, để sản xuất các phần nhỏ của sản phẩm.

Tính tăng dần và tiến hóa - Incremental & Evolutionary:  Vào cuối quá trình phân đoạn, nhóm sản xuất các phần nhỏ của sản phẩm cuối cùng, thường là hoàn chỉnh, có khả năng chạy tốt, được kiểm tra kỹ lưỡng và có thể ứng dụng được. Theo thời gian, các phân đoạn này sẽ tiếp nối với nhau. Các phần chạy được này sẽ lần lượt được tích lũy, lớn dần cho đến khi tất cả các nhu cầu của khách hàng được đáp ứng.

Khả năng thích ứng - adaptive:  Do thời gian phân khúc ngắn và việc điều chỉnh kế hoạch liên tục, những thay đổi trong quá trình phát triển (yêu cầu thay đổi, thay đổi công nghệ, thay đổi theo định hướng, mục tiêu,...) đều có thể được điều chỉnh theo cách thích hợp nhất. 

Nhóm tự tổ chức và đa chức năng: Các cấu trúc nhóm này tự phân công công việc mà không cần dựa trên các mô tả cứng về chức danh hoặc thiết lập hệ thống phân cấp rõ ràng trong tổ chức. Các nhóm tự tổ chức có đủ kỹ năng để đưa ra quyết định, quản lý bản thân và tổ chức công việc của họ để đạt hiệu quả tối đa.

Quản lý quá trình thực nghiệm - Empirical Process Control: Các nhóm Agile thường đưa ra quyết định dựa trên dữ liệu thực tế hơn là tính toán lý thuyết hay các giả định đã được thiết lập trước. Agile rút ngắn vòng đời phản hồi để dễ thích ứng và tăng tính linh hoạt nhằm kiểm soát tiến trình, nâng cao năng suất lao động.  

Giao tiếp trực diện - Face-to-face Communication: Agile không chống lại việc tài liệu hóa mà là coi trọng việc giao tiếp mặt đối mặt hơn là thủ tục giấy tờ. Các phương pháp Agile khuyến khích nhóm phát triển trao đổi trực tiếp để hiểu rõ hơn về nhu cầu thực sự của khách hàng. Trong giao tiếp nội bộ nhóm, Agile khuyến khích trao đổi trực tiếp và thỏa thuận về thiết kế hệ thống và đồng triển khai các chức năng cần thiết.

Phát triển dựa trên giá trị - Value-based Development: Một trong những nguyên tắc cơ bản của nhanh nhẹn là "một sản phẩm hoạt động tốt là thước đo của sự tiến bộ". Các nhóm Agile thường làm việc trực tiếp và thường xuyên với khách hàng để hiểu yêu cầu nào có mức độ ưu tiên cao hơn nhằm mang lại nhiều giá trị hơn cho dự án đó càng nhanh càng tốt.

Buổi đào tạo Agile/Scrum tại INTS

anh-ky-niem-cung-cac-ban-tts-tai-ints
Đội ngũ Ajisai chụp ảnh kỷ niệm với các bạn TTS tại INTS

Đọc thêm: đội ngũ Ajisai luôn đồng hành cùng các bạn  

Buổi đào tạo ngoài những bài giảng còn kết hợp với rất nhiều trò chơi bổ ích, tăng sự hứng khởi cho mỗi thành viên tham gia, ngoài ra, mỗi trò chơi đều là một bài học thiết thực để có thể rút ra được ý nghĩa khi áp dụng mô hình Agile/scrum trong công việc hay dự án của đội nhóm. 

buoi-dao-tao-do-giam-doc-dung-lop
trực tiếp GĐ.Bùi Minh Trường đứng lớp đào tạo

Các bạn học viên được tham gia trò chới rất vui nhộn và thiết thực

cac-thanh-vien-cung-thao-luan-de-tai
trò chơi cùng nhau thảo luận để rút ra bài học thực tế

Buổi đào tạo một lần nữa được diễn ra vô cùng tốt đẹp, giúp các bạn TTS của trường ĐH GTVT học hỏi, năng cao kiến thức tư duy của bản thân để có thể áp dụng trong công việc tương lai. 

Tin liên quan

Thong ke
Đăng ký nhận tin (tiếng Nhật, học bổng, du học vv)

Kết nối với chúng tôi

 

. HOTLINE TƯ VẤN: 0896670502