技术开发 频道

使用Scrum来做产品开发

    Scrum 基础知识
    Scrum 是迭代的,增量型的流程。Scrum 构造的产品迭代周期为Sprints, 工作的迭代时间一般为一到四周。Sprints 是有固定的周期——结束于固定明确的日期,无论该工作完成与否,从不延长。在每一Sprint 的启始阶段,一个多职能的团队从已优先化的要求列表中挑选若干项目, 并承诺在Sprint 的末期完成这些项目。每一工作日,团队成员互相通告工作进度,并更新简易的剩余工作量直观表示图表。在Sprint 的末期,团队将对这一阶段工作结果作一展示并取得相关的反馈,为下一Sprint 做好准备。Scrum 强调生产可以使用的产品,意指在Sprint 的末期产品的“完成”;在软件方面,是指编码已经被检测并可以随时交付使用。
    Scrum 中的角色
    在Scrum 中有三个基本的角色:产品所有者,开发团队成员和ScrumMaster。产品所有者(Product Owner)负责收集相关于产品的所有信息——从客户或产品的终端使用者,开发团队成员和项目管理者中获取——并将信息转化为产品的形式。在一些情况下,产品所有者正是客户本人;在另一些情况下,客户可能是有不同需求的成百上千的人。产品所有者这一角色在许多企业中是由产品经理或产品市场经理担任。
    开发团队成员构建客户将会购买的产品:软件,网站,或者是任何一种产品。Scrum 团队通常包括五到十个成员,尽管团队大到15 个成员和小到3 个成员也有很好的收效。团队应该包括所有交付工作所需的专门人员——例如,一个软件项目的开发团队包括程序员,界面设计师,检测员,市场人员和研究人员。开发团队不仅构建产品,他们也向产品所有者提供让产品尽善尽美的建议和想法。开发项目包括15 个或以上的人员时,通常会被划分为若干的Scrum 团队, 每一团队注重于产品开发的不同方面,并相互紧密的协作。团队成员同时可以参与其他项目开发,这样比只限制开发团队致力于Scrum 更能提高生产效率。团队内部成员也可以在不同Sprint 中变化,但是这样会减少整个团队的生产效率。
    ScrumMaster 的任务是以任何方式帮助整个团队取得成功。ScrumMaster 不是团队中的经理; 他或她是服务于整个团队,帮助团队铲除壁垒而取得成功。协助团队会议,并支持Scrum 的实践。在一些团队中会有某一人专心致力于担任ScrumMaster,而另一些团队可以是其中一个成员兼职担任(此人会适当减少日常工作量)。一个好的ScrumMaster 可以有不同的背景和学科:项目管理,工程技术,设计,检测。ScrumMaster 和产品所有者不应是同一人;有时, ScrumMaster 可能会号召拒绝产品所有者(例如,他们有时会在某一Sprint 中期试图加入新的条件)的要求。不同于项目经理,ScrumMaster 不会指示和分配工作——他们只是协助流程的实施,推动团队自我组织和管理。
    除以上三个角色之外,还有其他对于项目成功作出重要贡献的人员:可能其中最重要的是经理。他们的角色在Scrum 中的发展, 他们仍保持了相当重要的位置——他们支持开发团队使用Scrum,他们为整个项目的开发提供知识,技术和各种必要的协助。在Scrum 中,这些人转化了以前“保姆”式的角色(布置任务,收取进程报告,和其他一些谨小慎微的管理方式),取而代之的是承担起更多的“指导“作用(指导职业发展,在职辅导培训,扮演魔鬼的代言人, 协助铲除障碍,帮助解决问题,提供创新的建议和指导团队成员的技能发展)。为了能更好地实现这一变化,经理们需要改进他们的管理方式方法;比如,运用苏格拉底哲学提问方式来帮助开发团队找寻问题的解决办法,而不是简单地决定解决方法并分配给开发团队。

    Scrum 启始
    Scrum 的第一步是产品所有者清晰地展示产品的未来景象(vision)。这些是以按需求的优先列表展示的,按客户和商业价值排序,最高价值的项目排在列表顶端。这就是Product Backlog, 它存在(并发展)于产品的整个生命周期(图示2)。Product Backlog 包括许多的不同项目, 例如功能(“使用户可以把所选书籍放入购物车”),开发需求(“重新改进处理流程模块, 使其可以升级”),探索式的工作(“研究关于加速信用卡确认过程的方法”),和已知的bugs(“判断并修复定单流程中的错误”)。 Product Backlog 是由产品所有者随时更新,以反映客户需求的变化,竞争对手的发布,新的想法和见识,出现的技术障碍等等。

    
图示2 Product Backlog

    在项目开发的任何时候,Product Backlog 是唯一具有权威性的“需要完成的所有任务”的概况。只可以存在唯一一个Product Backlog;这就意味着产品所有者需要在所有的工作范围中作出优先项的决策。
    Product Backlog 中的项目在规模上会相差甚远;有些大的项目通常在Sprint 计划会议上被划分为许多较小的项目,而小的项目有些会被合并为一。关于Scrum 的误解之一是它会阻止你记录详细的规范说明;而现实中,这是由产品所有者和开发团队共同决定详细资料的多少,这些从其中一个Product Backlog 到另一个有可能存在不同。一般的建议是,在所需的最少的空间中说明最重要的事情——换而言之,不需要描述某一项目的所有可能的详细资料,只需要阐述清楚产品被认为是完成品所具备的要求。在Product Backlog 列表中越底端的是更大和粗略的项目;当它们接近被开发时,产品所有者会添加更多的详细资料。

0
相关文章