Agile và Scrum: giống hay khác nhau?

Trong giới lập trình nói chung, không ai là không biết hoặc đã từng nghe qua về Agile và Scrum. Tuy nhiên, cũng không hiếm có những người vẫn còn lẫn lộn, không biết phân biệt giữa Agile và Scrum. Vậy hãy cùng Got It tìm hiểu xem 2 thuật ngữ này khác biệt hay giống nhau ra sao nhé!

Khái quát hai phương pháp Agile và Scrum 

Phương pháp phát triển Agile là gì? 

Trong software development (phát triển phần mềm), Agile software development là phương pháp giúp phát triển phần mềm linh hoạt. Với phương pháp Agile, bạn sẽ chuyển giao sản phẩm đến tay khách hàng, người dùng nhanh nhất có thể. Qua đó, họ sẽ chỉ ra những điểm cần cải tiến cho phần mềm ở những giai đoạn tiếp theo.

Khái quát hai phương pháp Agile và Scrum
Agile software development là phương pháp giúp phát triển phần mềm linh hoạt

Mô hình Agile được xây dựng và thiết kế dựa trên incremental (sự tăng trưởng) và iterative (sự lặp lại). Agile không khuyến khích chuyển giao tất cả mọi thứ cùng một lúc khi chuẩn bị kết thúc dự án. Thay vào đó, phương pháp Agile sẽ tiến hành chia nhỏ dự án phần mềm thành những hạng mục lẻ. Sau đó, team (nhóm) sẽ chuyển giao các hạng mục này theo chu kỳ từ 1-4 tuần, gọi là iteration.

Trong 12 nguyên tắc được nêu trong Agile manifesto (tuyên ngôn Agile), bốn nguyên lý cốt lõi của Agile là:

  • Dựa trên con người và sự tương quan giữa họ chứ không phải dựa trên quy trình, công cụ.
  • Cung cấp một phần mềm hoạt động tốt chứ không phải cung cấp một bộ tài liệu đầy đủ.
  • Đề cao hợp tác, phối hợp với khách hàng chứ không phải chỉ có đàm phán về hợp đồng.
  • Linh động và thích ứng theo tình hình chứ không phải gò bó, bám sát theo kế hoạch.

Dù còn những khía cạnh khác nhưng Got It sẽ khái quát về Agile trong bài viết này mà thôi. Bạn có thể tìm hiểu thêm tại Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

Phương pháp phát triển Scrum là gì?

Scrum là một mô hình làm việc rất phổ biến, được xây dựng dựa trên những nguyên tắc của Agile. Phương pháp Scrum đơn giản hóa quy trình để phát triển phần mềm đáp ứng các nhu cầu nghiệp vụ. Vì có cơ sở là Agile nên mô hình Scrum cũng dựa trên cơ chế lặp và sự tăng trưởng.

Khái quát về phương pháp Scrum
Scrum là một mô hình làm việc rất phổ biến, được xây dựng dựa trên những nguyên tắc của Agile

Những dự án áp dụng Scrum được phát triển qua một chuỗi các vòng sprint lặp lại mỗi 1-4 tuần. Trong vòng sprint, một hạng mục cụ thể của phần mềm sẽ được xác định, phát triển và kiểm tra. Sau đó, hạng mục này được thêm vào increment (gói tăng trưởng) và chuyển giao khi kết thúc vòng sprint.

Mô hình Scrum hoạt động dựa trên ba nguyên lý cốt lõi như sau:

  • Transparency (sự minh bạch): bạn phải tường minh các artifact (tạo phẩm hoặc tài liệu) với các bên liên quan. Có vậy thì bạn mới có thể đưa ra được các quyết định đúng đắn, có lợi cho dự án.
  • Inspection (sự thanh tra): bạn phải kiểm tra đều đặn, thường xuyên về tiến độ công việc và các artifact. Qua đó, bạn mới có thể phát hiện những sai sót, vấn đề tiềm ẩn khi phát triển phần mềm.
  • Adaptation (sự thích nghi): bạn phải điều chỉnh quy trình và các artifact nếu xảy ra vấn đề nghiêm trọng. Đó là khi vấn đề vượt quá giới hạn cho phép hoặc khiến sản phẩm không thể được nghiệm thu.

Trên đây, Got It chỉ nhắc lại một vài điều khái quát về phương pháp Scrum. Bạn có thể tìm hiểu cụ thể hơn về Scrum ở bài viết: Scrum là gì? Tổng quát về mô hình Scrum

Agile và Scrum: giống hay khác nhau?

Đáp án là hai phương pháp này vừa có những điểm tương đồng và vừa có những điểm khác nhau. 

Agile và Scrum giống nhau ra sao? 

Điểm tương đồng đầu tiên là Agile và Scrum đều áp dụng cơ chế lặp lại và sự tăng trưởng. Do đó,cả hai đều nhấn mạnh việc vừa phát triển phần mềm và vừa điều chỉnh theo phản hồi. Vì Scrum được xây dựng dựa trên Agile nên hai phương pháp Agile và Scrum sẽ có chung mục tiêu. Đó là tối đa hóa các giá trị mà mỗi phương pháp sẽ tạo ra cho khách hàng doanh nghiệp.

Agile và Scrum giống nhau ra sao?
Agile và Scrum đều áp dụng cơ chế lặp lại và sự tăng trưởng

Tóm lại, cả hai phương pháp đều cố gắng chuyển giao sản phẩm dự án trong thời gian nhanh nhất có thể. Ngoài ra, Agile và Scrum còn nhấn mạnh việc quản lý hiệu quả và hợp tác, giao tiếp cởi mở.

Điểm khác nhau của Agile và Scrum

Điểm khác nhau của Agile và Scrum
Mặc dù có nhiều thứ tương đồng nhưng Agile và Scrum cũng có khá nhiều điểm khác biệt rõ ràng.
AgileScrum
Là phương pháp luận gồm nhiều nguyên tắc.Là một trong những mô hình làm việc áp dụng và triển khai các nguyên tắc của Agile.
Phạm vi áp dụng rộng vì là phương pháp luận.Phạm vi áp dụng bị hạn chế vì chỉ là một trong những mô hình triển khai phương pháp Agile.
Chú trọng việc giao tiếp trực tiếp và tương tác tương quan giữa tất cả thành viên trong team.Việc trao đổi, thảo luận được thực hiện hàng ngày (hoặc hàng tuần) theo một lịch trình cụ thể.
Có thể cần thay đổi quy trình, cách tổ chức khi bắt đầu hoặc trước khi bắt đầu dự án.Không cần tiến hành thay đổi quá nhiều về quy trình hay cách tổ chức khi thực hiện dự án.
Thường có xu hướng chuyển giao sản phẩm khi chuẩn bị sắp kết thúc dự án phát triển phần mềm.Cung cấp bản tổng hợp increment về các hạng mục của sản phẩm cho khách hàng sau mỗi vòng sprint.
Leader (nhóm trưởng) có vai trò cực kỳ quan trọng, chịu trách nhiệm về công việc của toàn bộ team.Scrum team là một team đa chức năng, có khả năng tự quản, tự tổ chức và tự định hướng.
Liên tục giám sát các giai đoạn của một vòng đời phát triển phần mềm như phân tích, thiết kế,…Việc giám sát diễn ra sau khi tổng hợp các tính năng nhất định thay vì sau mỗi vòng sprint.

Qua bài viết trên, các bạn có thể thấy Agile và Scrum đều có những điểm tương đồng và khác biệt nhau. Tùy thuộc vào dự án, ngân sách và tính khả thi mà chúng ta sẽ chọn phương pháp phù hợp. Mong rằng bài viết này sẽ giúp các bạn nắm rõ điểm giống và khác nhau của Agile và Scrum.

Theo edurekasimplilearn

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

Hien Huynh
Hien Huynh
January 27, 2021
0
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Agile và Scrum: giống hay khác nhau?

Agile và Scrum: giống hay khác nhau?

Trong giới lập trình nói chung, không ai là không biết hoặc đã từng nghe qua về Agile và Scrum. Tuy nhiên, cũng không hiếm có những người vẫn còn lẫn lộn, không biết phân biệt giữa Agile và Scrum. Vậy hãy cùng Got It tìm hiểu xem 2 thuật ngữ này khác biệt hay […]
Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

Những năm gần đây, thuật ngữ Agile nhanh chóng trở nên quen thuộc với các nhà sản xuất phần mềm. Nhưng chính xác Agile là gì? Bài viết này sẽ giúp bạn tìm hiểu một số lý thuyết cơ bản về Agile, đặc biệt trong lĩnh vực phát triển phần mềm. Mục lụcAgile là gì […]
Agile và Scrum: giống hay khác nhau?

Agile và Scrum: giống hay khác nhau?

Trong giới lập trình nói chung, không ai là không biết hoặc đã từng nghe qua về Agile và Scrum. Tuy nhiên, cũng không hiếm có những người vẫn còn lẫn lộn, không biết phân biệt giữa Agile và Scrum. Vậy hãy cùng Got It tìm hiểu xem 2 thuật ngữ này khác biệt hay […]
Câu hỏi tư duy: Mẹo chinh phục bài kiểm tra tư duy

Câu hỏi tư duy: Mẹo chinh phục bài kiểm tra tư duy

Mọi người đều có khả năng tư duy, nhưng không phải ai cũng sử dụng nó một cách hiệu quả. Để rèn luyện kỹ năng , bạn cần luôn đặt ra các câu hỏi tư duy cho bản thân mình.  Trước hết hãy cùng tìm hiểu kỹ năng tư duy là gì nhé.  Mục lục1. […]
Cách rèn luyện tư duy nhanh: 5 bước hiệu quả nhất

Cách rèn luyện tư duy nhanh: 5 bước hiệu quả nhất

Tư duy nhanh không phải là một khả năng “cầu được ước thấy”. Không phải chúng ta cứ muốn thì sẽ thực hiện được. Rèn luyện tư duy nhanh cần có sự luyện tập chăm chỉ. Nhưng bằng cách nào? Hãy cùng Got It khám phá cách rèn luyện tư duy nhanh nhé. Đầu tiên, […]
Abstract Class là gì? Công cụ để đạt được Abstraction

Abstract Class là gì? Công cụ để đạt được Abstraction

Abstraction của OOP tiết lộ những đặc tính cần thiết, giấu đi thông tin không quan trọng. Abstraction chỉ có thể đạt được thông qua Abstract Class. Hãy cùng tìm hiểu Abstract Class là gì nhé.  Mục lục1. Abstract Class là gì?2. Abstract Class và Interface 3. Sử dụng Abstract Class và Interface4. Ví dụ về […]