Sự khác biệt giữa Lập trình Cực đoan và SCRUM

Sự khác biệt giữa Lập trình Cực đoan và SCRUM
Sự khác biệt giữa Lập trình Cực đoan và SCRUM

Video: Sự khác biệt giữa Lập trình Cực đoan và SCRUM

Video: Sự khác biệt giữa Lập trình Cực đoan và SCRUM
Video: Phân tích dễ hiểu sự khác biệt giữa các loại Class Âm ly, Ampli Class A, B, AB hay D thì hay hơn? 2024, Tháng bảy
Anonim

Lập trình Cực đoan vs SCRUM | XP so với SCRUM

Đã có một số phương pháp luận phát triển phần mềm khác nhau được sử dụng trong ngành công nghiệp phần mềm trong những năm qua, chẳng hạn như phương pháp phát triển Waterfall, V-Model, RUP và một số phương pháp lặp tuyến tính, lặp và kết hợp khác. Mô hình Agile (hay nói đúng hơn là một nhóm các phương pháp luận) là một mô hình phát triển phần mềm gần đây hơn được giới thiệu bởi tuyên ngôn Agile để giải quyết những thiếu sót được tìm thấy trong các phương pháp phát triển phần mềm truyền thống đó.

Phương pháp Agile dựa trên sự phát triển lặp đi lặp lại và sử dụng phản hồi từ người dùng làm cơ chế kiểm soát chính. Agile có thể được gọi là phương pháp lấy con người làm trung tâm hơn so với các phương pháp truyền thống. Mô hình Agile cung cấp phiên bản hoạt động của sản phẩm từ rất sớm bằng cách chia nhỏ hệ thống thành các phần phụ rất nhỏ và dễ quản lý, để khách hàng có thể nhận ra một số lợi ích từ sớm. Thời gian chu kỳ kiểm thử của Agile tương đối ngắn so với các phương pháp truyền thống, vì kiểm thử được thực hiện song song với phát triển. Vì tất cả những ưu điểm này, các phương pháp Agile được ưa chuộng hơn các phương pháp luận truyền thống tại thời điểm hiện tại. Lập trình Scrum và Extreme là hai trong số các biến thể phổ biến nhất của các phương pháp Agile.

SCRUM là gì?

Như đã đề cập ở trên, SCRUM là một quy trình quản lý dự án lặp đi lặp lại và gia tăng, thuộc họ các phương pháp Agile. SCRUM dựa trên việc ưu tiên cao cho sự tham gia của khách hàng sớm trong chu kỳ phát triển. Nó khuyến nghị kết hợp kiểm tra bởi khách hàng sớm và thường xuyên nhất có thể. Thử nghiệm được thực hiện tại mỗi thời điểm khi có phiên bản ổn định. Nền tảng của SCRUM dựa trên việc bắt đầu thử nghiệm từ đầu dự án và tiếp tục trong suốt cho đến khi kết thúc dự án.

Giá trị chính của SCRUM là “chất lượng là trách nhiệm của nhóm”, nhấn mạnh rằng chất lượng của phần mềm là trách nhiệm của cả nhóm (không chỉ nhóm kiểm thử). Một khía cạnh quan trọng khác của SCRUM là chia nhỏ phần mềm thành các phần nhỏ hơn có thể quản lý được và giao chúng cho khách hàng rất nhanh chóng. Cung cấp một sản phẩm hoạt động là điều quan trọng hàng đầu. Sau đó, nhóm tiếp tục cải tiến phần mềm và cung cấp liên tục ở mỗi bước chính. Điều này đạt được thông qua việc có các chu kỳ phát hành rất ngắn (gọi là chạy nước rút) và nhận được phản hồi để cải thiện vào cuối mỗi chu kỳ.

SCRUM xác định một số vai trò quan trọng đối với hoạt động trơn tru của nhóm phát triển. Họ là Product Owner (người đại diện cho khách hàng và duy trì sản phẩm tồn đọng), Scrum master (người đóng vai trò là người tổ chức và điều phối nhóm bằng cách tiến hành các cuộc họp scrum, duy trì sprint backlog và ghi ra các biểu đồ) và các thành viên khác trong nhóm. Một nhóm có thể bao gồm các vai trò truyền thống, nhưng chủ yếu là các nhóm tự quản. Các tạo tác chính của Scrum là Sản phẩm tồn đọng / phát hành tồn đọng (danh sách mong muốn), tồn đọng Sprint / lỗi tồn đọng (nhiệm vụ trong mỗi lần lặp lại), Ghi xuống biểu đồ (công việc còn lại so với ngày). Các buổi lễ SCRUM chính là cuộc họp tồn đọng Sản phẩm, cuộc họp Sprint và cuộc họp Kiểm tra lại.

Lập trình Cực đoan là gì?

Extreme Programming (viết tắt XP) là một phương pháp luận phát triển phần mềm thuộc mô hình Agile. Lập trình cực đoan thực hiện các giai đoạn trong các bước liên tục rất nhỏ (so với các phương pháp truyền thống). Lần vượt qua đầu tiên, chỉ mất một ngày hoặc một tuần, cố tình không hoàn thành. Để cung cấp các mục tiêu cụ thể cho việc phát triển phần mềm, các bài kiểm tra tự động được viết ngay từ đầu. Sau đó, các nhà phát triển thực hiện mã hóa. Trọng tâm là thực hiện lập trình theo cặp. Khi tất cả các bài kiểm tra vượt qua, quá trình mã hóa được coi là hoàn thành. Giai đoạn tiếp theo là thiết kế và kiến trúc, giải quyết việc tái cấu trúc mã bởi cùng một nhóm lập trình viên. Vào cuối giai đoạn này, sản phẩm chưa hoàn thiện (nhưng có chức năng) được trình bày cho các bên liên quan. Ngay sau đó, giai đoạn tiếp theo (tập trung vào tập hợp các tính năng quan trọng nhất tiếp theo) bắt đầu.

Sự khác biệt giữa Lập trình Cực đoan và SCRUM là gì?

Extreme Programming và SCRUM có thể hiểu là những phương pháp rất giống nhau và phù hợp với nhau. Tuy nhiên, có những khác biệt tinh tế nhưng quan trọng giữa hai phương pháp này. SCRUM nước rút kéo dài trong 2-4 tuần, trong khi các lần lặp lại XP điển hình ngắn hơn (kéo dài 1-2 tuần). Thông thường, các đội SCRUM không cho phép thay đổi trong các lần chạy nước rút, nhưng các đội XP linh hoạt hơn một chút với các thay đổi trong các lần lặp lại. Ví dụ, sau khi lập kế hoạch chạy nước rút, tập hợp các mục của nước rút đó không thay đổi, nhưng một tính năng chưa bắt đầu hoạt động có thể được hoán đổi bất cứ lúc nào với một số tính năng khác trong XP. Một sự khác biệt khác giữa XP và SCRUM là thứ tự của các tính năng được phát triển trong XP được khách hàng ưu tiên nghiêm ngặt, trong khi nhóm SCRUM quyết định thứ tự của các mặt hàng (sau khi sản phẩm tồn đọng được chủ sở hữu SCRUM’s Product ưu tiên).

Không giống như XP, SCRUM không đặt ra bất kỳ phương pháp kỹ thuật nào. Ví dụ: XP được thúc đẩy bởi các thực hành như phát triển theo hướng kiểm tra (TDD), lập trình cặp, cấu trúc lại, v.v. Tuy nhiên, một số người tin rằng việc ủy thác một bộ thực hành cho các nhóm tự tổ chức có thể có tác động tiêu cực và điều này có thể được xem xét một thiếu sót của XP. Một thiếu sót khác của lập trình Extreme là các nhóm thiếu kinh nghiệm có thể có xu hướng tái cấu trúc mà không có bất kỳ kiểm tra tự động hoặc TDD nào (hoặc chỉ đơn giản là hack). Do đó, một số ý kiến cho rằng SCRUM tốt hơn để bắt đầu (vì nó mang lại những cải tiến lớn chỉ đơn giản thông qua các lần lặp lại hộp thời gian tập trung) và XP phù hợp với các nhóm hơi trưởng thành, những người đã khám phá ra giá trị của các phương pháp đã đề cập ở trên (thay vì sử dụng chúng vì họ đã được yêu cầu để làm như vậy).

Đề xuất: