fbpx

Quy Trình Phát Triển Phần Mềm Agile Và Scrum

Agile và Scrum là gì

Hiện nay có rất nhiều công ty phỏng vấn đòi hỏi ứng viên cần phải biết thêm về Agile Scrum.

Vậy Agile Scrum là gì? Tại sao nó lại được nhiều công ty sử dụng.

Thực ra, Agile và Scrum là hai khái niệm khác nhau.

Nếu bạn muốn biết rõ hơn thì nhớ đọc hết bài viết nhé!

1. Agile là gì?

Agile là một nguyên lý phát triển phần mềm dựa trên 4 giá trị cốt lõi:

1.1 4 giá trị cốt lõi (Values/Manifesto)

  • Sự tương tác của mỗi cá nhân quan trọng hơn quy trình và công cụ.
  • Bỏ qua sự phức tạp trong khâu thiết kế tài liệu, mà thay vào đó là tập trung vào sự vận hành của phần mềm.
  • Khuyến khích khách hàng tham gia vào quá trình phát triển dự án.
  • Đáp ứng dễ dàng với các tình huống phát sinh và thay đổi kế hoạch.

Bên cạnh đó, Agile còn dựa trên 12 quy tắc:

1.2 12 Quy tắc (Principles)

  • Làm hài lòng khách hàng luôn là ưu tiên cao nhất trong xuyên suốt quá trình phát triển dự án.
  • Chấp nhận mọi yêu cầu thay đổi chức năng, thậm chí ở cuối giai đoạn phát triển.
  • Các chức năng được hoàn thiện và bàn giao đến khách hàng liên tục sau mỗi khoảng thời gian cố định (thường từ 2 tuần đến 1 tháng)
  • Khách hàng và các thành viên phải làm việc cùng nhau mỗi ngày.
  • Môi trường làm việc duy trì động lực cho mỗi thành viên, hỗ trợ họ khi cần thiết và tin tưởng họ sẽ hoàn thành công việc.
  • Thảo luận trực tiếp (mặt đối mặt) là phương pháp hiệu quả nhất để truyền đạt thông tin.
  • Tiến độ được đo lường dựa trên mức độ hoàn thiện thực tế của sản phẩm.
  • Thúc đẩy quá trình phát triển ổn định và lâu dài.
  • Tư duy cải tiến liên tục để sản phẩm ngày càng tốt hơn.
  • Đơn giản hóa quy trình. Loại bỏ các khâu cồng kềnh không cần thiết.
  • Nhóm tự tổ chức. Nghĩa là mỗi thành viên sẽ tự quyết định việc mình cần làm, tự cam kết và tự chịu trách nhiệm.
  • Thường xuyên đánh giá lại tình hình dự án để có thể đưa ra điều chỉnh phù hợp.

Tuy nhiên, để thực hiện nguyên lý Agile trong thực tế, chúng ta cần phải có từng bước rõ ràng và cụ thể.

Hiện nay, có rất nhiều công cụ (frameworks) giúp bạn làm việc này, như là: Scrum, Kanban, Lean, DSDM, …

Trong số đó, Scrum là một trong những frameworks được sử dụng phổ biến nhất.

Các Frameworks của Agile

Vậy quy trình thực hiện Scrum như thế nào? Vai trò của mỗi thành viên trong Scrum là gì? Chúng ta hãy cùng tìm hiểu tiếp nhé!

2. Scrum

Scrum chia quá trình phát triển dự án thành nhiều giai đoạn giống nhau.

Mỗi giai đoạn có tên gọi là Sprint.

2.1 Sprint

1 Sprint thường kéo dài khoảng từ 2 đến 3 tuần và bao gồm các hoạt động (events) như sau:

  • Planning: Lên kế hoạch.
  • Daily Scrum: Họp ngắn mỗi ngày.
  • Review: Kiểm tra chức năng vừa hoàn thành.
  • Retrospective: Tổng kết và rút kinh nghiệm cho Sprint kế tiếp.

Trước khi tìm hiểu nội dung chi tiết của mỗi events, bạn cần phải nắm rõ vai trò của mỗi thành viên trong Scrum.

3. Vai trò (Roles)

Bạn lưu ý, vai trò của mỗi thành viên có thể linh động thay đổi trong quá trình phát triển dự án.

Cụ thể là một thành viên có thể đóng nhiều vai trò khác nhau.

Sau đây là các vai trò trong Scrum:

3.1 Product Owner

Product owner là người quyết định sản phẩm sẽ có những chức năng gì và thứ tự ưu tiên thực hiện của các chức năng.

Bên cạnh đó, product owner cũng là người thấu hiểu khách hàng cuối nhất.

3.2 Scrum Master

Scrum master có trách nhiệm hướng dẫn và đảm bảo các thành viên thực hiện đúng quy trình Scrum.

3.3 Development Team

Đây là những người trực tiếp gia công phần mềm: phân tích yêu cầu, thiết kế, viết mã, testing,…

Tiếp theo, chúng ta sẽ quay lại tìm hiểu chi tiết về các hoạt động (events) trong Scrum.

4. Events

Scrum chia quá trình phát triển dự án thành nhiều Sprint. Mỗi Sprint bao gồm các hoạt động (events) như sau:

Các hoạt động trong 1 Sprint

4.1 Planning

Trước khi planning diễn ra, product owner sẽ lên kế hoạch và xác định những mục tiêu cần hoàn thành trong Sprint này.

Product owner cũng xem xét lại những vấn đề của Sprint trước đó để có thể đưa ra giải pháp khắc phục.

Khi planning diễn ra, product owner cùng các thành viên còn lại sẽ phân tích và thống nhất cụ thể những đầu công việc cần làm:

  • Nội dung mô tả chi tiết chức năng.
  • Thời hạn hoàn thành.
  • Tiêu chuẩn đầu ra.

4.2 Daily Scrum

Daily Scrum là hoạt động diễn ra thường xuyên nhất trong một Sprint.

Bạn có thể hiểu đơn giản Daily Scrum là những buổi họp ngắn được tổ chức mỗi ngày (thời lượng tối đa 15 phút)

Mục tiêu của Daily Scrum là để các thành viên chia sẻ nhanh về tiến độ và những khó khăn phát sinh trong dự án, từ đó có thể đưa ra giải pháp khắc phục kịp thời.

4.3 Review

Review thường là buổi họp kéo dài khoảng từ 30 phút đến 1 tiếng.

Mục tiêu của hoạt động này là nhằm đánh giá lại các chức năng vừa hoàn thành có hoạt động đúng hay không.

Sau đó là lấy ý kiến phản hồi từ product owner để cải thiện tốt hơn cho Sprint kế tiếp.

4.5 Retrospective

Đây là hoạt động cuối cùng của một Sprint:

  • Xem xét lại tiến độ và chất lượng thực tế của Sprint vừa rồi.
  • Xác định điều gì được và điều gì chưa được.
  • Cùng nhau thảo luận tìm ra giải pháp cải thiện cho Sprint kế tiếp.

Retrospective thường có thời lượng kéo dài khoảng từ 2 đến 4 giờ.

5. Kết luận

Agile là một nguyên lý (ý tưởng) phát triển phần mềm dựa trên 4 giá trị cốt lõi (values) và 12 quy tắc (principles).

Để áp dụng Agile vào thực tế, chúng ta có thể sử dụng nhiều công cụ (frameworks) và Scrum là một trong những công cụ phổ biến nhất hiện nay.

Agile và Scrum cũng được đưa vào nội dung đào tạo trong Khóa Học FrontendKhóa Học Backend.

Nếu quan tâm, bạn có thể xem chi tiết nội dung khóa học tại đây nhé:
http://letdiv.com/khoa-hoc

Tùng ViO

Tùng ViO

Mình là Tùng ViO, hiện tại đang là Founder và cũng là giảng viên tại LetDiv. Rất hân hạnh được làm quen với bạn!