Tìm bài viết phù hợp

Agile Scrum và những điều cơ bản

08/11/22 07:14

Agile là gì?

Agile là một quy trình cho phép một nhóm quản lý dự án hiệu quả hơn bằng cách chia nhỏ dự án thành nhiều giai đoạn, mỗi giai đoạn cho phép hợp tác một cách nhất quán với các bên liên quan để thúc đẩy các cải tiến ổn định ở mọi giai đoạn. Agile cũng cho phép nhóm quản lý dự án đẩy nhanh tiến độ của dự án hơn thông thường.

Agile Manifesto (Tuyên ngôn Agile)

Agile lần đầu tiên được mô tả trong Tuyên ngôn Agile vào năm 2000 bởi một nhóm các nhà phát triển, những người đã tìm ra một phương pháp viết phần mềm mới. Tuyên ngôn trích dẫn bốn giá trị:

  • Cá nhânsự tương tác hơn là quy trìnhcông cụ;
  • Phần mềm chạy tốt hơn là tài liệu đầy đủ;
  • Cộng tác với khách hàng hơn là đàm phán hợp đồng;
  • Phản hồi với các thay đổi hơnbám sát kế hoạch.

Hiểu một cách đơn giản là tuyên ngôn Agile sẽ ưu tiên các giá trị bên trái hơn là bên phải dù chúng vẫn còn giá trị.

12 nguyên tắc của tuyên ngôn Agile

Tuyên ngôn Agile cũng ban hành 12 nguyên tắc liên quan đến phát triển phần mềm và sau đó được chỉnh sửa lại để phù hợp với quan điểm rộng rãi hơn của người dùng:

  1. Sự hài lòng của khách hàng
  2. Giao hàng sớm và liên tục
  3. Đón nhận những thay đổi
  4. Giao hàng thường xuyên
  5. Sự hợp tác của các doanh nghiệp và nhà phát triển
  6. Nỗ lực của mỗi cá nhân
  7. Đối thoại trực tiếp sẽ được ưu tiên
  8. Đảm bảo chức năng của sản phẩm
  9. Chú trọng vào kỹ thuật
  10. Sự tối giản
  11. Các đội tự tổ chức
  12. Quy định, phản ánh và điều chỉnh

Scrum là gì?

Nói một cách ngắn gọn, Scrum là một quy trình phát triển phần mềm theo phương pháp Agile. Chính vì thế, Scrum tuân thủ các nguyên tắc của Agile Manifesto.

Tuy nhiên, Agile Scrum không phải là một. Agile là một phương pháp, bao gồm những giá trị cốt lõi và nguyên tắc nhất định còn Scrum là quy trình “hiện thực hóa” những giá trị và nguyên tắc của Agile.

Khung làm việc (Framework) Scrum có gì?

Để có thể dùng Scrum, chúng ta cần hiểu rõ và vận dụng đúng các thành tố tạo nên Scrum bao gồm các giá trị cốt lõi (còn gọi là “ba chân”, hay ba trụ cột của Scrum), các vai trò, các sự kiện, và các công cụ (artifacts) đặc thù của Scrum.

Vậy thì ba chân (hay giá trị cốt lõi) của Scrum là gì?

Minh bạch (transparency)

Muốn thành công với Scrum, thông tin liên quan tới quá trình phát triển phải minh bạch và thông suốt. Các thông tin đó có thể là: tầm nhìn (vision) về sản phẩm, yêu cầu khách hàng, tiến độ công việc, các khúc mắc và rào cản v.v.

Từ đó mọi người ở các vai trò khác nhau có đủ thông tin cần thiết để tiến hành các quyết định có giá trị để nâng cao hiệu quả công việc.

Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.

Thanh tra (inspection)

Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc phát lộ các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến được với các bên tham gia dự án. Truy xét kỹ càng và liên tục là cơ chế khởi đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.

Thích nghi (adaptation)

Scrum rất linh hoạt như các phương pháp Agile khác. Nhờ đó nó mang lại tính thích nghi rất cao. Dựa trên các thông tin minh bạch hóa từ các quá trình thanh tra và làm việc, Scrum có thể phản hồi lại các thay đổi một cách tích cực, nhờ đó mang lại thành công cho dự án.

Ba Vai trò trong Scrum là gì?

Trong Scrum, đội ngũ tham gia phát triển phần mềm được phân chia ra ba vai trò cùng với trách nhiệm rõ ràng để đảm bảo tối ưu hóa các công việc đặc thù như sau:

  • Product Owner (chủ sản phẩm): Là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.
  • Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum.
  • Development Team (Đội sản xuất, hay Nhóm phát triển): Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi các yêu cầu được tổ chức trong Product Backlog thành chức năng của hệ thống.

Bốn Cuộc họp (4 Events)

Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt (các cuộc họp) nhằm tạo môi trường và quy cách hoạt động và cộng tác cho các thành viên trong dự án.

Sprint là một phân đoạn lặp đi lặp lại trong quy trình phát triển phần mềm, thường có khung thời gian ngắn (từ 1 – 4 tuần).

Sprint Planning (Họp Kế hoạch Sprint)

Nhóm phát triển gặp gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint. Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ.

Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm.

Daily Scrum (Họp Scrum hằng ngày)

Scrum Master tổ chức cho Đội sản xuất họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint.

Sprint Review (Họp Sơ kết Sprint)

Cuối Sprint, nhóm phát triển cùng với Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.

Sprint Retrospective (Họp Cải tiến Sprint)

Dưới sự trợ giúp của Scrum Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.

Các công cụ (artifacts) Scrum là gì?

Scrum sử dụng các công cụ rất đơn giản nhưng hiệu quả để trợ giúp công việc.

Product Backlog

Đây là danh sách ưu tiên các tính năng (feature) hoặc đầu ra khác của dự án. Có thể hiểu như là danh sách yêu cầu (requirement) của dự án.

Product Owner chịu trách nhiệm sắp xếp độ ưu tiên cho từng hạng mục (Product Backlog Item) trong Product Backlog dựa trên các giá trị do Product Owner định nghĩa (thường là giá trị thương mại business value).

Sprint backlog

Đây là bản kế hoạch cho một Sprint; là kết quả của buổi họp lập kế hoạch (Sprint Planning).

Với sự kết hợp của Product Owner, nhóm sẽ phân tích các yêu cầu theo độ ưu tiên từ cao xuống thấp để hiện thực hóa các hạng mục trong Product Backlog dưới dạng danh sách công việc (TODO list).

Burndown Chart

Đây là biểu đồ hiển thị xu hướng của dự án dựa trên lượng thời gian cần thiết còn lại để hoàn tất công việc.

Burndown Chart có thể được dùng để theo dõi tiến độ của Sprint (được gọi là Sprint Burndown Chart) hoặc của cả dự án (Project Burndown Chart).

Biểu đồ burndown không phải là một thành tố tiêu chuẩn của Scrum theo định nghĩa mới, nhưng vẫn được sử dụng rộng rãi do tính hữu ích của nó.

Lợi ích của Agile

Đối với khách hàng

Khách hàng nhận thấy rằng nhà cung cấp phản hồi nhanh hơn với các yêu cầu phát triển. Các tính năng có giá trị cao được phát triển và phân phối nhanh hơn với chu kỳ ngắn, so với chu kỳ dài hơn được các quy trình “thác nước” truyền thống được ưa chuộng.

Đối với nhà cung cấp

Các nhà cung cấp giảm lãng phí bằng cách tập trung nỗ lực phát triển vào các tính năng có giá trị cao đồng thời giảm thời gian đưa ra thị trường so với quy trình “thác nước”, từ đó giảm chi phí và tăng hiệu quả. Sự hài lòng của khách hàng được cải thiện đồng nghĩa với việc giữ chân khách hàng tốt hơn, kéo theo nhiều lượt giới thiệu khách tiềm năng hơn.

Đối với nhóm phát triển phần mềm

Các thành viên trong nhóm thích công việc phát triển và thích thấy sản phẩm của họ được sử dụng và đánh giá cao. Scrum mang lại lợi ích cho các thành viên trong Nhóm bằng cách giảm bớt công việc phi năng suất (ví dụ: viết thông số kỹ thuật hoặc các hiện vật khác mà không ai sử dụng) và cho họ nhiều thời gian hơn để làm công việc mà họ yêu thích. Các thành viên trong nhóm cũng nhận thức được rằng công việc của họ được coi trọng, bởi vì các yêu cầu được lựa chọn để tối đa hóa giá trị cho khách hàng.

Đối với người quản lý sản phẩm (Product manager)

Product manager, những người thường đảm nhiệm vai trò Product owner, chịu trách nhiệm làm cho khách hàng hài lòng bằng cách đảm bảo rằng công việc phát triển phù hợp với nhu cầu của khách hàng. Scrum làm cho việc liên kết này trở nên dễ dàng hơn bằng cách cung cấp các cơ hội để sắp xếp lại thứ tự ưu tiên công việc một cách thường xuyên, nhằm đảm bảo mang lại giá trị tối đa.

Đối với người quản lý dự án (Project manager)

Project manager (và những người khác) đảm nhiệm vai trò ScrumMaster nhận thấy rằng việc lập kế hoạch và theo dõi dễ dàng hơn và cụ thể hơn, so với các quy trình “thác nước”. Việc tập trung vào theo dõi cấp độ nhiệm vụ, sử dụng Biểu đồ Burndown để hiển thị tiến độ hàng ngày và các cuộc họp Scrum Hàng ngày, tất cả đều mang lại cho Project manager nhận thức sâu sắc về trạng thái của dự án mọi lúc. Sự nhận thức này là chìa khóa để giám sát dự án, đồng thời nắm bắt và giải quyết các vấn đề một cách nhanh chóng.

Lợi ích đối với PMO và Giám đốc điều hành

Scrum cung cấp khả năng hiển thị cao về trạng thái của một dự án phát triển, hàng ngày. Các bên liên quan bên ngoài, chẳng hạn như giám đốc điều hành và nhân sự trong Văn phòng quản lý dự án, có thể sử dụng khả năng hiển thị này để lập kế hoạch hiệu quả hơn và điều chỉnh chiến lược của họ dựa trên nhiều thông tin khó hơn và ít suy đoán hơn.

Tạm kết

Qua bài viết trên, chúng ta đã tìm hiểu một cách khái quát về phương pháp Agile Scrum cũng như những lợi ích mà chúng mang lại trong quản lý dự án. HR1Tech hy vọng rằng bài viết này sẽ hữu ích cho quý đọc giả và mong rằng sẽ được đồng hành cùng các bạn trong các blog tiếp theo.

HR1Tech - Nền Tảng Tuyển Dụng Trực Tuyến Ngành CNTT

Tìm việc và tuyển dụng ngành đa ngành. Khám phá thêm tại: www.hr1jobs.com

Phát triển sự nghiệp

Xem tất cả
QA và QC trong IT Khác Nhau Như Thế Nào?

QA và QC là hai khái niệm quen thuộc trong ngành IT, nhưng không phải ai cũng hiểu rõ sự khác biệt giữa chúng.

3 Bí Quyết Học Tốt Tiếng Anh Cho Dân Công Nghệ Thông Tin

Dù bận rộn với code và thuật toán, dân IT vẫn cần trang bị cho mình khả năng tiếng Anh vững chắc. Với tốc độ thay đổi chóng mặt của công...

Top 6 Kênh Youtube Về Lập Trình Mà Bạn Không Nên Bỏ Qua

Việc tự học lập trình đã trở nên dễ dàng hơn bao giờ hết khi internet và mạng xã hội xuất hiện. Trong đó, YouTube là một nguồn tài nguyên...

Con Gái Học Công Nghệ Thông Tin Nên Chọn Ngành Nào?

Các bạn nữ ngày nay đã dễ dàng tìm thấy những cơ hội và lĩnh vực phù hợp với sở thích và năng lực của mình trong ngành IT. Vậy con gái...

Top 4 Công Cụ Hỗ Trợ Học Tập IT Hiệu Quả Cho Sinh Viên

Sinh viên IT thường phải đối mặt với nhiều thử thách trong quá trình học tập, từ việc nắm vững kiến thức lập trình đến quản lý thời gian...

IT Outsourcing Là Gì? Có Gì Khác So Với IT Product?

IT Outsourcing là một khái niệm phổ biến trong ngành công nghệ thông tin, nhưng liệu bạn đã thực sự hiểu rõ IT Outsourcing là gì và nó...