Chào mừng trở lại!

Bạn đã có tài khoản? Đăng nhập ngay

Xin chào!

Chưa có tài khoản? Đăng ký ngay

Quy trình phát triển phần mềm Agile và Scrum

Trong bài viết này Team Code sẽ giải thích các khái niệm cơ bản nhất cũng như những giá trị cốt lõi về Agile và quy trình Scrum trong phát triển phần mềm để bạn có thể nắm chắc được.

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:

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:

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.

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.

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:

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.4. 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ờ.

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 Frontend và Khóa Học Backend.

Các bài viết liên quan

Mô hình học T-shaped rộng kiến thức, sâu chuyên môn

T-shaped hay còn gọi là mô hình chữ T, xuất hiện từ những năm 1980 và đã trở thành một khái niệm phổ biến trong lĩnh vực quản lý nhân sự và phát triển cá nhân. Trong bài viết này, Team Code sẽ lý giải các khía cạnh của mô hình T-shaped và chia sẻ với bạn cách để xây dựng và phát triển đội ngũ nhân sự T-shaped cho doanh nghiệp. Hãy cùng theo dõi nhé!
Đọc thêm

Những điều cần biết về công việc của lập trình viên

Trong thời đại công nghệ thông tin ngày nay, lập trình là một ngành đóng vai trò cực kì quan trọng cho sự phát triển kinh tế. Do đó có rất nhiều cơ hội tốt mở ra đối với những bạn theo ngành nghề này.
Đọc thêm

7 nguyên tắc kiểm thử cốt lõi cần nắm vững

Để thực hiện kiểm thử một cách hiệu quả, có 7 nguyên tắc cơ bản mà mọi chuyên gia kiểm thử phần mềm cần nắm vững. Những nguyên tắc này giúp các tester hiểu rõ hơn về quy trình. Trong bài viết này, hãy cùng Team Code tìm hiểu chi tiết về 7 nguyên tắc kiểm thử và cách áp dụng chúng trong thực tế.
Đọc thêm

Nên học C hay C++? Ngôn ngữ nào phổ biến hơn trong thời điểm hiện tại?

Trong thế giới lập trình, ngôn ngữ C và C++ đều là những công cụ mạnh mẽ và đã tồn tại trong nhiều thập kỷ. Cả hai đều được coi là nền tảng vững chắc cho nhiều ngôn ngữ lập trình hiện đại. Tuy nhiên, nhiều người mới bắt đầu thường đặt ra câu hỏi: “Nên học C hay C++? Ngôn ngữ nào phổ biến hơn trong thời điểm hiện tại?". Bài viết này Team Code sẽ giúp bạn giải đáp thắc mắc, hãy cùng tìm hiểu ngay nhé!
Đọc thêm

Mô hình MVC trong Java là gì? Tổng quan MVC và ứng dụng trong lập trình

Mô hình MVC trong Java không chỉ là một mô hình thiết kế phổ biến, mà còn là một công cụ mạnh mẽ giúp tối ưu hóa quá trình phát triển ứng dụng.
Đọc thêm