Get in touch
or send us a question?
CONTACT

Tìm hiểu về quy trình phát triển phần mềm AGILE – SCRUM

1. Agile là gì?

Trong những năm gần đây từ khóa Agile được nhắc đến khá nhiều trong các lĩnh vực công nghệ và sản xuất, đặc biệt là lĩnh vực công nghệ thông tin, phát triển phần mềm.

Vậy Agile là gì? Vì sao các doanh nghiệp lại muốn áp dụng Agile vào trong phát triển dự án.

Có thể định nghĩa Agile là mô hình phát triển phần mềm linh hoạt, Agile là viết tắt của Agile Software Development. Agile phát triển phần mềm dựa trên phương pháp lặp (iterative) và tăng trưởng (incremental). Các yêu cầu và giải pháp được phát triển thông qua sự phối hợp, tưởng tác giữa các nhóm tự tổ chức chéo. Giá trị của Agile mang lại đó là giúp đội ngũ phát triển sản phẩm mang đến sản phẩm nhanh hơn, chất lượng và tính chính xác cao hơn, thích ứng với sự thay đổi hơn.

2. Tuyên ngôn agile là gì?

Tuyên ngôn Agile là một lời tuyên bố về các giá trị và nguyên tắc thể hiện bằng phương pháp Agile. Agile được tạo thành từ 4 giá trị cốt lõi và 12 nguyên tắc chính.

3. Giá trị cốt lõi trong Agile:

  1. Cá nhân, tưởng tác hơn là quy trình công cụ
  2. Phần mềm sử dụng tốt hơn là tài liệu đầy đủ
  3. Cộng tác với khách hàng hơn là đàm phán hợp đồng
  4. Phản hồi với thay đổi hơn là bám sát kế hoạch

4. Nguyên tắc trong Agile:

  1. Ưu tiên sự hài lòng của khách hàng thông qua việc giao phần mềm sớm và liên tục.
  2. Đáp ứng yêu cầu thay đổi trong suốt quá trình phát triển
  3. Ra mắt thường xuyên phần mềm làm việc.
  4. Hợp tác giữa các bên liên quan và các nhà phát triển kinh doanh trong suốt dự án
  5. Hỗ trợ, tin tưởng và thúc đẩy những người liên quan
  6. Cho phép tương tác trực tiếp
  7. Phần mềm làm việc là thước đo chính của sự tiến bộ
  8. Các quy trình cần nhanh chóng để hỗ trợ tốc độ phát triển nhất quán của nhóm
  9. Chú ý đến chi tiết kỹ thuật và thiết kế giúp tăng cường sự nhanh nhẹn, linh hoạt
  10.  Sự đơn giản
  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ẽ được làm ra bởi các nhóm tự tổ chức.
  12. Đội sản xuất sẽ thường xuyên suy nghĩ về việc làm sao để trở nên hiệu quả hơn, sau đó họ sẽ điều chỉnh và thay đổi các hành vi của mình cho phù hợp.

5. Scrum là gì?

Scrum là một “framework” của Agile. Scrum là khung quy trình được áp dụng phổ biến nhất hiện nay. Ngoài ra Agile còn có framework Kanban cũng khá phổ biến.

Scrum thường được sử dụng để quản lý phát triển sản phẩm và phần mềm phức tạp, sử dụng các thực hành lặp và tăng dần. 

Scrum làm tăng đáng kể năng suất và giảm thời gian đến lợi ích liên quan đến các quy trình thác nước (waterfall) cổ điển. 

Scrum cho phép các tổ chức điều chỉnh sự thay đổi yêu cầu một cách nhanh chóng và tạo ra một sản phẩm đáp ứng các mục tiêu kinh doanh đang phát triển. Một quy trình Scrum có thể giúp:

  • Đẩy nhanh quá trình ra đời của sản phẩm
  • Tăng chất lượng sản phẩm
  • Linh hoạt với sự thay đổi yêu cầu của các bên liên quan
  • Kiểm soát tốt chất lượng và thời gian phát triển sản phẩm

6. Các vai trò trong Scrum

Trong mô hình Scrum có 3 vai trò chính đó là Chủ sản phẩm (product owner), Scrummaster, nhóm phát triển sản phẩm (development team).

  • Scrum Master: Là người chịu trách nhiệm cho quá trình phát triển sản phẩm đi đúng hướng, suôn sẻ. Scrum Master có chức năng loại bỏ các trở ngại ảnh hưởng đến năng suất của nhóm. Tạo điều kiện để các cuộc họp diễn ra suôn sẻ, nhóm vận hành đúng mục tiêu ban đầu. Về mặt thực tế Scrum Master là người hiểu rất rõ về Srum, là người hướng dẫn, dẫn dắt nhóm và các bên liên quan đi theo đúng mô hình này. Scrum Master còn là “trọng tài” đứng giữa các bên liên quan, đảm bảo rằng đội nhóm ít bị xáo trộn nhất có thể, Scrum Master luôn khuyến khích, tạo điều kiện để các thành viên của nhóm ra quyết định, chịu trách nhiệm trước nhiệm vụ, giúp nhóm ngày càng phát triển.
  • Product Owner: Hay còn được gọi là chủ sản phẩm. Product owner là người nắm bắt các yêu cầu. PO là người cầu nối giữa doanh nghiệp, khách hàng, các bên liên quan và nhóm phát triển sản phẩm. PO là người có nhiều kĩ năng của BA (Business analyst). PO là người có tầm nhìn về sản phẩm cả về ngắn hạn và dài hạn. Công việc của Product Owner là quản lý backlog, phân tích yêu cầu và sản phẩm, đưa ra tầm nhìn của sản phẩm. Ngoài ra PO cũng tham gia vào điều hướng team đi theo đúng lộ trình phát triển sản phẩm. PO là người cần kĩ năng phân tích tốt, có góc nhìn về sản phẩm, kinh doanh tốt.
  • Development Team: Là những người trực tiếp làm ra sản phẩm. Development team chuẩn thường từ 3-9 người là phù hợp. Team phải đủ lớn để làm sản phẩm và cũng vừa đủ nhỏ để duy trì sự linh hoạt, nhanh nhẹn trong Print. Nếu ít hơn 3 thành viên thì thường giảm sự tưởng tác, dẫn đến ảnh hướng đến năng suất. Nếu nhiều hơn quá 9 thành viên thì sẽ khó phối hợp tốt và sâu sát. Development Team là một đội self-organize (tự tổ chức) và self-manage (tự quản) công việc của mình trong Sprint. Development Team là một đội Cross-Functiona team có đủ kỹ năng để thực hiện tất cả các công việc cần trong một Sprint để hoàn thành các nhiệm vụ.