世界顶尖运动队教练的成功秘诀
本文列出了来自于顶级教练Marc Lammers的9条原则,他是在打造世界最佳曲棍球队的过程中发现这些原则的,文章把这些原则映射到了软件开发实践之中。
作者 Mark Levison译者 李剑 发布于 2008年7月7日 上午8时45分
有时候,团队养成新习惯——编写单元测试、修复编译器警告、不破坏构建——会有些困难。我们该怎样帮助团队改掉习惯?Clint Shank为此设计了一个游戏。
现在Erik Ramfelt已经给Hudson写了个“持续集成游戏插件”,它假定开发人员有时候需要被推动着做正确的事情:
我从前碰到过有人破坏构建的事情。为了避免这种事情发生,我曾经试过多种方法,比如拿一个“纳粹徽章”,谁破坏了构建就戴上它,或者每人每次罚款一英镑。但这都是消极应对。为什么不奖赏那些没有破坏构建的人呢?为什么不奖赏那些遵守了最佳实践,把工作分成小块完成,尽早检入,频繁检入的人呢?
Clint在读过Darin Cummins的论文“开发游戏(The Development Game)"(于Agile Development Conference 2004上发表),就有了个念头,打算奖赏为构建带来好处的人,惩罚对构建造成不良影响的人。
在Eric的实现中,每个人的总积分由以下规则决定:
游戏的规则是:
- 每次破坏构建扣10分
- 破坏已经破坏的构建得0分
- 成功构建得1分(不稳定的构建不得分)
- 新的测试失败扣1分
- 新的测试成功得1分
依赖于其他插件的规则:
- PMD Plugin。添加/移除一个HIGH优先级的警告扣/得5分。添加/移除一个MEDIUM优先级的警告扣/得3分。添加/移除一个LOW优先级的警告扣/得1分。
- Task Scanner Plugin。添加/移除一个HIGH优先级的任务扣/得5分。添加/移除一个MEDIUM优先级的任务扣/得3分。添加/移除一个LOW优先级的任务扣/得1分。
- Warnings Plugin。添加/移除一个编译器警告扣/得1分。
- ...
Clint警告说,你必须要注意那些出千的(每小时检入一些细小琐碎的、无意义的东西),而且要常常重置积分,让每个人都有机会胜利。
在Scrum Development讨论组中有一些其他想法。Graeme Matthew指出,如果奖赏太重,那么开发人员可能就会把注意力放到提高积分上面,而不是给客户交付价值。Ilja Preuss说:
另外一点要牢记的就是,外在动机常常都是跟内在动机严重冲突的。也就是说,如果你的团队已经具备了良好的内在驱动力,那么加上外部驱动只会让事情变得更糟。
最后Pete Deemer说到:
查看英文原文:Rewards to Improve Team Habits?我觉得这种个体激励的复杂框架会鼓励大家多思考“自己”,进而对“整体”造成无意中的损害。它会在微观上进行优化,但这种结果从宏观上来看却是次优的;而且人们会精打细算,做很多形式上的工作,而不是为客户服务。
本文由Per Jacobsson所作,目标读者为有意了解Lisp的Java开发人员。文章探讨了当前可以运行于JVM上的不同Lisp方言,以明快简洁的方式介绍了Lisp程序设计工作机理和其独特之处,并在最后演示了Lisp代码同Java系统的整合过程。
本文以一个实际应用的例子为引子,探讨Ruby/Rails在非传统web系统中应用,以及研究如何定制以Rails为基础的领域特定的MVC框架。
本视频对云计算进行了简要的介绍,主要包括了五部分内容:首先带大家认识“云”,然后对计算机的发展过程进行了阐述,接着介绍了业界现状和企业级/世界级计算的新布局,最后对云计算做了一下展望。
在这篇文章中,Bryon Jacob和Chris Berry介绍了AtomServer,一个基于Apache Abdera的完整Atom存储实现。在去年,作者一直致力于为其雇主——Homeaway——实现一个Atom存储,现在已开源了其Atom存储框架:AtomServer。
开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。
本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。
InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。
2 条回复
回复