免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

用奖励制度改善团队习惯?

  • 2008-07-07
  • 本文字数:994 字

    阅读完需:约 3 分钟

有时候,团队养成新习惯——编写单元测试、修复编译器警告、不破坏构建——会有些困难。我们该怎样帮助团队改掉习惯? 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?

2008-07-07 08:45967
用户头像

发布了 197 篇内容, 共 50.3 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营 - 模块五作业

Julian Chu

架构实战营

什么是强化学习?

华为云开发者联盟

机器学习 强化学习 智能体 环境 动作空间

架构实战营 模块五 作业

一雄

作业 架构实战营 模块五

手撸二叉树之从根到叶的二进制数之和

HelloWorld杰少

数据结构与算法 8月日更

JVM集合之开篇点题

阿Q说代码

JVM hotspot 8月日更 栈式架构 寄存器架构

架构实战营模块五作业 -微博评论高性能高可用架构

hello

架构训练营

Lodash 是什么

HoneyMoose

架构训练营模块5-作业

sophiahuxh

kafka - 基础介绍

旺仔大菜包

kafka

【Flutter 专题】65 图解基本 TextField 文本输入框 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

浪潮云IBP机器学习平台通过中国信通院可信云评估 荣获“先进级”认证

浪潮云

云计算

Python代码阅读(第11篇):展开嵌套列表

Felix

Python 编程 Code Programing 阅读代码

细数浅拷贝和深拷贝

cxuan

Java 后端

也许你曾对怎么样才算认真做事情感到好奇,这本书给我三个启发,我想与你分享。

叶小鍵

JavaScript 中 Array map() 方法

HoneyMoose

Rust从0到1-高级特性-不安全的Rust

rust unsafe 高级特性 不安全

Pulsar Manager - Use Docker

ZHOUWEI

Apache Pulsar

JavaScript 的 null 和 undefined 判断

HoneyMoose

iOS开发:真机调试提示XXX, but code signing identity Apple Development问题

三掌柜

8月日更 8月

Java双刃剑之Unsafe类详解

码农参上

Java unsafe 8月日更

计算机字符编码的前世今生

vivo互联网技术

Unicode utf-8 编码 ASCII 字符集

从0搭建在线聊天室,只需4步!

网易云信

Linux之wget命令

入门小站

Linux

Regan Yue带你一起学习微软AZ-900认证的有关知识「 第Ⅲ章」

Regan Yue

云计算 微软 8月日更

JavaScript 中 Array map() 方法

HoneyMoose

vue入门:组件概述

小鲍侃java

8月日更

【Vue2.x 源码学习】第三十八篇 - 组件部分 - 组件的编译

Brave

源码 vue2 8月日更

在线图片水印平铺工具

入门小站

工具

高可用架构演进之单元化

华为云开发者联盟

物联网 IoT 华为云

SpringBoot dockerfile生成镜像

Rubble

8月日更

从字节码探索代理模式

4ye

Java 后端 字节码 代理模式 8月日更

用奖励制度改善团队习惯?_敏捷_Mark Levison_InfoQ精选文章