Agile-Scrum

Scrum có ích gì cho phát triển phầm 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ác 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).

LUYỆN THI CHỨNG CHỈ OCA

scrum-roles2.png

Scrum Team

Scrum Team chia làm 3 vai trò bao gồm những thành phần sau:

  • Product Owner: Nhiệm vụ của Product Owner là đảm bảo việc quản lý những công việc còn tồn đọng (Product backlog) của việc phát triển sản phẩm phần mềm. Product Owner phải liên tục cập nhật thông tin cho các thành viên trong team để họ hiểu về yêu cầu hay các tính năng cần có của sản phẩm ngay cả khi họ không trực tiếp phát triển tính năng đó.
  • Development Team: là những lập trình viên sẽ tham gia vào việc phát triển từng tính năng cụ thể. Các lập trình viên này có thể sẽ có kỹ năng khác nhau và một số sẽ giỏi về những kỹ năng nhất định. Tuy nhiên khi sử dụng Scrum thì tất cả các thành viên của Development Team yêu cầu phải có khả năng làm việc thay thế vị trí của nhau và không ai chỉ chịu trách nhiệm phát triển một (hoặc một số) tính năng nhất định.
  • Scrum Master: sẽ chịu trách nhiệm cho việc lên kế hoạch để phân công công việc, sắp xếp thứ tự ưu tiên giải quyết những công việc tồn đọng nào có trong Backlog trước, tổ chức các buổi họp với Product Owner để theo dõi tình hình và nắm thông tin cần thiết.

Nguồn video: Học viện Agile

Các đối tượng, phương tiện của scrum (Artifacts)

scrum-artifacts-shapes-powerpoint.jpg
  • Product backlog: toàn bộ danh sách các yêu cầu, tính năng của sản phẩm. Danh sách này sẽ được cập nhật thường xuyên bởi PO và bất kỳ ai trong team Độ ưu tiên thứ tự của các tính năng sẽ được PO quyết định.
  • Sprint: 1 giai đoạn của dự án với thời gian cố định. Độ dài của 1 sprint sẽ được team và PO quyết định. Thông thường là từ 1 – 4 tuần.
  • Sprint backlog: các tính năng của sản phẩm sẽ được làm trong 1 sprint. Việc chọn các tính năng nào nên làm và thứ tự ưu tiên sẽ do PO lựa chọn, team cùng thảo luận ở buổi sprint planing. Team có quyền bỏ bớt hoặc đưa thêm tính năng vào trong sprint dựa trên thứ tự mà PO đưa ra dựa trên đánh giá thời gian. Lưu ý là scope – phạm vi của sprint không được thay đổi.
Sprint Backlog là gì? Hiểu đúng để không làm sai
  • Planing poker: quân bài ghi các con số để cho điểm đánh giá các tính năng trong 1 sprint
  • Velocity (Burn down chart): biểu đồ thể hiện kết quả mà team đã làm được trong 1 sprint.
burn_down.jpg

Các nghi thức trong Scrum (Ceremonies)

scrum-overview-7-638.jpg
  • Sprint planing meeting: Làm khi bắt đầu 1 sprint, PO thường sẽ mô tả và đưa ra thứ tự của các item trong Product backlog. Scrum team có thể đặt câu hỏi cho PO để hiểu hơn về sản phẩm. Sau đó team sẽ thảo luận và lựa chọn các item sẽ làm được trong sprint này.
  • Daily meeting: thực hiện hàng ngày và từng thành viên trong team nếu các vấn đề để trả lời cho 3 câu hỏi
    • Hôm qua làm gì?
    • Hôm nay sẽ làm gì?
    • Có gặp vấn đề gì không?

Lưu ý ở đây là chỉ nên nói theo kiểu mô tả ngắn, nêu vấn đề chứ không nên đi sâu vào mô tả chi tiết, rồi trình bày giải pháp bla bla.. Các vấn đề gặp phải hay thảo luận sẽ được làm sau buổi daily meeting này với những người liên quan. Để tránh mất nhiều thời gian của cả đội.

  • Sprint review/Demo meeting: Được thực hiện khi gần kết thúc 1 sprint: trong buổi này team sẽ show( demo) các tính năng đã làm được trong sprint. Team và PO sẽ review và quyết định những task nào được coi là xong ( done). Với những feature chưa done sẽ được đẩy trở lại product backlog và xếp lại thứ tự
  • Sprint retrospection meeting: thực hiện gần khi kết thúc 1 sprint sau buổi sprint review: Cả team sẽ nhìn lại công việc trong sprint này để cải thiện và đạt hiệu quả hơn trong sprint tiếp theo. Có thể sử dụng các tool để thu thập các con số thông kê về số point( điểm estimate cho các feature ) thực hiện được, số bugs phát sinh. Team cùng thảo luận về tech, về quy trình, cách thức làm việc trao đổi, best practice để có thể làm tốt hơn.

Các rule cần định nghĩa trong Scrum

  • Enough to start: không chú trọng vào quy trình tài liệu, làm thế nào để có thể đưa ra được sản phẩm sớm nhất.
  • Definition of done: Đưa ra định nghĩa của team 1 task, 1 tính năng như thế nào được coi là hoàn thành.
  • Time box: giới hạn thời gian của sprint , của các buổi meeting phải tuân thủ đúng như thời gian đưa ra. Để đảm bảo scrum team hoạt động ổn định.

Kết luận

Bạn cần lưu ý rõ điều này Agile không phải là “một phương pháp” mà là tư duy, cách tiếp cận, là tập hợp những phương pháp, sự thực hành dựa trên những giá trị và nguyên tắc nêu ra trong bản tuyên ngôn Agile.

Mong rằng những chia sẻ trên đây giúp bạn nắm được các khái niệm cơ bản về Scrum cũng như áp dụng tốt vào công việc của mình. Chúc bạn học tốt!

Học Java Core: https://hocjava.com/category/java-core/


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!