推拉系统之间的区别在于,如何将工作单元分配给将要执行该工作单元的人员。推拉的概念并不是软件开发所独有的- 该思想起源于物流和供应链管理。
在推送系统中,将创建某种任务,然后将其分配给开发人员。从需求的实现(或实现需求所需的组件)到要编写的文档的错误修复,任务可以是任何东西。通常是某种类型的经理或团队负责人的某人将需要完成的工作单元,然后分配给团队成员以完成。简而言之,将工作推给将要从事的人。
在拉式系统中,必须完成的任务存储在队列中,通常是各种优先级队列。一个示例可能是Scrum的产品和sprint积压,其中包含要完成的用户案例。当前不进行任何工作的开发人员将进入队列,并摘下他们能够做的最优先的事情。从事这项工作的人将工作从清单中剔除并去做。
推和拉的概念与迭代/增量开发与顺序开发无关。使用迭代/增量/敏捷技术的团队可以使用推式系统,而使用顺序开发的团队可以使用拉式系统。但是,通常情况下,敏捷方法(XP,Scrum)有利于自组织团队,因此有利于拉动系统。
有关更多信息,您可能对此博客文章Push vs. Pull in Scrum中的内容感兴趣。看板也许也很有趣-看板是一种来自制造的方法,但是可以应用于软件开发,该软件强调即时开发并减少工人的负担。看板还与精益(Lean)有关,并且常与精益(Lean)一起使用,精益(Lean)是另一种制造概念,可应用于软件开发。