本书作者是开发团队Leader,本书记录了他带领团队实施Scurm过程中的经验教训。全书短小精悍,言简意赅。
以下是书中一些观点信息的摘抄:
1:Nokia总结出的迭代开发的基本要求:
1.1:迭代要有固定时长,不能超过六个星期;
1.2:在每一次迭代的结尾,代码都必须经过QA的测试,能够正常工作;
2:Nokia的Scurm标准:
2.1:Scurm团队必须要有产品负责人,而且团队都清楚这个人是谁;
2.2:产品负责人必须要有产品backlog,其中包括团队对它进行的估算;
2.3:团队必须要有燃尽图,而且要了解他们自己的生产率;
2.4:在一个sprint中,外人不能干涉团队的工作;
3:产品负责人之外的人也可以向产品backlog中添加故事,但是他们不能说这个故事有多重要,这是产品负责人独有的权利。他们也不能添加时间估算,这是开发团队独有的权利;
4:我尽力把内部质量和外部质量分开。
4.1:外部质量是系统用户可以感知的。运行缓慢、让人迷糊的用户界面就属于外部质量低劣;
4.2:内部质量一般指用户看不到的要素,它们对系统的可维护性有深远影响。可维护性包括系统设计的一致性、测试覆盖率、代码可读性和重构等等;
5:经验告诉我,牺牲内部质量是一个糟糕透顶的想法。现在节省下来一点时间,接下来的日子里你就要一直为它付出代价。一旦我们放松要求,允许代码库中暗藏问题,后面就很难恢复质量了;
6:为了调整不同的人对故事的工作量的估算的差异,我们采用了计划扑克方法:每个人独立估算工作量,然后公开,差异比较大的成员互相沟通直至时间估算趋于一致;
7:故事是可以交付的东西,是产品负责人所关心的。任务是不可交付的东西,产品负责人对它也不关心;
8:产品负责人往往不能对技术故事的优先级作出正确的权衡;
9:只要让团队坐到一起,就会有立竿见影的成效。过上一个sprint,团队就会认为挪到一起是绝妙的主意。“一起”具有以下含义:互相听到,互相看到,相对独立(团队突然开始激烈讨论,不会影响团队外的任何人);
10:我们的目标是在每个sprint之间安排一个实验日(这一天员工可以干任何想干的事情),目前实际执行的是每个月有一个实验日,放在每个月的第一个星期五;
11:TDD(测试驱动开发)很难,但是在一开始没有用TDD进行构建的代码库上实施TDD……则是难上加难!
12:如果你深陷手工回归测试的泥潭,打算让它自动化执行,最好还是放弃吧。首先还是应该想办法简化手工回归测试,然后再考虑将真正的测试变成自动化执行;
13:我的经验是:宁可团队数量少,人数多,也比弄上一大堆总在互相干扰的小团队强。要想拆分小团队,必须确保他们彼此之间不会产生互相干扰;
14:我们在实施Scrum的时候,所做的第一件事情就是打乱基于组件的团队,创建跨组件的团队。它减少了诸如“我们没法完成这个任务,因为我们在等服务器那帮家伙完成他们的工作”之类的情况发生;
15:“团队凝聚力”是Scrum的核心要素之一,如果一个团队合作工作达多个sprint之久,他们就会变得非常紧密。他们会学会如何达成团队涌流(group flow),生产力会提升至难以置信的地步。
《硝烟中的Scrum和XP》:作者主导Scrum过程的实战经验,四星推荐的更多相关文章
-
【在网页中获取截图数据】Chrome和Firefox下的实战经验
[转载自我在segmentfault的专栏:https://segmentfault.com/a/1190000004584071] 最近在实现一个功能,需求如下: 前提:当前页面无弹窗 页面任意位置 ...
-
硝烟中的Scrum和XP
硝烟中的Scrum和XP 初次接触Scrum和XP(更加准确的说是"看到"),心里不免有些疑问,软件开发为什么会有如此多的方式,难道软件开发.软件工程不就是写写代码的事儿吗?直到后 ...
-
硝烟中的Scrum和XP-我们如何实施Scrum 12)发布计划 13)组合XP
12 怎样制定发布计划, 处理固定价格的合同 一次只计划一个sprint的事情会显得提前量不足, 提前做计划是个好习惯; 尤其是签了固定价格的合同之后, 不得不预先计划好, 防止无法按期交付的危险情况 ...
-
SCRUM与XP的区别和联系
相同点:SCRUM和XP都是敏捷开发的方法论,都体现了快速反馈,强调交流,强调人的主观能动性等基本原则,而且多数“最佳实践活动”都互相适用. 不同点:Scrum非常突出Self-Orgnization ...
-
Dev环境中的集成测试用例执行时上下文环境检查(实战)
Dev环境中的集成测试用例执行时上下文环境检查(实战) Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术 ...
-
Java中的成员初始化顺序和内存分配过程
Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...
-
Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用
Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...
-
Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用
Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...
-
xp硬盘安装Fedora14 过程记录及心得体会(fedora14 live版本680M 和fedora14 DVD版本3.2G的选择)
这次电脑奔溃了,奇怪的是直接ghost覆盖c盘竟然不中.之前电脑上硬盘安装的fedora14操作系统,也是双系统.不知道是不是这个问题,记得同学说过,在硬盘装fedora之后,要手动修改c盘隐藏的那个 ...
随机推荐
-
Java中的递归原理分析
解释:程序调用自身的编程技巧叫做递归. 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用 ...
-
Spark入门级小玩
·背景 随着周边吐槽hadoop的声音渐渐多起来之后,spark也逐渐进入了大家的视野.之前,笔者有粗略的写过一篇spark的安装和性能比较[http://www.cnblogs.com/zacard ...
-
使用SQL Server Management Studio 创建作业备份数据库
在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...
-
Mongoose与bluebird结合使用实例
nodejs的所有调用几乎是全异步的,而所有的IO操作也都是通过回调函数才能知道结果. 如果一个异步调用依赖另一个异步调用,如果没有Promise的话,有可能陷入传说中的回调地狱. bluebird实 ...
-
解析Linux中的VFS文件系统之文件系统的来源与简介(一)
最近挂载了N多的文件系统,大致了不同文件系统的相应特性及挂载方式,却还是对Linux的文件系统没有从源码方面去了解.不求甚解确实不好不好. 于是借鉴一些大牛的博客及自己的理解,总结了博客系列: 一.V ...
-
eclipse无法识别Web项目的问题
1.如果导入web项目后,eclipse无法将其识别为web项目,因而无法发布到tomcat容器中的话,可以采取以下步骤尝试解决: 选中项目名称并点击右键,选择“Properties”项,在出项的面板 ...
-
以 Angular 的姿势打开 Font-Awesome
环境 Angular: v5.2.9 Font-Awesome: v5.0.10 angular-fontawesome: v0.1.0-9 无须再用传统的 Web Font 方式 以前习惯于 Fon ...
-
16)django-ajax使用
通过ajax可以悄悄的把数据传输给服务器,实现页面无刷新. 一:ajax使用语法 1)普通方式 ajax使用语法: $.ajax({ url:"/host", //提交到那里 ty ...
-
SqlServer数据库碎片整理——BCC SHOWCONTIG
SQLServer提供了一个数据库命令——DBCC SHOWCONTIG——来确定一个指定的表或索引是否有碎片. 示例: DBCC SHOWCONTIG语法: 显示指定的表的数据和索引的碎片信息. ...
-
Python全栈day21(调用模块路径BASEDIR的正确方法)
正常写python程序会有一个可执行的bin.py文件,假如这个文件需要导入my_module里面定义的模块,应该怎么设置sys.path 文件夹目录结构如下,因为bin不在与my_module同级目 ...