在管理中,虽然我一度将团队比喻为一个分布式系统。在某种程度上这套理论让很多团队收益,不过一些小伙伴也反馈我们在管理中不能忽视人并不完全等同于机器,并有其独特的特点。
本篇整理了在技术管理中,团队成员作为"人"会有哪些特点和心理学效应,帮助我们更好的理解团队的行为和动机。
关于"人"的认知
在管理上,人具有一些积极意义特点,具有一些消极或负面的特点。
例如,我们通常认为管理者具有无上的权力,可以做到让团队成员完全服从。对于分布式系统中的机器,在运维人员眼中就是完全服从的。 但是对于人来说,并非完全服从的。人会根据自己的经验做出一些判断,有时候会错误的理解任务,有时候又会自发的纠正错误的指令。
和分布式系统不一样的是,人并非是无状态的计算节点,而且无法有效的将其知识完全转移到其它节点。那么,人员替换带来的成本会比想象中大。而分布式系统中,节点的替换往往是对系统无害的。
除此之外,人的情绪无法被忽略。有时候,我们以为使用理性的对话,大家就能好好沟通。实际上并不是,在理性之前,需要先从感性上接纳。所以人的理性有限的,很多事情需要优先考虑人的感受,才从理性角度沟通。这一点会带来不小的管理福利,由于人的非理性行为,会花费工作外的时间去研究自己喜欢的东西,而不必付出额外的奖励,有时候这种满足感甚至会抵消高薪资带来的诱惑。
然而,和机器相比,人具有一个致命的弱点,就是懒惰。他们可能会划水,逃避工作。但是这一点人的潜力,某些时候人的工作具有极大的弹性。当进度要求没有那么忙的时候,工作效率并不高,如果需要在特定时间冲刺,又可以爆发出惊人的工作效率(虽然并不持久)。偷懒的另外一个积极意义是可以主动优化工作方法、工具,以提高效率。
最后一点,也是非常重要的一点。无论是机器还是人,在整个系统中,每项任务和节点都是不可靠的。信息不会被精确传达,有可能将收到的信息抛之脑后,或者给出错误的结果。这就是钱学森的系统性思维,我们不能苛求所有组件都能可靠运行,但是能通过优化流程(对产出检错、验证)、机制提高整个系统的可靠性。
心理学在敏捷项目中的应用
基于人的特点,很多管理理论也是基于心理学效应出发产生的。这部分整理了一些常见的敏捷实践和心理学效应。
懒惰和竞争
敏捷管理的套路 Scrum 的原名是争球。它最显著的特点是每个人去任务池中挑选任务,而不是由领导分配任务。
为什么这样做呢?
想想一下,软件工程中(甚至不是软件工程)评估一件人的工作量并不是很容易的事情。大多数人都想领取到轻松任务,在估算上有越多的弹性空间越好。
通过主动领取的方式来管理任务,每个人都会抢着挑选弹性空间越多的任务,并在完成后赶紧完成下一项任务,这样在最终所完成任务的统计上得到非常漂亮的成绩。即使某些时候,绩效和这些数据没有关系,人们也会对任务的成绩非常在乎(他们甚至会为微信运动中的每日活动步数在乎)。
竞争和取得更好的成绩是人的天性,只不过某些时候压抑了这些行为。
站会和社会认同压力
如果我们在朋友圈说自己要学英语,即使很困难但是还是要坚持下去否则会觉得很丢脸。
这种心理学效应被称为"公开承诺效应"(Public Commitment Effect)或者"社会认同压力"(Social Identity Pressure)。
公开承诺效应是指当人们在公众面前做出了一个明确的承诺或承诺行为时,他们会更加努力地遵守这个承诺。这是因为公开承诺会增加个人对自己的责任感,同时也会担心在他人面前失信或丢失自己的社会形象。
每日站会和每日 Code Review 会将团队的工作变得透明。这样在站会时如果公开承诺第二天交付的任务,就会更加努力达成这个目标。
破窗效应
假设一个城市的某个地区有一座废弃的建筑物,它的窗户被破坏了,墙壁被涂鸦和破损。由于这个建筑物显得破烂和无人管理,附近的居民和路人可能会认为这是一个无秩序和不安全的地方。
这种效应叫做破窗效应。
所以一个规则被打破,这个规则基本上就不存在了。
如果我们希望团队的工作日历可靠运行,那么一定要在准确的时间完成准确的动作。例如每个迭代的周一上午开启 IPM,以及特定的时间进入 UAT。即使存在部分任务没有完成的情况(可以被排除在 UAT 范围)。
如果我们有本地代码规范检查不合格项,那么一定需要清零否则会越来越多。
责任稀释假说和公地悲剧
责任稀释假说(The Bystander Effect)是一种社会心理学理论,用于描述在紧急情况下,当有很多人在场时,每个个体愿意提供帮助的可能性会减少。
这一点非常类似于公地悲剧。如果一件事情的负责人超过了两人,那么也就意味着没人为它主动负责。
一项任务可以由多个人完成,但是一定要指定一名 Owner,才能让工作顺利进行下去。 所以敏捷工作中,任务卡片中只有一个人为其负责。
拓展来看,一个项目不能出现两个 PM、TL 或者类似的负责人,就像两个合伙做生意的人最好让某个人占主导地位,持股超过 50%。
虽然我们不能让两个人承担同样的责任,但是其中一人可以作为 backup 存在。
相关性不等于因果性谬误
"相关性不等于因果性"(Correlation does not imply causation)是一种常见的认知谬误,指的是当两个或多个变量之间存在相关性时,不能简单地认定其中一个变量是因果关系的原因。
这种谬误会为团队达成合理的共识带来困难。人们更愿意相信经验、观点,而不是优先寻找证据。
为了让项目中的决策、共识更加准确,我们必须寻找证据来指导日常决策和行为。数据是证据中最有说服力的一项,所以我们需要度量。
通过度量,我们能得到团队运行的基本情况。但是度量不能完全说明问题,那么我们就需要多维度的度量,通过多个度量结果验证事实。
动态的平衡
写在最后,需要特别声明一下。
上述的所有内容有其道理,当时不一定应用的项目中就能马上见效,也不能说它是绝对对的。
因为团队和项目管理是一项动态平衡,某一项因素的打破都会带来综合影响。
这也是为什么我们常常误解敏捷宣言,在敏捷宣言中,左边的很重要但是是建立在右边的基础之上的。
而右边具体怎么做?这是一个动态平衡。
让我们重温一下敏捷宣言:
我们一直在实践中探寻更好的软件开发方法,
身体力行的同时也帮助他人。由此我们建立了如下价值观:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
也就是说,尽管右项有其价值,
我们更重视左项的价值。
参考资料
[1] https://agilemanifesto.org/iso/zhchs/manifesto.html
[2] https://www.scrum.org/
[3] https://www.sciencedirect.com/science/article/abs/pii/S0022103104000654
[4] https://en.wikipedia.org/wiki/Broken_windows_theory
[5] https://en.wikipedia.org/wiki/Bystander_effect
[6] https://en.wikipedia.org/wiki/Correlation_does_not_imply_causation