笔者近期读了一本书,名叫《凤凰项目--一个IT运维的传奇故事》。全书讲述一名IT经理,临危受命,对某公司的IT运维部进行改革,最终化腐朽为神奇,带领IT运维部帮助公司打败了竞争对手的故事。书中特别提到了一个关于等待时间的理论,颇有意义,故在此说说自己的解读。
理论背景
书中描写了这样一个场景:一名牛人工程师,几乎就没有他解决不了的问题。渐渐地,所有人都找他解决问题,牛人也变得越来越忙。最终导致的结果就是,一个只要30分钟的问题,到牛人这里需要几个星期才能解决,就因为牛人实在太忙,而这个问题只能一直排队,直到牛人忙完之前累积的事情。
为了分析及解决上述问题,书里提出了等待时间的理论。
等待时间的理论
“‘等待时间’取决于资源使用率。‘等待时间’是‘忙碌时间百分比’除以‘空闲时间百分比’。也就是说,如果一个资源的忙碌时间是50%,那么他的空闲时间也是50%。等待时间就是50%除以50%,也就是1个单位时间。假设这个单位时间为1个小时,则表示一个任务在处理前的排队等待时间是1小时。
如果一个资源是90%的时间是忙碌的,等待时间就是‘90%除以10%’,即9个小时。换言之,任务排队等待的时间,将是资源50%空闲时的9倍。”
(P343,略作修改)
写成函数公式:
等待时间=(忙碌百分比)/(空闲百分比)
画成图表:
图表显示:横坐标轴上是给定资源的忙碌百分比,纵坐标轴上是大致的等待时间(更确切地说是队列长度)。曲线的形状表明,当资源使用率超过80%时,等待时间会直线上升。
你是不是觉得这个理论是有点抽象,而且不好理解?你是不是会奇怪,为何不忙反而效率高?
解读
先看这个例子:
2台配置一样的电脑。一台CUP使用率50%,另外一台是90%。2台电脑分别打开一个相同的大文件,你猜哪台电脑先打开?
显而易见,一定会是使用率50%的电脑先打开,因为90%的电脑可能会卡住或干脆死机了。
再举个例子:
你分别给一个工作较闲的人和一个工作很忙的人,安排做同样一件的事情(假设2人工作能力一样,工作态度也一样)你预计谁先做完?
不用说,一定都是闲人先做完,因为闲人接到任务就能立即处理。而忙人一般要忙完手头的事情后,才能开始,自然完成的较晚。
从上面的例子可以看出,不是说不忙就效率高,因为该理论并不讨论做事效率。该理论实际是说当不忙时,才能更及时得处理临时突发事情(或者计划外)的事,且不影响原来的计划。
简单地说,该理论不关心做事快和慢,只关心这件事完成得早还是晚。
顺便插一句,全书另一个重要理论,就是说计划外的事情是导致事情原来越多的罪魁祸首,而且计划外的事也是导致计划内的事情无法按计划完成的元凶之一。有兴趣的读者可以参考笔者的另外一篇文章:如果你忙的不可开交,请试试三步工作法
笔者同时要指出,该理论并不是什么新发现,在现实中,其实早已经被广泛应用,只是我们没有注意或没有建立数学模型而已。
比方说IT行业,如果程序员估计某个功能开发需要5天工作量,则实际工作中,他会安排8天或10天的开发计划,这是很常见的现象。用上面的理论解释,即5天的工作量计划只排5天,则平均每天的忙碌率为90%以上接近100%,而计划8天的话,忙碌率就只有60%。只有计划8天或10天,该开发任务才更有可能按计划按时完成,因为程序员计划外的工作太多,随时都会出现更紧急任务来破坏原来的计划。
工厂生产也一样,明明20天可以完成的订单,对客户往往会说是25天或30天,道理是一样的。
现在你一定发现,一点都不稀奇,不就是现实生活中所谓的留出余量嘛。为啥要留余量?这样就可以应付各种突发事件(计划外的事情)。
说白了,这理论真的非常非常简单。只不过书中用数学模型一解释,立马变得高大上了(人要衣装,道理也要数学装,嘻嘻)
所以,看上去不太忙的人,反而才是最可能按时完成计划的人,因为他们不怕突发事件。因此不论给团队安排工作,还是给自己安排事情,请记得都不要排的太满,安排70%-80%就行了。当然与机器不同,人还是会有情绪和惰性的时候,也会有经验和能力之分,在安排计划时,也要适当考虑。
最后
用作者的原话作为本文总结:
“科学的目标是用最少的原理来解释最多的现象,并揭示惊人的内涵。我认为这张图很能说明问题。它有效阐述了过度压榨IT工作者灾难性的后果,以及在IT运维部门使用传统项目管理方式的错误。”(P345)
欢迎阅读笔者关于本书《凤凰项目》的另外一篇文章:如果你忙的不可开交,请试试三步工作法