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 .