12/08/2018, 15:30

ScrumBut Là gì

Nếu như người làm lĩnh vực cntt có quan niệm: chỉ cần có internet là sống được, Nhưng muốn đời sống nâng cao thì phải cần tới Framework =)). Và trong bài viết ngày hôm nay, mình xin đề cập tới ScrumBut - một mô hình tuân thủ nguyên lý khoa học của Scrum Framework trong hệ tư tưởng Agile. 1/ ...

Nếu như người làm lĩnh vực cntt có quan niệm: chỉ cần có internet là sống được, Nhưng muốn đời sống nâng cao thì phải cần tới Framework =)).
Và trong bài viết ngày hôm nay, mình xin đề cập tới ScrumBut - một mô hình tuân thủ nguyên lý khoa học của Scrum Framework trong hệ tư tưởng Agile.

1/ Agile là gì

Agile là một tập hợp các nguyên lý dành cho phát triển phần mềm, trong đó khuyến khích việc lập kế hoạch thích ứng, phát triển tăng dần, chuyển giao sớm, và cải tiến liên tục. Agile cũng chủ trương thích ứng nhanh chóng với các thay đổi.

Agile không định nghĩa một phương pháp cụ thể để đạt được những điều này, nhưng lại có nhiều phương pháp phát triển phần mềm khác nhau thỏa mãn và hướng theo các tiêu chí đó.

Mục đích của các phương pháp Agile là giúp các doanh nghiệp đạt được sự linh hoạt (Agility), từ đó nâng cao sức cạnh tranh và phát triển bền vững. Các phương pháp Agile đã thay đổi diện mạo thế giới không chỉ trong Phát triển phần mềm mà còn đang thể hiện giá trị trong các lĩnh vực khác như Marketting (Agile Marketting), giáo dục (EduScrum, Lean Edu, v.v.), thiết kế (Lean UX, Design Thinking), khởi nghiệp (Lean Startup) và Phần cứng.

Agile hoạt động dựa trên những tôn chỉ:

  • “Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ”
  • “Sản phẩm xài được quan trọng hơn tài liệu về sản phẩm”
  • “Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng”
  • “Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch”

2/ Scrum

Scrum là một quy trình quản lý và kiểm soát được áp dụng trong các dự án phát triển phần mềm 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. Scrum cũng được coi là một bộ tập quán hay một khung làm việc được đưa ra để áp dụng trong phát triển phần mềm.

Một quy trình scrum sẽ có đầy đủ những quy tắc, nguyên lý và các giá trị mang lại từ nó. Để áp dụng Scrum vào trong thực tế phát triển phần mềm, trước hết chúng ta cần phải nắm một số khái niệm như: Scrum team bao gồm

  • Product Owner
  • Development Team
  • Scrum Master

Các events trong Scrum bao gồm

  • Sprint
  • Sprint Planning
  • Daily Scrum
  • Sprint Review
  • Sprint Retrospective

Hiện vật trong Scrum

  • Product Backlog
  • Sprint Backlog
  • Increment

Với những khái niệm căn bản trên, các bạn có thể tìm kiếm trên google, có rất nhiều thông tin giải thích và khá rõ ràng.

3/ Bắt đầu áp dụng Scrum

Bây giờ có lẽ bạn đã hiểu được rằng không phải ai cũng áp dụng được Scrum một cách hiệu quả. Theo số liệu thống kê thì 95% các công ty khi triển khai bị thất bại trong giai đoạn này. Bởi vì :

  • Nguyên lý Agile và Scrum Framework rất đơn giản nhưng để đội nhóm, chủ sở hữu sản phẩm và các đối tượng khác liên quan (hay còn gọi stakeholders) hiểu và tuân thủ chặt chẽ là điều không dễ chút nào. Hiểu đúng và hiểu đủ là điều kiện kiên quyết làm nền tảng cho việc triển khai.
  • Hơn nữa, Khi triển khai thì phải đảm bảo phù hợp với văn hoá, con người, môi trường, đặc thù của dự án…

Mặc dù scrum triển khai có thể thất bại, nhưng những mô hình tạo ra tính thống nhất mà vẫn đảm bảo sự hài hoà cho các vấn đề về đặc thù dự án, văn hoá, con người khác nhau và vẫn đảm bảo tuân thủ chặt chẽ nguyên lý khoa học của Scrum framework - người ta hay gọi vui là ScrumBut.

Một ScrumBut có cú pháp như sau: Chúng tôi thực hiện Scrum, tuy nhiên vì lý do xxx, nên chúng tôi làm yyy…. Ví dụ như:

  • Chúng tôi thực hiện Scrum, tuy nhiên daily standup mỗi ngày là quá nhiều, nên chúng tôi thực hiện chúng cách ngày.
  • Chúng tôi thực hành Scrum nhưng sử dụng 5 giờ cho sự kiện Sprint Retrospective
  • ....

ScrumBUT đương nhiên là không được khuyến nghị từ các tổ chức đào tạo Scrum. Nhưng theo tôi, việc thực hành Scrum hay ScrumBUT không quan trọng, nếu việc làm đó mang lại hiệu quả cao. Điều quan trọng là: Nhóm có nhận ra mình đang thực hành Scrum hay ScrumBUT không? Nhóm thực hành ScrumBUT vì không thể thực hành đúng Scrum hay cần sự điều chỉnh? Có lý do, bằng chứng nào cho thấy việc thực hành ScrumBUT cho hiệu quả cao hơn không? Nếu 3 câu hỏi đó được trả lời thoả đáng, việc thực hành ScrumBUT sẽ cho hiệu quả cao và nên được khuyến khích. Tuy vậy, việc thực hành ScrumBUT nếu thiếu những lý thuyết thường là cạm bẫy, hãy cẩn thận.

Nhưng nếu có quá nhiều BUT, nhóm cần biết rằng mình đã không còn thực hành ScrumBUT nữa, mà đang đi theo 1 quy trình hầu như không còn liên quan tới Scrum. Lúc đó nhóm cần một tên gọi khác cho quy trình của mình, đừng sử dụng Scrum. Nhưng nếu vậy, nhóm cần Scrum để làm gì? Chỉ có 2 trường hợp dẫn tới kết quả này: hoặc nhóm đã có hiểu biết và thực hành rất cao để đưa ra một phương pháp khác (rất ít); hoặc nhóm đang trong giai đoạn “chưa hiểu gì về Scrum”.

Như vậy, Hiểu đúng và hiểu đủ Scrum FrameWork để đưa ra một mô hình ScrumBut phù hợp cho team để mang lại hiệu quả cao cũng vô cùng khó khăn và cạm bẫy. Nó đòi hỏi người Scrum Master phải vừa giỏi về lý thuyết, vừa giỏi về thực tiễn và quan trọng là phải có phương pháp huấn luyện phù hợp.

0