为什么A经理的团队总是会陷入加班与救火之中
最近在看一本名为《稀缺》的书,作者从行为经济学的角度解释了穷人为什么会更穷,忙碌的人越来越没有时间,节食的人总是失败。由于缺乏闲余导致的带宽负担会进一步导致稀缺,由于总是优先处理紧急的事情而不去处理从长远来看重要的事情导致我们反复低效处理紧急事务并越陷越深。
从这本书中我们可以体会到在项目管理中我们经常犯的一些常识性错误和可能的纠正策略。本文只能通过我自己的一些体会来说明问题,而《稀缺》一书的作者是通过大量的行为学实验得到的结论,对此有兴趣的童鞋可以自己去看这本书。
关于A经理的故事
如果认识A经理的人都应该知道,A经理的团队总是在四处救火、加班赶进度,这几乎是必然发生的。
A经理的项目几乎都是从一开始就督促团队加班的(当然因为加班已经是常规态,在紧要关头只好超负荷加班了)。A经理一定会认为自己是在做正确的事情,因为他是在节省时间,希望完成更多的事情,但熟识A经理的人都知道,这些全程加班出来的项目,并没有一个取得了比较好的效果。当然,造成项目效果不好的原因是多方面的,我们不能单从一个方面得出结论,但是作为曾经的A经理的团队中的一员,我想结合《稀缺》一书说一说自己的体会。
在项目的前期,A经理设定的交付日期总是一拖再拖,让我们感觉交付的日子很遥远,但是不论是否是最后关头,A经理总是在守着我们加班。突然有一天,A经理让我们感到这个阶段验收的日子马上就要到了,时间一下子紧了起来,加班的负荷更大了,我甚至都没有洗头发的时间了,想到油油的头发我总是会嫌弃我自己,好好写代码的心情又少了一些。时间一紧,我自然就很少重构代码了,能够决眼下的问题就不错了,就算不重构从外表看来应该也没什么太大的差别,先应付这次的验收再说吧,真希望能早日从加班的苦海中摆脱。
匆匆忙忙地应付过一次验收,换回来的是更多的客户问题。A经理认为我们下阶段的目标就是处理客户反应的问题,只要客户不再提问题我们就能够验收。当问题列表出来以后,在安排任务时A经理最关心的是如何修改完所有的问题,所以我们应该优先把返回的问题中最好修改的问题先给修改掉,而不太关心这些问题是否重要。对于那些用户提出的抽象的不好用的说法,或者需要修改大量代码甚至更改架构才能解决的问题,总是会被留到最后处理,然而到最后我们往往会发现,如果处理这些问题,前面的努力就会白费了。于是新一轮的权衡总是关于我们怎么做最小的改动去修补这些问题,代码量越来越大,系统越来越复杂,重构的可能性越来越小,大家都很忙碌,总是在超额加班追赶进度,从来没有人思考产品应该是什么样子。
又一次验收前的突击加班,A经理看了看问题列表,还算比较满意,毕竟我们除了那几个很难改的问题,大多数的问题已经被修改了。
据说这一次的验收,客户还是不满意,虽然任务列表上的问题变少了,但是客户还是觉得产品不好用,毕竟还是有问题没有解决呢。客户又挑了几个新毛病,又一轮的修改问题开始了,产品并没有太大的改观,但是代码却越来越复杂,每改一个问题都觉得步履维艰,但是谁也抽不出时间重构。
项目团队仿佛陷入不断加班的死循环。
通过上面的故事,结合《稀缺》一书,我们可以得到关于项目管理的一些结论:
不要总想着隔很长时间做一次大而全的汇报。
用《稀缺》一书中的观点可以这样解释这个问题:人们往往不会因为未来的问题感到十分强烈的紧迫感,眼下我们还有这么多的问题要处理,未来的事情可以再缓一缓。遥远的时间节点和近在眼前的时间节点,当然是比较近的那个能发挥作用。长期的目标,无法像短期目标一样给人足够的紧迫感,激发人们完成任务的积极性。
结论:应该将长期的大而全的汇报任务分割成小的交付目标频繁交付。
在产品的建设过程中,总是优先处理客户提出的所有问题并不能做出好的产品。
用《稀缺》一书中的观点可以这样解释这个问题:重要而不紧急的问题总是会被人们所忽略,以至于从来都不会处理那些重要的问题。
结论:在项目推进的过程中,应该优先处理的不应该是客户提出的浅显问题(紧急问题),而是关系到产品是什么、系统架构是否合理、工作是否能继续向前推进的问题(重要问题)。
加班并不像我们想象的那样可以纯粹地通过增加工作时间提高工作效率。
用《稀缺》一书中的观点可以这样解释这个问题:闲余的减少会增加员工的带宽负担,因为本可以用来处理自己的生活问题的时间/阅读与自我提升的时间/与家人相处的时间大量地被工作占用了,员工在敲代码的时候会想到昨天又没有时间洗头发,好久都没有回家了之类的琐事,员工的带宽负担增加了,相应地工作智力和控制力都有所下降。表现出来就是工作效率地降低,让增加工作时间不能产生相应增长的产出,反而还有可能导致产出的下降。
结论:加班可以作为日常工作的一个缓冲来应对突发事件,绝不能强制规定持续性的加班。
救火的状态会导致我们在反复救火的陷阱里越陷越深。
用《稀缺》一书的观点可以这样解释这个问题:长期处在没有闲余的状态(即稀缺状态)会让人产生管窥心理,从而看不到管子外面的风险。长期处理紧急而重要的事情会让人们忽略重要而不那么紧急的事情,从而导致更为严重的后果,比如这个项目借用了另一个项目的时间,以至于另一个项目也要延期才能完成,比如过于在意工程交付时间而忽略程质量,需要更多的时间弥补质量上的缺陷。
结论:合理的做法是通过创造适当的闲余来保证常规工作不被打乱。如果需要处理的突发事件是常态,则应该隔离出专门处理应急工作的设备、人员或者时间。(设备:比如医院里的急症室、集群中的备用机;人员:比如总经理助理、专门处理客户问题的技术支持;时间:比如大学里的答疑课程、电视问政节目等)
不合理或安排地过紧的计划会让我们陷入救火的状态,过犹不及。
用《稀缺》一书中的观点可以这样解释这个问题:闲余是重要的缓冲剂,让我们的日常工作不至于被必然发生的小错误和突发事件所打乱,从而陷入稀缺陷阱。原书中有一个很好的比喻,道路在70%使用量时运行良好,85%的使用量时则会出现堵塞甚至瘫痪,而理论上如果85%使用量的道路如果车与车之间总是能保持合理的距离是可以正常运行的,但实际上如果没有适当的可以帮助容错的闲余的存在,我们甚至不能容忍哪怕是一个司机的一个急刹车,因为一旦有一点点错误或意外发生就会陷入全线瘫痪。
结论:最好的计划是略有闲余的计划,用于缓冲必然出现的错误与突发事件。
为什么A经理的团队总是会陷入加班与救火之中的更多相关文章
- 敏捷转型谁先动:老总,项目经理or团队
摘要: 敏捷转型成功的企业究竟是从老总开始?还是从项目经理开始?还是团队本身具有这种意识?相信还有很多想要转型敏捷的公司都存在这样的疑问. 从06年首届敏捷中国开发者大会召开到现在,敏捷方法在国内的应 ...
- 推荐一本写给IT项目经理的好书
原文地址:http://www.cnblogs.com/cbook/archive/2011/01/19/1939060.html (防止原文作者删除.只能拷贝一份了) 推荐一本写给IT项目经理的好书 ...
- 华为敏捷/DevOps实践:产品经理如何开好迭代计划会议
大家好,我是华为云DevCloud项目管理服务的产品经理恒少,作为布道师和产品经理,出差各地接触客户是常态,线下和华为云的客户交流.布道.技术沙龙. 但是线下交流,覆盖的用户总还是少数.我希望借助线上 ...
- [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐
[课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...
- atitit.团队建设总结o6o fix
atitit.团队建设o6o fix #----- 无限放大梦想 2 要有自己的方向...主动添加自己的东东.. 3 有几个tech site,能晓得最新的的知识.. 3 有问题多交流, 3 失败的造 ...
- Scrum团队成立3.0
博客园 首页 新随笔 联系 订阅 管理 随笔 - 23 文章 - 0 评论 - 26 0428-Scrum团队成立3.0 ------------------------------3.0---- ...
- [团队项目3.0]Scrum团队成立
Scrum团队成立 5.Scrum团队成立 5.1 团队名称,团队目标.团队口号.团队照: 5.2 角色分配 产品负责人: 决定开发内容和优先级排序,最大化产品以及开发团队工作的价值. Scrum M ...
- 从零起步做到Linux运维经理, 你必须管好的23个细节
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...
- 软工网络15团队作业4——Alpha阶段敏捷冲刺2.0
软工网络15团队作业4--Alpha阶段敏捷冲刺2.0 1.提供当天站立式会议照片一张. 2.每个人的工作 成员 昨天已完成 今天计划完成 郭炜埕 熟悉微信web开发者工具 完成新建话题界面的设计 郑 ...
随机推荐
- 【记录】dvwa总结
一.Brute Force 选择集束炸弹 设置payload stack attck 防御:密码加密,使用验证码,使用统一的参数代替帐号和密码. 二.Command Injection |,||,&a ...
- Python中 字符串 转换为 字典
需求:把以下字符串转换为字典 #字符串 testStr = '{ "pName": "Ceshi", "gender": 1, " ...
- PIE SDK图层树伙伴控件示例
1. 功能简介 TocControl控件的主要作用是显示当前加载的图层有哪些.采用什么样的符号等,目的是使用户对当前加载的数据和结构有一个总体的把握.与之相关联的伙伴控件有MapControl,Pa ...
- js 中的! 和 !! 的区别
Js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1.!可将变量转换成boolean类型,null.undefined和空字符串取反都为false,其 ...
- CentOS6 克 隆
原始机子关机 自己设置名字 保存地址 开机 配置hosts 后面的为你要设置的名字不配置可能xshell链接上不了网 更改名字: 配置网卡 删除物理地址 mac 和 uuid 删除网卡 重启
- zookeeper 节点信息
使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段: czxid. 节点创建时的zxid. mzxid. 节点最新一次更新发生时的zxid. ctim ...
- .NET平台常用框架整理
基于.NET平台常用的框架整理 转自:http://www.cnblogs.com/hgmyz/p/5313983.html 首先谢谢楼主,以后备用 自从学习.NET以来,优雅的编程风格,极度简单 ...
- TOJ 1856 Is It A Tree?
Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...
- flutter initializing gradle终极解决方案
自己开发的公众号,可以领取淘宝内部优惠券 修改flutter.gradle文件 这种做法网上一大堆的教程,如果你还没改过建议先试下,比如这篇 Flutter 运行 一直Initializing gra ...
- Python爬虫《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...