什么是Scrum?
Scrum是敏捷开发方法中的项目管理方法,这周现学现用,感觉挺不错。下面是从blog.zenmeban.org看到的一段介绍,我觉得很有同感:
Scrum属于敏捷开发范畴的一种开发流程,以英式橄榄球争球队形(Scrum)为名,Scrum将软件开发团队比作橄榄球队,有明确的更高目标,具有高度自主权。紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。
Scrum的运行方式又很多种,很多公司应用起来也会有些自己的改变,一个简单的Scrum Meeting包含3个要点:
- 从上一次Scrum到现在你做了什么
- 从现在到下一次Scrum你要做什么
- 有什么问题无法解决的
一般如果大家坐在一起,那么每个人都说一下,可能也需要比较长的时间,不适合每天进行,但是如果通过一个多人协同交流系统(比如IRC)来进行,那 么就会迅速很多,多人可以同时发言,发言之后可以查看其他人的发言,效率大幅度提高。一般20人团队,只要没有重大问题,那么3到5分钟的时间就可以进行 完毕,非常适合在每天进行。那么有人会问,这样的几分钟的一个小流程能解决什么问题呢?对于没有亲身经历的人可能不太容易理解。可以这样说,每天的这短短 几分钟时间就能是每天的8小时的工作效率提高一大步的。为什么这样说呢,因为,虽然每个人只有3句发言,但是这3句话要说明,上一个工作周期都作了什么, 下一个工作周期要做什么,因为每天进行,所以大家很容易回忆起来你上次的报告是怎么说得,所以也就很容易的印证,你这次报告的已完成工作跟上次的要进行工 作是否匹配,也很容易知道,你的每个工作周期的工作量是否合适,我想每个人都一样,如果你自己都觉得你的这个工作周期的工作量不太够的话,那么你也一定会 认为别人都这样觉得,这是一个非常强烈的心里暗示,如果你这个工作周期的工作非常繁重,完成的状况非常好,那么你也就会非常的理直气壮了。所以因为每天的 这短短的几分钟处使你在整个工作周期都要集中经历,提高工作效率,这样每天的工作完成情况非常良好,那么也就不会产生无故的加班行为,那样你就有更多的个 人时间来进行你的个人事务,所以大家的工作效率都会非常的高,企业的整个项目进程也会相应的非常高效。这样企业也就可以赚取更多的利润,也就可以回报给员 工更多的利益。
所以我非常的不理解有些老板特别的喜欢看到员工坐在办公桌前超时工作(加班),感觉他好像榨取了更多的员工的价值一样。可是这样带来的必然是正常的 工作时间的效率低下,所以我对某些自以为很了不起的,标榜着自己的加班文化的企业很是不屑,明明可以在短时间之内完成的工作也要拖到下班再加班,可能还不 能完成。这样有什么意义呢。曾经有人跟我说过,在他的公司,如果你工作效率很高,反而得不到老板的赏识,因为老板认为你做的快说明工作没有难度,只有做得 慢了才说明难度大,才会受到重视,真不知道这是什么逻辑。
所以轻量级的迭代流程就显得非常重要了,可以在不浪费大量会议时间的情况下,对过往的流程进行快速的复查,发现问题,找到解决的办法。是提高工作效率的非常有效的手段。
就我个人而言,我是非常的反感加班的,即便有加班费我也宁愿准时回家吃饭、睡觉。
所以每天五分钟的scrum带给你的是什么呢?是高效的工作效率,更多的和家人在一起的时间。对企业来说,就是高效的完成项目进度,员工更快乐的工作,单位时间创造更多的价值。
Scrum还有其他的一些特征,比如30天一个迭代周期的“冲刺”,小于7人的小团队,以及”站着开会“的要求(为了保证Scrum meeting在15分钟内结束)。可以参考这一篇短文”什么是Scrum“,或者看看这本电子书“Scrum Checklists中文版”。
其实不止是软件项目管理,我觉得做research也可以采用类似的思路。 以前听人说过外国某两个教授效率极高,paper出的很快,很向往;问及原因,很简单:因为他们两人天天坐在一起讨论。问题是,为什么学校里每周见面的讨论班制度运作的效率不高呢?团队不够小是一个原因,导师的时间有限也是一个原因。但根据我的经验,每周跟导师见一次面很容易导致平时工作不是特别紧张,每次讨论之前一天效率很高,讨论过后效率又会降低。我猜想如果用Scrum这种短会的策略,是否能提高效率呢?比如,每两天在MSN上讨论一次,汇报内容不超过两句话?
如何测试一支钢笔
昨天的培训课讲的是如何建造高质量的软件,测试自然是最重要的。就拿一支钢笔来说,怎么测试一支钢笔?或者说,怎么衡量一支钢笔的质量?
比较容易想到的是“钢笔必须能写字,写出的笔划要连贯”。但是再考虑一下,其实还有很多问题,比如:
- 能在不同的纸上写吗?能在墙上写吗?笔尖朝上,倒着拿还能写出字吗?
- 能在不同的环境下写吗?水里?沙漠?低温?太空?
- 笔的形状是否适合手握?(想像一件用砂纸做的T恤……)
- 要用多大的力气才能写出字来?
- 长期放着不用,墨水会不会堵住?
- 加一次墨水能用多长时间?
- 笔上的标签有没有错别字?是否考虑了globalization,不同国家、不同文化?logo会不会让某种人反感?
- 笔容易折断吗?如果折断了,飞出来的东西会不会伤到人?
- 把笔放到嘴里咬会不会有危险?小孩总会乱吃东西。
- ……
其实还能写出更多条测试要求来。总之,测试还是很有学问的。Quality永远都比Quantity重要,安装到用户机器上的软件宁愿少一些feature,也要保证质量。
另外,除了著名的Pentium浮点运算错误,NASA的航天器单位换算出错等经典案例外,在课上又了解到一条:SQL Slammer病毒,2002年的一个SQL Server漏洞导致世界上大部分Internet都挂了,连ATM都取不出钱了。(因为中国当时在过春节,所以没受多大影响。)