Agile là gì? Scrum là gì? Các công cụ quản lý dự án theo Agile mà bạn nên biết

Agile là gì? Scrum là gì? Có rất nhiều phương thức phát triển phần mềm theo quy chuẩn, và một trong số đó là phương thức phát triển phần mềm theo mô hình Scrum. Nội dung bài viết này sẽ giảng giải các khái niệm cơ bản nhất cũng như những giá trị cốt lõi về Agile để chúng ta cũng có thể nắm chắc được.

Agile là gì?

Agile là một phương pháp phát triển phần mềm linh hoạt, là một hướng tiếp cận cụ thể cho việc quản lý dự án phần mềm. Nó gồm một quá trình thao tác làm việc tương tác và tích hợp để sở hữu thể đưa sản phẩm đến tay người dùng càng nhanh càng tốt.

Trong các dự án phần mềm, nhất là các dự án tất cả chúng ta sẽ gặp rất nhiều khó khăn trong việc thu thập đầy đủ và xác thực các requirements của product để lập plan tốt ngay từ trên đầu. Có quá nhiều vấn đề gây tác động đến việc phát triển phần mềm mà tất cả chúng ta không lường trước được. Ví dụ như những vấn đề có thể tới từ những yếu tố như kinh doanh, kỹ thuật, con người, thời kì ra mắt ….

Những phương pháp phát triển phần mềm Theo phong cách truyền thống ngày càng bộc lộ nhiều nhược điểm và tỷ lệ các dự án thất bại cao trong thời kỳ bùng phát của ngành công nghệ. Nhận ra vấn đề đó, một số member và đơn vị riêng lẻ đã đưa ra các phương pháp phát triển phần mềm tân tiến hơn và khác nhau để thích ứng với tình hình mới.

Những phương thức phát triển phần mềm này giúp phần nào xử lý được một số vấn đề nhưng lại phát sinh vấn đề khác về việc hiệp tác, kỹ thuật, phương tiện, hướng phát triển, san sớt ….

Vào năm 2001, bản tuyên ngôn Agile (Agile Manifesto) đã được thống nhất và ra đời bởi một nhóm người dân có uy tính trong phát triển phần mềm:

  • Individuals and interactions over processes and tools: Thành viên và sự tương tác hơn là quy trình và phương tiện
  • Working software over comprehensive documentation: Phần mềm chạy tốt hơn là tài liệu đầy đủ
  • Customer collaboration over contract negotiation: Hợp tác với khách hàng hơn là thương thuyết hợp đồng
  • Responding to change over following a plan: Phản hồi với sự thay đổi hơn là bám theo kế hoạch

1. Thành viên và sự tương tác hơn là quy trình và phương tiện

Đặt trọng tâm vào con người và sự tương hỗ giữa những thành viên trong team. Nếu dự án có những thành viên có năng lực, chịu thao tác làm việc cùng nhau thì sẽ mang đến thành công cho dự án.

Nếu dự án của bạn có quy trình thao tác làm việc tốt, được tương trợ bởi những phương tiện tốt nhất nhưng những thành viên không thống nhất hoặc cùng nhìn về một hướng thì khả năng dự án thất bại là rất lớn. Nói điều này sẽ không có tức thị phủ nhận tầm quan trọng của quy trình và phương tiện nhưng trong Agile nó được đặt sau yếu tố con người.

Quy trình là các thủ tục cấp thiết để phát triển dự án như thiết kế, sau đó đến lập trình, rồi kiểm tra QA/QC. Hay để mang ra một chức năng nào đó cần phải có sự đồng ý của phòng ban QA/QC …. Quy trình này do mỗi đơn vị quy định và bắt buộc những viên chức khi tham gia vào dự án phải tuân thủ.

Phương tiện là phần mềm được sử dụng trong dự án như : Phần mềm quản lý công việc, phần mềm quản lý source code, phần mềm quản lý lỗi… Có rất nhiều phương tiện được sử dụng để tương trợ một tổ chức vận hành.

2. Phần mềm chạy tốt hơn là tài liệu đầy đủ

Trong một số quy trình phát triển phần mềm, việc tạo ra và update các tài liệu về sản phẩm là bắt buộc. Nhóm lập trình viên không thể hoặc không đồng ý tiến hành công việc nếu không có tài liệu đặc tả về yêu cầu, thiết kế khối hệ thống.

Nhóm kiểm thử thì yêu cầu tài liệu về sản phẩm để sở hữu thể viết trường hợp kiểm thử và kiểm thử được. Nhóm QA đòi tất cả những tài liệu phải được viết trước lúc sản phẩm được giao cho khách hàng nếu không thì không đủ ĐK, chuẩn để giao sản phẩm cho khách hàng.

Việc viết tài liệu thật ra rất mất nhiều thời kì và được cho là rất chán. Ý tưởng ở đây là vì sao mình phải tập trung quá nhiều cho việc không cấp thiết mà không dành thời kì đó để trao đổi để hiểu thêm về công việc phải làm. Sau đó đúc rút và chỉ viết những gì mà mọi người cần đọc.

3. Hợp tác với khách hàng hơn là thương thuyết hợp đồng

Ta luôn nghe các câu này “Khách hàng là thượng đế” hay “khách hàng xoành xoạch đúng”. Tuy nhiên thì khách hàng có nhiều dạng. Cách duy nhất để sở hữu thể thao tác làm việc tốt là phải hiệp tác với khách hàng để hiểu được khách hàng muốn gì và cần gì để sở hữu thể tư vấn và kiểm soát và điều chỉnh thay vì chỉ dựa vào những điều đã quy định trong hợp đồng.

Trao đổi và thảo luận với khách hàng về việc cấp thiết có hay là không của một chức năng trong sản phẩm, từ đó quyết định là có nên làm hay là không. Tất nhiên để thuyết phục khách hàng thì nên cần có số liệu nghiên cứu cụ thể chẳng hạn.

4. Phản hồi với sự thay đổi hơn là bám theo kế hoạch

Có một điểm chung là hồ hết những dự án đều phải sở hữu sự thay đổi kiểm soát và điều chỉnh khi triển khai. Sự thay đổi đó có thể là thay đổi về requirements, thay đổi tech stack, thay đổi nhân sự, thay đổi deadline, thay đổi phương thức thao tác làm việc… mặc dù kế hoạch đã được định ra rõ ràng từ trên đầu.

Agile không khuyến khích cho việc thay đổi nhưng khuyến khích tất cả chúng ta tập thích ứng với thay đổi.

Một trong các nguyên tắc cơ bản của agile là “phần mềm chạy tốt đó là thước đo của tiến độ”. Nguyên tắc này giúp nhóm dám loại bỏ đi các công việc dư thừa không trực tiếp mang lại giá trị cho sản phẩm.

Để vận hành được cơ chế “thao tác làm việc dựa trên giá trị”, nhóm agile thường thao tác làm việc trực tiếp và thường xuyên với khách hàng, hiệp tác trực tiếp với họ để biết yêu cầu nào có độ ưu tiên cao hơn nữa, mang lại giá trị hơn sớm nhất có thể cho dự án. Nhờ đó các dự án agile thường giúp khách hàng tối ưu hóa giá rất rẻ trị của dự án. Một cách gần như trực tiếp, agile tăng đều đáng kể độ hài lòng của khách hàng.

Scrum là gì?

Scrum là một “bộ khuông thao tác làm việc” cơ bản để tiếp cận những công việc phức tạp. Dựa trên bộ khuông này, nhóm thao tác làm việc có thể ứng dụng những quy trình, kỹ thuật khác nhau cho công việc của mình… Nó là một thành viên của họ Agile.

scrum là gì
Credit: Scrum.org

Scrum có ích gì cho phát triển phầm mềm hiện nay

Nó giúp loại bỏ những tiến độ phức tạp và chỉ tập trung vào những tiến độ cấp 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ự sáng tỏ (transparency), thanh tra (inspection) và thích ứng (adaptation).

Ba giá trị cốt lõi của Scrum

1. Sáng tỏ

Muốn ứng dụng thành công Scrum, các thông tin liên quan đến quá trình phải mình bạch và thông suốt. Các thông tin có thể là tầm nhìn của sản phẩm, yêu cầu của khách hàng, tiến độ công việc, các rào cản khác…

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

2. Thanh tra

Phải thường xuyên thanh tra những hoạt động sinh hoạt trong Scrum và tiến độ đến đích để phát hiện các thất thường không theo ý muốn. Tần suất thanh tra không nên quá dày để khỏi tác động đến công việc. Công việc thanh tra khi được thực hiện bởi người dân có kĩ năng tại những điểm quan trọng của công việc sẽ giúp cải tiến liên tục trong Scrum.

3. Thích ứng

Scrum mang lợi thế là tính linh hoạt rất cao, nhờ đó mang lại tính thích ứng cao. Dựa vào thông tin liên tục và sáng tỏ từ quá trình thanh tra và thao tác làm việc, Scrum có thể cho lại các thay đổi tích cực, nhờ đó mang lại thành công cho dự án.

Lợi ích mà Scrum mang lại

Tính sáng tỏ, kiểm tra, và thích ứng là 3 nền tảng cơ bản của Scrum. Và trong tương lai là những lý do vì sao nên dùng Scrum.

  1. Cải thiện chất lượng sản phẩm và dịch vụ phần mềm, dễ học và dễ sử dụng.
  2. Rút ngắn thời kì phát hành phần mềm, được cho phép khách hàng sử dụng sản phẩm sớm hơn.
  3. Nâng cao ý thức đồng đội, tối ưu hóa hiệu quả và nỗ lực của đội phát triển.
  4. Tăng đều tỷ suất hoàn vốn góp vốn đầu tư (ROI)
  5. Tăng mức độ hài lòng của khách hàng
  6. Kiểm soát dự án tốt, cải tiến liên tục
  7. Giảm thiểu rủi ro khi xây dựng sản phẩm

Các khái niệm cơ bản Scrum

1. Scrum Team

Scrum team chia làm 3 vai trò gồm có 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 dư (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 update thông tin cho những 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ả những lúc 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òn có thể sẽ có đượ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ả những thành viên của Development Team yêu cầu phải có khả năng thao tác làm việc thay thế vị trí của nhau và không có bất kì 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 trật tự ưu tiên xử lý những công việc tồn dư nào có trong Backlog trước, tổ chức các cuộc họp với Product Owner để theo dõi tình hình và nắm thông tin cấp thiết.

2. Sprint

Sprint là mộ phân đoạn lặp đi tái diễn trong quy trình phát triển phần mềm, có khuông thời kì thường là 1 trong tháng (từ là 1 – 4 tuần) mà Từ đó sản phẩm sẽ tiến hành release phiên bản mới. Khi một Sprint kết thúc thì Scrum Master cần phải chuyển trạng thái của nó sang Done.

Khi khai mạc một Sprint thì Scrum Master cần đưa ra mục tiêu của Sprint đó và mục tiêu này sẽ không được phép thay đổi cho tới khi Sprint hoàn thành. Tuy nhiên Product Owner vẫn có quyền huỷ một Sprint trước thời hạn kết thúc của nó.

Mặc dù để làm điều này thì Product Owner cần sự đồng thuận của Development Team cũng như Scrum Master. Sau khoản thời gian một Sprint kết thúc thì những bên sẽ dựa trên kết quả của Sprint đó để lên kế hoạch cho Sprint tiếp theo.

3. Sprint Planning

Đây là bước trước tiên cần phải thực hiện trước lúc một Sprint khai mạc. Development team họp với Product Owner để lên kế hoạch cho một sprint. Những công việc nào cần phải được hoàn thành trong Sprint này và làm thế nào để sở hữu thể hoàn thành những công việc này.

Sau khoản thời gian thống nhất được số lượng công việc, thời kì hoàn thành thì tất cả chúng ta có thể khai mạc Sprint. Trong lúc thực hiện một Sprint tất cả chúng ta sẽ phải có những cuộc họp được gọi là Daily Sprint hay Daily Meeting.

4. Daily Sprint

Các cuộc họp Daily Sprint thường kéo dãn dài khoản 15 phút, trong cuộc họp này tất cả những thành viên sẽ tuần tự văn bản báo cáo lại:

  • Những gì họ đã làm được ngày hôm qua
  • Những gì họ cần làm ngày hôm nay
  • Những khó khăn mà người ta gặp phải

Mỗi cuộc họp này sẽ giúp việc dự kiến được kế hoạch đưa ra trong Sprint đang làm sẽ tiến triển ra sao và liệu có cần phải update lại bản kế hoạch đã đưa ra hay là không. Tất nhiên cần nhớ rằng việc thay đổi kế hoạch này sẽ không gồm có thay đổi mục tiêu đã đưa ra của Sprint.

Ví dụ chúng ta cũng có thể tăng thêm thời kì để hoàn thành một chức năng và thông qua đó khiến Sprint phải kéo dài hơn nữa dự kiến. Tuy nhiên mục tiêu của Sprint là cho phát hành một phiên bản mới cần được giữ nguyên.

5. Sprint Review

Là công việc được thực hiện bởi nhóm phát triển và product owner ở cuối mối Sprint nhằm xếp loại lại kết quả thực hiện được. Từ lúc Sprint mới hoàn thành và thông qua đó đưa ra những chỉnh sửa, thay đổi cấp thiết ở Sprint sau.

6. Sprint Restrospective

Dưới sự trợ giúp của Scrum master, team phát triển sẽ tổng kết những kiến nghị và xếp loại từ bước Sprint Review ở trên để mang ra những cải tiến nhằm nâng cao hiệu quả thao tác làm việc cũng như sản phẩm.

7. Các phương tiện (artifacts) Scrum

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

Product backlog

Đây là list ư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ư thể list 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 khái niệm (thường là giá trị thương nghiệp – business value).

Sprint backlog

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

Với sự phối 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 list công việc (TODO list).

Burndown Chart

Đây là biểu đồ hiển thị xu vị trí hướng của dự án dựa trên lượng thời kì cấp thiết sót lại để hoàn thành công việc.

Burndown Chart có thể được dùng làm theo dõi tiến độ của Sprint (được gọi là Sprint Burndown Chart) hoặc của tất 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 khái niệm mới, nhưng vẫn được sử dụng rộng rãi do tính hữu ích của nó.

Các phương tiện quản lý dự án theo Agile mà bạn nên biết

Trello

Đây là một trong những ứng dụng quản lý dự án nổi tiếng và được sử dụng nhiều nhất. Nó có cả tài khoản miễn phí và thượng hạng mang đến cho bạn thời cơ tuyệt vời để sử dụng hồ hết các chức năng phổ thông.

Cấu trúc của Trello dựa trên phương pháp kanban. Tất cả những dự án được thay mặt bởi các bảng, có chứa list. Mọi list đều có những thẻ lũy tiến mà bạn được tạo dưới dạng kéo và thả. Người dùng có liên quan đến bảng, có thể được gán cho thẻ.

Tóm lại, nó có nhiều tính năng hay, nhỏ nhưng không kém phần hữu ích: viết phản hồi, chèn tệp đính kèm, ghi chú, ngày đáo hạn, list kiểm tra, nhãn màu, tích phù hợp với các ứng dụng khác, v.v. Ngoài ra, Trello được tương trợ bởi tất cả những nền tảng di động. Trello là phương tiện có thể được sử dụng cho tất cả công việc và các quy trình member.

JIRA

JIRA là một phương tiện được phát triển để theo dõi lỗi, theo dõi vấn đề và quản lý dự án cho những quy trình phát triển phần mềm và di động. Bảng điều khiển và tinh chỉnh JIRA có nhiều chức năng & tính năng hữu ích có thể xử lý các vấn đề khác nhau một cách dễ dàng.

Một số tính năng và sự cố chính: loại sự cố, quy trình thao tác làm việc, màn hình hiển thị, trường, tính chất vấn đề. Một số tính năng các bạn sẽ không tìm thấy ở nơi khác. Bảng điều khiển và tinh chỉnh trên JIRA có thể được tùy chỉnh để phù phù hợp với quy trình kinh doanh của bạn.

Asana

Asana là phương tiện quản lý công việc được cho phép các nhóm san sớt, lập kế hoạch, tổ chức và theo dõi tiến trình của đa số nhiệm vụ mà mỗi thành viên đang thực hiện. Nó đơn giản, dễ sử dụng và miễn phí cho tối đa 30 người dùng trong một nhóm.

Như tất cả những nền tảng phần mềm quản lý dự án Agile trước kia với mục tiêu đó là được cho phép quản lý các dự án và nhiệm vụ. Điều đáng lưu ý là bạn không cần thiết phải có email để sử dụng Asana. Mỗi nhóm có thể tạo nơi thao tác làm việc sẽ chứa các dự án và nhiệm vụ của dự án: mỗi tác vụ có thể có ghi chú, nhận xét, tệp đính kèm và thẻ.

Phương tiện này còn có thể được sử dụng cho những quy trình nhỏ và cho những quy trình lớn mà không có bất kỳ giới hạn nào trong các ngành hoặc phòng ban.

Tổng kết

Bạn phải 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 hiện dựa trên những giá trị và nguyên tắc nêu ra trong bản tuyên ngôn Agile.

You May Also Like

About the Author: v1000