2008年7月27日

[修改于Pipin版]从美式Scrum说起 (一家美国公司的Scrum敏捷项目记要与思考)

朋友Pipin发表于《程序员》08年8月刊杂志上的文章,写的非常好,这里做了些许的修改,共享给大家!

---------------------------------------------------------

从美式Scrum说起

一家美国公司的Scrum敏捷项目记要与思考

许舟平

2008716

引子 敏捷是一个过程

从计算机诞生的那一天起,如何编写最符合用户要求的代码就一直是每一个软件开发者所追求的目标。随着计算机应用领域的不断扩大,人们对软件的需求量和功能性要求不断增加,并且迫切需要缩短软件开发的周期。软件危机的到来孕育了软件工程学在1968年的诞生,计算机软件从原来面向的科学计算走到了人民大众的日常生活中。当软件产业已经向服务业靠拢的时候,软件工程也在向着需求工程倾斜着。当客户需求的变化和软件开发模式的固有矛盾相遇时,敏捷开发就从软件工程学中诞生了。

敏捷是一个过程,敏捷开发实际上是根据软件特性和用户需要的敏捷价值观,通过遵循敏捷的原则来进行软件开发的一系列过程的集合。笔者前些日子接触了一个国外运用敏捷开发的项目实例,现在拿来和读者分享,希望能对中国的敏捷开发者有所帮助。


项目背景

美国公司A是一个典型的在硅谷诞生的软件公司,以技术为导向,产品很新,更新速度很快,销售渠道稳健、高效,在销售产品的同时可以有效的把握好客户需求,并能将客户需求趋势反馈给开发团队。项目背景是在通过公司前几个产品将市场打开之后,公司急需推出一个全新版本V,能够将早期的几个产品integration到一个平台之上,并通过客户的需求反馈做产品功能的增删和Bug Fix。开发团队分为二个TeamTeam1负责构建一个全新平台,用来integration原有产品;Team2负责进行原有产品的bug修复和根据客户需求变更所做的程序模块改动;Team人数分别在810人,项目周期以月而记,分为3个周期,采用Scrum模式来做敏捷开发(Scrum是一种寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进)。项目的风险在于:1.项目开发时间紧,要求在3个月内完成开发阶段工作;2.team1team2在各自的Scrum开发周期内要完成功能联调和集成,需要并行工作;3.产品测试部门采用外包方式,测试人员在国外,而产品质量必须得到保障。

之所以采用Scrum,是因为Scrum方法将传统开发中的分析、设计、实施视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,从而充分发挥每一个程序员的创造力。下面就让我们通过Scrum的方法论来深入解析Team1Team2的开发过程。

项目组织

在公司A中,分别由二个资深的项目经理来担当每个小组的Scrum Master角色,每个Scrum Master来负责本小组中的人员协调和项目组织工作,他们的真正工作职责并不仅仅是传统意义上的Project ManagerTeam Leader,其最主要的工作是使各自所在小组内的工程师有充分的交流。每个小组都是由不同专业的人员组成,其中包括了程序开发人员,UI设计人员,文档人员等。Team1小组人员的划分是按系统层次导向(按体系结构中的分层),Team2的划分则是按功能导向(即按所分配的问题包或Backlog)。



图一:Scrum流程示意图

在项目的初始阶段,Team1Team2Scrum Master分别将各自负责的产品功能要求(注意:那时的产品功能并没有得到细化)、用户改进建议、技术升级等任务安装优先级排序形成一个Backlog列表,而后将Backlog列表中的各项按照其耦合性的高低分解称为不同的问题包Packets,并根据不同的问题包Packets来划分相应负责的开发人员,并由他们建立开发运行环境。在这个阶段笔者注意到了一个有趣的地方,那就是在项目设计阶段并没有一个传统意义上的架构师Architect角色。这省却了在传统的开发模型中概要设计和详细设计的时间,但并不意味着没有系统设计和文档,稍后会做介绍。而没有Architect的另一个好处是team中的每一个程序员都分担的Architect的作用,对于中国做敏捷开发的团队,由于传统的Architect存在着固有的领导思维意识,并且经常是由Team Leader或者PM来兼任,所以尽管运用了敏捷开发的方法,但却不能起到真正调动每一个程序员创造力的作用。而在美国,这种情况基本不会发生。


项目进程

经过了项目初始阶段的确定性过程后,项目进入了经验性过程的Sprint阶段。顾名思义,Sprint即为冲刺,运用在Scrum敏捷开发中的Sprint阶段就是在项目初始阶段确定了系统体系结构之后,在一段的限定时间内所完成的一系列开发活动,其中包括在前一个阶段可能没有做完的产品功能细化、设计、编码、单元测试等工作。在项目V中,Team1Team2分别分解了3Sprint周期,每个周期为4周,在第3Sprint周期开始时要保证Team1Team2完全可以并行工作和可以进行联调。一个Sprint周期结束之后即要完成在该Sprint周期中所规定需完成的Backlog项,并产生可执行的版本。对于开发人员来说,在每个Sprint周期中,他们都需要完成对所分配的Backlog工作进行分析、设计、开发、实施、测试和文档化等工作(在项目VTeam1Team2的开发人员采用Wiki代替传统软件工程的文档管理);在完成这些后,通过打包来封装Packets,从而产生满足各自Backlog需求的可执行版本,然后通过评审(Review)和回顾(Retrospective),提出和解决开发中遇到的问题,并增加新的Backlog项,进行项目风险评估和相应对策,从而确定下一个SprintBacklog内容和完成时间。在每个Sprint进行过程中,每个Scrum Team都会通过Daily standup meeting进行沟通,交流遇到的问题,互相帮助。

当项目V进入到最后一个Sprint周期时,Team1Team2中负责Integration接口模块设计的开发工程师将与QA人员一起进行系统联调,并由二个小组的Scrum Master在每个礼拜一下午召开Scrum Meeting(如图2中所示),来讨论系统需求变化和Bug修复情况。由此根据这个跨Scrum TeamMeeting的情况实时做出Backlog项的调整和从新分配。然后再进行打包封装交给QA人员进行测试。这个周期非常短,可能二、三天甚至一天就会有一个新的版本出现。

在这个过程中,公司A开发工程师的单兵作战能力给笔者留下了很深刻的印象。比如Team1UI设计师具有10多年的专业设计经验,仅凭一己之力就完成了Team1中所有的界面模块设计和调用接口工作。项目中的每一个工程师都在系统建模、设计、开发环境部署、程序打包上拥有丰富经验,实际上他们已经分别完成了在传统软件工程中系统架构师、CoderTesterBuild Manager等工作。与他们相比,国内软件公司处于的一线软件工程师大多属于拥有2-5年工作经验这一经验积累阶段,在个人技术的确存在差距,这种差距在某一方面导致我们国内的软件厂商在相似的开发项目上,同样运用敏捷开发方法,却不能充分达到一个良好的效果。这也与我们的国情有关,想想10年前老一辈的程序员,有多少现在还战斗在开发的第一线呢?不过没有关系,中国的软件产业正在慢慢成熟,一个充分良好的开发环境会让越来越多的程序员迅速成长起来,毕竟我们从事软件开发人员的基数是不可小视的。


图二:处在Sprint冲刺阶段的项目示意图

项目成果

Scrum过程中会认为软件产品的开发是一个持续性过程,除非该软件产品经风险评估后认为可以停止。通过一系列的Sprint阶段,项目V会产生一个稳定可靠的版本交给公司的Release Manager。而处于Scrum过程中的最后阶段――软件产品交付后的巩固活动则近似于传统软件工程中的系统维护和改善工作,其目的在于整理Sprint阶段中由于压力而忽略的工作,为下一个Sprint阶段的开发做准备,以便轻装上阵。


思考:敏捷,不仅仅是敏捷

在中国软件公司的敏捷开发项目里,对比于国外,有着许多影响敏捷开发但又在敏捷开发理论以外的东西。比如开发者经验的不同,开发环境的不同,软件开发公司的管理状态等等。笔者接触过国内的很多软件企业的开发团队和项目管理者,不可否认的是,中国的软件开发在很大程度上一直处于长期借鉴国外软件开发的模式。而在借鉴的过程中,形似而神不似的情况屡屡出现,很多时候,我们只是将国外的开发模式照搬过来,并没有根据中国软件业特有的国情和我们的开发者实际情况作出合理的调整。比如当年CMM火热之时,国内的很多公司都投入巨大的人力物力来做评估,来搞文档管理和过程控制,可是到头来除了取得一纸证书以外并没有给软件产品带来本质性的提高,软件开发效率和质量依旧一塌糊涂,Maintenance team每天还是要不断的应付客户反馈回来的bug和投诉。而对于敏捷开发来说,希望国内的项目管理者能够抓住敏捷开发的精髓,让我们的软件能够真正的敏捷起来。


阅读详细......

2008年7月17日

[Scrum工具]推荐一本好书---《硝烟中的Scrum和XP》

这是小刀同学的力作,翻译的真好!希望能很快正式出版!

作者 Henrik Kniberg译者 李剑 发布于 2008年7月7日 上午4时45分


在本书中,作者Henrik Kniberg讲 述了他在一年的时间里,带领40人的团队实施Scrum的过程。他们试过了多种团队尺寸(3~12人)、sprint长度(2~6星期),定义“完成”的 不同方式,不同的backlog格式,各种测试策略,在多个Scrum团队之间进行同步的多种方式。他们还尝试过XP实践——持续集成、结对编程、测试驱 动开发等等,还试过了把XP跟Scrum组合。

本书描述的是一个成功敏捷团队的工作过程,没有理论、没有引用、没有脚注、没有废话。读者可以把它当作一些基础实践的入门指南,帮助团队进行正确实施——但不能模仿,你需要了解自己所处的环境,进而对具体实践做出取舍,创造出属于自己的过程。

本书目录

  1. 简介
  2. 我们怎样编写产品backlog
  3. 我们怎样准备sprint计划
  4. 我们怎样制定sprint计划
  5. 我们怎样让别人了解我们的sprint
  6. 我们怎样编写sprint backlog
  7. 我们怎样进行每日例会
  8. 我们怎样进行sprint演示
  9. 我们怎样做sprint回顾
  10. Sprint之间的休整时刻
  11. 怎样制定发布计划,处理固定价格的合同
  12. 我们怎样组合使用Scrum和XP
  13. 我们怎样做测试
  14. 我们怎样管理多个Scrum团队
  15. 我们怎样管理地理位置上分布的团队
  16. Scrum master检查列表
  17. 额外的话
  18. 有关作者

有关作者

Henrik Kniberg(henrik.kniberg@crisp.se)是一名咨询师,在斯德哥尔摩的Crisp公司(www.crisp.se)工作。他的专长是Java和敏捷软 件开发。

自从第一本有关XP的书籍和敏捷宣言问世以来,Henrik就开始拥抱敏捷原则,并尝试在不同的组织中进行有效应用。在1998年至2003年间, 他作为Goyada的合作创始人和CTO,构建并管理一个技术平台和30人的开发团队,充分试验了测试驱动开发及其它敏捷实践。这个网站上有他的更多信 息:http://www.crisp.se/henrik.kniberg

免费下载此书

硝烟中的Scrum和XP 免费下载这本书(PDF)

原文 www.infoq.com/cn/news/2008/07/scrum-xp-book


阅读详细......

2008年4月28日

敏捷精灵日记21

[敏捷精灵日记]

  • 人才的流动是非常正常的事情,否则,社会也无法前进.但对于一个企业或者一个团队而言,人才的流失会是一种损失.流失人才并不可怕,最可怕的是领导人没有从中学到什么,没有搞清楚人才为什么会流失,没有采取亡羊补牢的措施.长此以往,招到的人才,还会不断的流失。

阅读详细......

2008年4月8日

敏捷精灵日记20

[敏捷精灵日记]

  • 尽管一个组织必须重视管理人员成长可能性并通过提供更大的发展空间等手段来激发他们的潜能,但彼得原理可以作为一种告诫:不要轻易地进行选拔和提 拔。解决这个问题最主要的措施有三个:第一,提升的标准更需要重视潜力而不仅仅是绩效。应当以能否胜任未来的岗位为标准,而非仅仅在现在岗位上是否出色。 第二, 能上能下决不能只是一句空话,要在企业中真正形成这样的良性机制。一个不胜任经理的人,也许是一个很好的主管,只有通过这种机制找到每个人最胜任的角色, 挖掘出每个人的最大潜力,企业才能“人尽其才”。第三,为了慎重地考察一个人能否胜任更高的职位,最好采用临时性和非正式性“提拔”的方法来观察他的能力 和表现,以尽量避免降职所带来的负面影响。如设立经理助理的职位,在委员会或项目小组这类组织中赋予更大的职责,特殊情况下先让他担任代理职位等等。
  • 成功企业的用人之道包括:
    • 适当引进外来人才,好处就是用现成的人才,避开“彼得原理”所涉及的后果;
    • 在企业内部逐步提升,重视潜力,重要的职位大多数由所能胜任的人。

阅读详细......

2008年4月2日

敏捷精灵日记19

[敏捷精灵日记]

  • 招聘员工准则: ‘hiring for attitude,training for skills’,即‘聘之以态度,授之以技能’
  • 培养员工准则:品德好、能力强的是精品;品德好、能力差的是次品;品德差、能力强的是毒品;品德差、能力差的是废品。精品要破格培养,次品要加紧培训,毒品要利用,废品要丢弃。而这些都以品德好为基本前提。
  • 团队建设的生命周期准则:
    1. 选择合适的人才
    2. 设立清晰的愿景、明确的目标
    3. 合理用人。人尽其才,才尽其用,充分发挥每个人的优势。
    4. 建立良性竞争机制
    5. 建立奖惩与监督制度
    6. 建立完善的培训系统,关注员工的个人发展
    7. 评估并不断改进团队
  • 领导力应该体现在他的影响力上,而不是依靠组织赋予的Position Power
  • 用心去领导。要去了解团队每一个成员的需求与渴望,去跟他们进行心与心的沟通!按照马斯洛的需求层次理论进行针对性的激励。
  • 根据情境去领导(Situational Leadership)。没有最好的领导力,只有最适合的领导风格,管理者要根据员工不同情境灵活调整自己的领导风格和领导型态。

阅读详细......

2008年3月30日

Scrum 术语表

Burndown Charts 显示随时时间推移,还剩下多少工作未完成.通常以时间为横轴,未完成的工作为纵轴.

Daily Scrum Meeting 每天15分钟的每日例会,每个人回答下面三个问题:
1. 上次例会到现在我完成了哪些工作
2. 在下次例会前我将完成哪些工作
3. 有没有什么事情阻止我尽可能的高效地工作
如果会议的讨论超出了上面的内容, ScrumMaster要确保任何与会者可以发起其它会议再来讨论.每日例会最好做为每天早上每一件事来做,在所有与会者到达之后立刻召开.

Impediments 阻碍任何人高效工作的任何人或事.在每日会议上,每个队员都有权宣布任何的impediments,由ScrumMaster负责解决这些impediments.


Product Backlog 产品特性列表,主要由产品Owner负责维护并定义优先级.


Product Backlog Item 产品特性列表中的条目,每个条目就是一个工作单元,大小必须限制在团队可以在一个Sprint迭代内完成,同时一个工作单元可以被分解成许多任务.

Product Backlog Item Effort 每个条目的工作量,可以用人天来衡量.推荐的方式是用Story点,功能点或T-Shirt尺寸(大,中,小).

Product Burndown Chart 基本上是项目进度的'Big Picture',显示每个sprint开始时还剩多少工作未做.

Product Owner Role 相当于业务代表,负责确定backlog中各条目的优先级及业务决策,同时解决任何的需求问题.

Release 这个概念不用解释,大家都懂.基于预定的时间,每个release会平衡功能,成本,质量三个方面的需求.

Release Burndown Chart 与Product Burndown Chart比较相像,不同点在于前者展示单个release的内容,而后者会跨多个release.

Scrum Roles 在Scrum中有一些角色的划要,其中三个主要角色:Product Owner, ScrumMaster, Team.

ScrumMaster Role 是Product Owner和Team之间的桥梁,同时推动双方的合作.主要的作用在有详细描述:
· 消除业务代表和开发团队之间的障碍,帮助业务代表直接推动开发.

· 帮助业务代表最大化ROI,并通过Scrum达到目标.

· 通过促进创造力和能力提高开发效率.

· 想尽一切办法提高生产力.

· 改善工程实践和工具,提高产品的可用性.

· 确保最新的项目进度可以让所有人看到.

Sprint 一次迭代过程,通常是30天.这个过程是不可被打断的,不能增加额外的需求,确保迭代结束时能够获得预期的结果.现实中会有一些变化,一些项目每次会留出 20%左右的时间用于紧急事务及级别最高的产品bugs.这样做存在一定的风险,可能会导致Sprint原则被随意打破.

Sprint Backlog 一次迭代的特性列表,或者说工作列表.展示本次迭代的工作单元,源自产品特性列表.

Sprint Burndown Chart 参考其它的Burndown Chart,粒度更细的图,用于单次迭代过程中.

Sprint Goals 单次迭代的目标,可以被详细说明,可以被衡量,而不是很模糊的一句"改善伸缩性".

Sprint Planning Meeting 单次迭代的计划会议,由Team与Product Owner之间商讨sprint目标集,决定哪些工作会被放进来.这个会议被限制在四个小时之内.

Sprint Retrospective Meeting 在sprint末期,评审会议之后召开.Team与ScrumMaster共同讨论这次sprint中哪些地方做得比较好,哪些地方需要在下次sprint中进一步提高.会议时间被限制在三个小时之内.

Sprint Task 四到六小时内完成的工作单元,由队员主动认领.

Team 跨功能团队,人数限制在5-9人,可能包括的角色有工程师,架构师,分析师,QA,测试,UI设计师等.这是一个自发组织的团队,以满足sprint目标.他们自己决定如何最好地满足用户目标,并承担责任.ScrumMaster充当保护层,确保Product Owner不会干涉团队工作.

Team Member 为了达到sprint目标而完成sprint task的任何人.

Velocity 一个团队在单次sprint中完成多少特性的数值.可以从上一次sprint中估算出,通过一次次的sprint,这个数值会为下次的sprint提供相对准确的进度计划.

转自http://samuelray.javaeye.com/blog/231373


阅读详细......

2008年3月28日

[Scrum工具] Scrum Checklists中文版

作者 Sprint-IT译者 SpringSide团队 发布于 2007年12月20日 下午8时0分http://www.infoq.com/cn/minibooks/scrum-checklists


SPRiNT-iT的 敏捷教练,包括Scrum培训师Boris Gloger,从主流Scrum书籍中抽取了Scrum的基本要素,并融入他们集体的长期实践经验,从而为大家带来《Scrum Checklists》这本精简概炼的迷你书。这本小册子为大家带来一整套准则和行为,帮助项目团队的成员更有效地推动所有的Scrum会议并创造 Scrum成果。

本书在InfoQ中文站上提供独家免费下载。

本书的英文印刷版以封面纸印刷并用螺旋管装订, 让这本书更具吸引力,而且也很容易翻阅。英文版成书“概述”页中的彩色索引与书右侧的彩色标签相对应,帮助您更快地定位和翻阅书中的页面。本书每一个清单 的背后都有一页空白纸,方便读者记录个人习惯和具体适应情况。如果您喜欢这本书,请支持我们的作者和InfoQ今后的迷你书,购买本书的印刷版(本书的中文印刷版也在筹备中,请耐心等候我们的通知)。

您也可以 免费下载这本书(PDF)

关于此书

本书并不打算详细介绍Scrum,而且没有哪本书有能力取代开发团队巧妙的自组织能力。相反,这本书是为了给接受过培训的团队带来信心,让他们轻车 上路,成功启动最初的Sprints——这些成功将帮助他们的组织更亲密地拥抱Scrum。您可以在“概述”一页找到本书的完整主题列表。另外,本书印刷 版右侧的彩色主题标签能帮您快速翻阅到相应主题:

  • 清单:障碍Backlog(让大洋两岸的团队都活跃起来的一项创新)
  • 清单:全员会议(帮助团队从抱佛脚或者混乱的过程中走出来的基本规矩)
  • 清单:评估会议(产品Backlog)
  • 清单:Sprint计划会议1
  • 清单:Sprint计划会议2
  • 清单:Scrum每日例会
  • 清单:Sprint评审会议
  • 清单:Sprint回顾会议
  • Scrum团队角色
  • Scrum典型产物

作者指出,Scrum的新手应当严格遵循《Scrum Checklists》这本书。这样做将为他们带来信心,帮助他们成功完成最初的Sprints,而这些最初的Sprints将提升Scrum在他们组织 中的接受程度。有丰富经验的Scrum教练也可以使用这本小册子作为培训的辅助材料。

本书中文译本是在SpringSide开源项目团队的肖桦、陈俊、林仪明、彭青、田淼和张礼六人的倾情努力下共同完成的,InfoQ中文站编辑赖翥翔(Jason Lai)、霍泰稳和熊节对本书译稿进行了审校,赖翥翔为本书的责任编辑,并负责排版工作。

阅读英文原书:Scrum Checklists


阅读详细......

2008年3月22日

敏捷精灵日记18

[敏捷精灵日记]

  1. Daily Scrum主要还是为了加强团队交流和信息共享。互相了解彼此都在做什么工作,完成了什么任务。这样,每日的信息传递,可以让每个人可以更多的了解整个项目的业务和技术状况。并 且如果在工作中遇到障碍或问题,也可以在这时候提出来,请求大家的帮助。
  2. Daily Scrum晨会不是每天的工作报告,更不是项目经理进行工作检查,甚至考核。项目经理有责任营造一个安全(Safe)的会议氛围,让每个人都乐意说出真正发生的事情,就算是昨天遇到技术问题,没有任何的工作成果,也能得到谅解,而不是胆颤心惊。
  3. 敏捷方法,需要有一个英明的领导(也许就是Scrum Master),以身作则,带领着团队向前冲锋,大家齐心协力,以项目的成功作为最高奋斗目标。只有这样,才能发挥敏捷方法的威力,只有这样项目才可能获得成功。
  4. 明 确的短期目标。如果让一个团队做半年的详细工作计划,一定非常困难,但如果是2周,那就完全不一样。假设,客户有100个东西要做,但团队在一个迭代(一 般是2周左右)中,只能完成20个东西。那么就明确的告诉客户,一个迭代的时间,我们只可以完成20个东西,那么我们先开发其中20个最有价值的东西。不 要为100个东西做半年/一年的计划,因为那不是敏捷开发,还是瀑布模式开发。

后记

  • 羊群是一种很散乱的组织,平时在一起也是盲目地左冲右撞,但一旦有一只头羊动起来,其他的羊也会不假思索地一哄而上,全然不顾前面可能有狼或者不远处有更好的草。这就是“羊群效应”,也称“从众心理”。在一个组织中,特别对具有决策能力的管理者而言,“共同承担责备效应”(Blame  Sharing Effect)的存在是导致了“羊群效应”的根本原因。如果某决策者逆流而动,一旦他失败了,这一行为通常被视为是其能力不够的表现, 并因此而受到责备;但是如果他的行为与大多数人一致,即使失败了,他会因看到其他许多人与他有相同的命运而不那么难堪,而他的上级也会考虑到其他的人也同 样失败了而不过分责备他。这样,决策者具有与别人趋同的愿望,以推卸自己承担决策错误的责任。
  • 作为组织的高层管理者,一定要对底层管理决策人员的这种“羊群效应”保持足够的警惕,减少这种非理性的行为的发生。

阅读详细......

2008年3月9日

敏捷精灵日记17

[敏捷精灵日记]

1。同步进行的sprint有如下优点:

· 可以利用sprint之间的时间来重新组织团队!如果各个sprint重叠的话,要想重新组织团队,就必须打断至少一个团队的sprint进程。

· 所有团队都可以在一个sprint中向同一个目标努力,他们可以有更好的协作。

· 更小的管理压力,即更少的sprint计划会议、sprint演示和发布。

2。最佳的团队尺寸

· 59个人被公认为是最佳的团队构成人数。

3。在Scrum中,团队分割确实很困难。不要想的太多,也别费太大劲儿做优化。先做实验,观察虚拟团队,然后确保在回顾会议上有足够的时间来讨论这种问题。迟早就会发现针对你所在环境的解决方案。需要重视的是,必须要让团队对所处环境感到舒适,而且不会常常彼此干扰。

4。宁可团队数量少,人数多,也比弄上一大堆总在互相干扰的小团队强。要想拆分小团队,必须确保他们彼此之间不会产生互相干扰!

5。 在Scrum团队中含有兼职成员一般都不是什么好主意。如果有一个人需要把他的时间分配给多个团队,就像DBA一样,那最好让他有一个主要从属的团队。找 出最需要他的团队,把它当作他的“主队”。如果没有其他人把他拖走,那他就得参加这个团队的每日scrum会议、sprint计划会议、回顾等等。


阅读详细......

2008年2月28日

Scrum介绍系列9--- 产品发布计划(release plan)

Sprint 持续直至产品所有者决定产品已经可以准备发布,此时会有“发布Sprint“来进行最后的整合和发布产品前的检测。如果开发团队一直贯彻很好的开发方法,不断地重构和持续集成,在每一Sprint 中的有效测试,就不会存在许多遗留问题需要清除。

有这样一个问题有时会被提到,是怎样在一个迭代的模式中产生长期的发布计划。在一个项目的起始阶段,开发团队会作出粗线条的发布计划;他们不可能预先得知工作的结果,其重点是创建一个大体的计划提供给项目发展一个大体的方向,并阐明交易决策如何形成(比如范围相对于进度表)。以此作为路标来指引你向目标迈进;在行程中你实际挑选的路程和所做的决策都是途中决定的。


有一些产品发布是以日期界定的;比如:“我们会在11 月10 日的产品展示会上发布我们项目的2.0 版。“在此种情况下,开发团队会在现有的可利用时间内完成尽可能多的Sprint(构建尽可能多的功能)。有些产品要求某部分构建完成才可以说明整个产品的完成,产品不会在这些要求满足前被发布,无论周期长短。Scrum 强调在每一Sprint 中都生产出可以随时交付的编码,开发团队可以进行中间的发布,使客户可以更快的收到产品的效益。


大多数产品所有者会选择一个发布方式,但是会通知其他的——比如,他们会决定发布日期,他们会与开发团队成员一起对Backlog 中项目的完成日期做一大体的估算。在“固定价格/固定日期/固定交货期”的情况下——比如,合同制开发——在这些变量中至少有一个内部存在缓冲区,可以容许不确定因素和变更;在此方面,Scrum 于其他的开发方法并无区别。
阅读详细......