敏捷开发在大型软件工程管理中的应用探讨一、敏捷开发概述Scrum 是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum 在英语的意思是橄榄球里的争球。虽然Scrum 是为管理软件开发工程而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法。Scrum 是迭代的、增量型的流程,其流程如1 所示。Scrum 构造的产品迭代周期为Sprints,工作的迭代时间一般为一到四周,并且是相互衔接的。Sprints是有固定的周期,结束于固定明确的日期,无论该工作完成与否,从不延长。在每一Sprint的起始阶段,一个多职能的团队从已优先化的要求列表(下文中称Product Backlog)中挑选若干工程,并承诺在Sprint的末期完成这些工程。在Sprint中,任务的内容不会变化。每一工作日,团队成员互相通告工作进度,并更新简易的剩余工作量直观表示图表。在Sprint的末期,团队将对这一阶段工作结果作一展示并取得相关的反馈,为下一Sprint做好准备。 Scrum 强调生产可以使用的产品,意指在Sprint的末期产品的“完成”;在软件方面,是指编码已经被检测并可以随时交付使用。图 1 Scrum周期图在 Scrum 中有三个基本的角色:产品所有者 (Product Owner),开发团队和Scrum Master 。1. 产品所有者( Product Owner )产品所有者(Product Owner )负责取得产品最大的商业价值,收集相关于产品的所有信息。从客户或产品的终端使用者,开发团队成员和工程管理者中获取并将信息转化 为 优 先 权 工 程 列 表 。 在 一 些 情 况 下 , 产 品 所 有 者(Product Owner)正是客户本人;在另一些情况下,客户可能是有不同需求的成百上千的人。产品所有者(Product Owner) 这一角色在许多企业中是由产品经理或产品市场经理担任。2. 开发团队开发团队构建客户将会购买的产品:比如报表或软件。 Scrum 团队是“多功能”的。它包括交付每一Sprint中的随时可交付产品所需的各类专门人员,并且它是有很高自律性和责任性“自我管理”的团队。团队决定承诺完成哪些任务和完成承诺任务最好的方法。Scrum 团队通常包括五到十个成员,然而团队大到15个成员和小到3 个成员也有很好的收效,一个软件工程的开发团队包括程序员,界面设计师,检测员和研究人员。开发团队不仅构建产品,他们也向产品所有者 (Product Owner) 提供让产品尽善尽美的建议和想法。团队成员可以将其时间划分给Scrum 工程和其他的工程,但是如果团队成员能专...