Sự khác biệt giữa Extreme Programming và SCRUM

Anonim

Lập trình Cực vs SCRUM | XP và SCRUM

Đã có rất nhiều phương pháp 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 qua nhiều năm như phương pháp phát triển Waterfall, V-Model, RUP và một số phương pháp tuyến tính, lặp và kết hợp tuyến tính lặp lại khác. Mô hình Agile (hoặc chính xác hơn, một nhóm các phương pháp) là một mô hình phát triển phần mềm gần đây được giới thiệu bởi bản tuyên bố 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.

Các 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 sử dụng làm cơ chế kiểm soát chính. Agile có thể được gọi là phương pháp tiếp cận lấy người làm trung tâm hơn các phương pháp truyền thống. Mô hình Agile cung cấp một phiên bản làm việc của sản phẩm rất sớm bằng cách phá vỡ hệ thống theo những phần nhỏ và có thể quản lý được để khách hàng có thể sớm nhận ra một số lợi ích. Thử nghiệm thời gian chu kỳ của Agile là tương đối ngắn so với phương pháp truyền thống, bởi vì thử nghiệm được thực hiện song song với phát triển. Bởi vì tất cả những lợi thế này, các phương pháp Agile được ưa thích hơn các phương pháp truyền thống tại thời điểm này. Scrum và Extreme lập trình 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 quá trình quản lý dự án gia tăng và lặp đi lặp lại, thuộc về nhóm các phương thức Agile. SCRUM dựa trên việc ưu tiên cao cho sự tham gia của khách hàng vào giai đoạn phát triển. Nó khuyến cáo kết hợp việc thử nghiệm 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 điểm khi một phiên bản ổn định trở nên có sẵn. Nền tảng của SCRUM dựa trên việc bắt đầu thử nghiệm từ khi bắt đầu dự án và tiếp tục 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 toàn bộ nhóm (chứ không chỉ nhóm thử nghiệm). Một khía cạnh quan trọng khác của SCRUM là phá vỡ phần mềm vào các bộ phận có thể quản lý nhỏ hơn và phân phối chúng đến khách hàng nhanh chóng. Cung cấp một sản phẩm làm việc là vô cùng quan trọng. Sau đó, nhóm tiếp tục cải tiến phần mềm và cung cấp liên tục ở từng bước chính. Điều này đạt được thông qua việc có các chu kỳ phát hành ngắn (gọi là sprints) và nhận được phản hồi để cải tiến vào cuối mỗi chu kỳ.

SCRUM định nghĩa một số vai trò quan trọng cho hoạt động trơn tru của một nhóm phát triển. Họ là chủ sở hữu Sản phẩm (người đại diện cho khách hàng và duy trì sản phẩm tồn đọng của sản phẩm), Scrum master (người hoạt động như người tổ chức và điều phối viên của nhóm bằng cách tiến hành các cuộc họp scrum, duy trì các bản tin chạy nước rút và các bảng xếp hạng) và các thành viên khác trong nhóm.Một đội có thể bao gồm các vai trò truyền thống, nhưng chủ yếu là các đội tự quản lý. Các tác phẩm chính của Scrum là Hồ sơ dự thầu tồn đọng / giải phóng sản phẩm (danh sách mong muốn), sổ ghi lại tồn tại của Sprint / tồn đọng lỗi (công việc trong mỗi lần lặp), Ghi bảng xếp hạng (công việc còn lại so với ngày tháng). Các buổi lễ chính của SCRUM là Buổi họp về Sản phẩm chưa được tổ chức, Cuộc họp Sprint và Cuộc họp tìm kiếm lại.

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

Lập trình cực đoan (viết tắt là XP) là một phương pháp 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 bước theo các bước liên tục rất nhỏ (so với các phương pháp truyền thống). Đợt đầu tiên, chỉ mất một ngày hoặc một tuần, là cố ý không đầy đủ. Để 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 làm mã hóa. Trọng tâm là làm chương trình theo cặp. Một khi tất cả các bài kiểm tra vượt qua, mã hóa được coi là hoàn chỉnh. Giai đoạn tiếp theo là thiết kế và kiến ​​trúc, đề cập đến việc tái cấu trúc mã bằng cùng một tập hợp các lập trình viên. Vào cuối giai đoạn này, sản phẩm không đầy đủ (nhưng 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 các tính năng quan trọng tiếp theo) bắt đầu.

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

Lập trình cực đoan và SCRUM là các phương pháp luận rất giống nhau và liên kết. 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. Sprint SCRUM kéo dài 2-4 tuần, trong khi lặp lại XP điển hình ngắn hơn (1-2 tuần gần đây). Thông thường, các nhóm SCRUM không cho phép thay đổi để chạy nước rút, nhưng các đội XP ít linh hoạt hơn đối với những thay đổi trong vòng 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 Sprint vẫn không thay đổi, nhưng một tính năng chưa bắt đầu làm việc có thể được hoán đổi với một số tính năng khác trong XP. Một sự khác biệt giữa XP và SCRUM là, thứ tự của các tính năng được phát triển trong XP là do khách hàng đặt nặng, trong khi nhóm SCRUM quyết định thứ tự của các mặt hàng (sau khi chủ sở hữu sản phẩm của SCRUM ưu tiên cho sản phẩm).

Không giống như XP, SCRUM không đưa ra bất kỳ thông lệ kỹ thuật nào. Ví dụ, XP được điều khiển bởi các thực tiễn như phát triển theo định hướng thử nghiệm (TDD), lập trình cặp, tái cấu trúc, vv Tuy nhiên, một số người cho rằng yêu cầu một tập hợp các thực hành về các nhóm tự tổ chức có thể có một 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 của lập trình Cực 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 (hoặc chỉ đơn giản là hack). Vì vậy, một số gợi ý rằng SCRUM tốt hơn khi nhìn chằm chằm (vì nó mang lại những cải tiến lớn chỉ đơn giản thông qua việc tập trung thời gian lặp lại) và XP phù hợp với các nhóm trưởng thành hơi phát hiện ra giá trị của các phương thức đã đề cập ở trên (thay vì sử dụng chúng vì họ đã được yêu cầu làm như vậy).