Sự khác biệt từ các mô hình phát triển đẩy và kéo là gì?


13

Tôi đã đọc Giải thích lập trình cực đoan, Ấn bản thứ hai và trong chương 11 "Lý thuyết về các ràng buộc", các tác giả nói về mô hình phát triển "đẩy" cũ và lỗi thời và cách XP, mô hình phát triển "kéo" . Nó trông giống như một khái niệm khá quan trọng, nhưng chỉ cần một đoạn rất nhỏ và hai hình ảnh chỉ là minh họa của quá trình "thác nước" và lặp đi lặp lại, không có gì cụ thể về các mô hình này ngoại trừ chú thích hình ảnh. Tôi đã tìm kiếm và nó không đi xa hơn về nó trong phần còn lại của cuốn sách. Tôi cũng không thể tìm thấy bất kỳ lời giải thích hoặc thảo luận nào về nó trên Internet.

Nếu sự khác biệt duy nhất về những thứ đó là một cái là "thác nước" và cái kia là lặp đi lặp lại , thì tại sao chúng lại đẩy và tại sao lại kéo?

Có ai hiểu điều gì thực sự là sự khác biệt giữa hai điều đó và đưa ra một số ví dụ hay không?



1
Liên tục so với Tăng dần là một khái niệm cơ bản khác có thể gây nhầm lẫn. Ví dụ, XP là một hệ thống kéo tăng dần trong khi Kanban phụ thuộc vào lực kéo liên tục (tức là không có nước rút hộp thời gian).
Michael

Câu trả lời:


15

Sự khác biệt giữa hệ thống đẩy và kéo là cách các đơn vị công việc được giao cho người sẽ thực hiện đơn vị công việc đó. Khái niệm đẩy và kéo không phải là duy nhất cho phát triển phần mềm - ý tưởng bắt nguồn từ quản lý chuỗi cung ứng và hậu cần .

Trong một hệ thống đẩy, một số loại nhiệm vụ được tạo và sau đó được giao cho nhà phát triển. Một tác vụ có thể là bất cứ điều gì từ việc thực hiện một yêu cầu (hoặc một thành phần cần thiết để hiện thực hóa một yêu cầu) đến sửa lỗi cho một tài liệu để viết. Ai đó, thường là một số loại người quản lý hoặc trưởng nhóm, nhận các đơn vị công việc cần hoàn thành và sau đó phân bổ chúng cho các thành viên của nhóm để hoàn thành. Đơn giản, công việc được đẩy lên những người sẽ làm việc đó.

Trong một hệ thống kéo, các tác vụ phải được thực hiện được lưu trữ trong một hàng đợi, thường là một hàng đợi ưu tiên sắp xếp. Một ví dụ có thể là sản phẩm của Scrum và chạy nước rút tồn đọng, trong đó có các câu chuyện của người dùng sẽ được thực hiện. Một nhà phát triển hiện không làm việc với bất cứ điều gì sẽ đi đến hàng đợi và đưa ra câu chuyện ưu tiên cao nhất mà họ có thể làm và làm việc với nó. Những người đang làm công việc kéo công việc ra khỏi danh sách và thực hiện nó.

Khái niệm đẩy và kéo không liên quan đến phát triển lặp / tăng so với phát triển tuần tự. Một nhóm sử dụng các kỹ thuật lặp / tăng / nhanh có thể sử dụng hệ thống đẩy, trong khi một nhóm sử dụng phát triển tuần tự có thể sử dụng hệ thống kéo. Tuy nhiên, thông thường, các phương thức nhanh (XP, Scrum) ưu tiên các nhóm tự tổ chức và do đó kéo các hệ thống.

Để biết thêm thông tin, bạn có thể quan tâm đến bài đăng trên blog này trên Push vs. Pull in Scrum . Kanban cũng có thể được quan tâm - Kanban là một phương pháp xuất phát từ sản xuất, nhưng có thể được áp dụng cho phát triển phần mềm , trong đó nhấn mạnh phát triển đúng lúc và giảm quá tải cho công nhân. Kanban cũng liên quan đến và thường được sử dụng với Lean , một khái niệm sản xuất khác có thể được áp dụng để phát triển phần mềm .


Bây giờ tôi hiểu nó, tôi thấy rằng nó không thực sự được giải thích trong cuốn sách, chỉ được sử dụng. Tôi thích những cuốn sách của tôi ngắn, nhưng đoạn đó không chỉ vô dụng, mà còn gây hiểu lầm.
michelpm

@michelpm Tôi không sở hữu cuốn sách này, vì vậy tôi không thể nhận xét về tính hợp lệ của những gì họ đang nói, nhưng tôi chưa bao giờ nghe nói về đẩy và kéo được sử dụng theo bất kỳ cách nào khác như cách tôi mô tả. Có lẽ nếu bạn có thể chỉnh sửa câu hỏi của mình để chứa toàn bộ hoặc hai đoạn mô tả đẩy và kéo, tôi có thể tinh chỉnh thêm câu trả lời này.
Thomas Owens

Những hình ảnh đặc biệt liên quan đến thác nước với sự thúc đẩy, điều tôi hiểu bây giờ là nó không phải là một quy tắc và không thực sự giúp hiểu các mô hình. Đó không phải là những gì bạn nói sao?
michelpm

1
@michelpm Đúng vậy, đó không phải là quy tắc. Thông thường, các mô hình tuần tự là đẩy và các phương thức nhanh có xu hướng được kéo, nhưng nó hoàn toàn không phải theo cách đó.
Thomas Owens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.