InfoQ

InfoQ

文章

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

“番茄”让时间变成我们的朋友

作者 滕振宇 发布于 2009年12月16日

领域
过程 & 实践
主题
团队协作 ,
敏捷 ,
团队工作 ,
敏捷技术 ,
敏捷实施
标签
AgileChina2009

编者按:InfoQ中文站不久前发布了两篇与Pomodoro时间管理方法相关的新闻《用“蕃茄”来减轻时限压力》和《Pomodoro-敏捷方式的时间管理》,本文可算是前文的延伸和实践验证。作者是AgileChina 2009大会上的讲师,本文即来自他在自己团队内部实践经验的总结。

在我们所有的对手中,最强大的是时间。面对时间,我们丝毫没有欺骗的机会,时间一分一秒的流逝,最终的胜利者总是时间。我们经常会觉得“哦,两天过去了,任务丝毫没有进展,明天就是截止日期了,该怎么办?”我们经常忙于应付一个接一个的任务,没有时间去学习充电,享受生活,并由此陷入很大的焦虑情绪。随着社会不断发展,工业文明极大地丰富了人际间的交流手段以及获取信息的手段,我们的时间利用效率却变得越来越低了。沉下心思专心做一件事情,对绝大多数人来说已经变成一件不可能的任务。究其原因,主要有两个:

  • 干扰太多。人们不能专心把一件事情做完后,再去做另一件事情。经常是正在全神贯注工作的你,突然收到一封邮件,接着放下手头的事情,回邮件。发出邮件后,切换回原来任务。每一次任务切换,往往要花更多的时间完成原来的任务。(平均每次切换要使原任务增加25%的时间。引用3、 4)。设想一下,很多人一天要查看邮件50次、100次,还有MSN、电话等等。
  • 缺少明确的目标和优先级。所有时间都在应付紧急任务,不停地救火。这些紧急任务可能来自于老板、团队其他成员也可能来自于家人、朋友。为了应付新的紧急任务,经常要放下手头工作,在完成新任务过程中又出现中断,最终在不停的任务中断和切换中迷失了方向。一天下来不知道忙了些什么。

排除干扰,确保首先完成最高优先级的任务,是提高个人时间利用效率必须解决的问题。这与敏捷软件开发(Scrum、XP、Lean)要解决的问题何其相似。针对软件开发中的类似问题,九十年代起Ken Schwaber、Jeff Sutherland、Kent Beck、Martin Fowler等大师们提出的敏捷开发解决方案,其中包括时间箱、不受干扰的迭代、具有优先级的代办任务列表、拉动(Pull)任务、承诺、计划与反省等等。无独有偶,从九十年代初开始,意大利人Francesco Cirillo也基于相同的策略设计并发展了番茄技术(The Pomodoro Technique,Pomodoro意大利语“番茄”)来管理我们的个人时间。用到的工具很简单,一个厨房定时器(Pomodoro Timer),三个简单表格(当天任务列表 To-Do,任务清单Activity Inventory和记录历史数据的表格Records)。

番茄时段

在敏捷开发中一个迭代的周期通常是一到四周,番茄技术的一个迭代是25分钟,称为一个番茄时段。跟敏捷开发的迭代类似,在一个番茄时段开始时需要从当天任务列表中找出目前最高优先级的任务,然后不受干扰地去完成该项任务,一直到定时器的铃声响起。每个时段结束后可以有三五分钟时间自由支配,然后再开始新一个时段。在敏捷开发的迭代过程中,团队只会集中精力完成当前迭代中的任务,不会对新的任务需求做出响应,所有的新任务都放到产品 Backlog。在番茄时段中,个人也是采用相同的策略,在紧急情况下,新的任务会放到当天任务列表,作为一个当天的一个未计划任务;而一般的任务,只需要在任务清单上加一个新的任务项目。然后不受干扰地继续当前的工作。即使任务完成时,定时器还没有响,处理方法也很简单,用剩余的时间去“重构”完成的任务,使它更好一点儿。

工作日程表

以下以一个使用番茄技术的程序员的工作日程表为例。

在这个日程表很好地融入了戴明环PDCA(计划Plan;执行Do;检查Check;纠正Act)。每一天总是从计划番茄时段开始,最后一个番茄时段以分析反省结束。每天的历史记录一般包括计划执行情况、未计划任务情况、估计与实际,干扰次数,干扰内容等等。通过这些历史数据我们可以很容易地观察自己:

  • 计划执行是否有效
  • 估计是否准确,偏差有多少
  • 未计划任务有多少,分别做什么
  • 工作中的干扰多不多,主要干扰有哪些

通过切实的数据对自己的时间利用情况有了清晰的了解后,我们就可以在反省中有针对性地设计解决方案。如此不断反复时间效率就会不断得到提高。

消除干扰

番茄技术最大的好处是能够帮我们集中精力,消除干扰。每个番茄时段只有25分钟,除非是十分紧急的情况,一般情况下都是可以在完成当前时段后再去响应。通常我们会遇到两种干扰:

  • 内部干扰,主要是自己想做某些事情,比如喝水、查邮件、网上聊天、上网等等。针对内部干扰,主要有两种解决方法,第一种就是有针对性的计划一些处理这种任务番茄时段,比如上面日程表中的专门用来处理邮件的时段;另外一种方法就是利用番茄时段之外的时间,比如那些自由支配的时间以及午饭时间。
  • 外部干扰,比如电话、同事来问问题等。与内部干扰不同,外部干扰需要与其它人打交道,因此需要采用不同的策略。具体策略是“通知Inform,商量Negotiate,晚些时候响应Call Back”。可以用留言机接电话,邮件也可以暂时放到收件箱中稍后处理。如果有人当面过来,可以告诉他:“我先忙完手头工作,二十分钟后去找你。”,然后继续手头的工作。晚25分钟或者一两个小时对通常意义上的紧急任务来说,是可以接受的。对对方来说需要等待25分钟可能不是什么很大的问题,但是对自身来说却有极大的意义,我可以继续专心把我手头上最重要的事情。当然很难避免的,也会出现不得不取消当前番茄时段,着手处理十分紧急的任务的情况,这其实跟在 Scrum中取消当前Sprint一样,只有万不得已才会为之。

每当有干扰的时候,都要在每日任务列表上做一下标记,如果需要,同时在每日任务列表(如果是紧急任务)和任务列表上填加一个未计划任务。把干扰放入任务列表使得我们有机会重新思考一下每一个任务是否那么重要,是否真的需要,很可能过了一段时间我们任务列表上的很多任务变得不必要了。另外,所有的干扰都被显式地标记在每日代办任务列表和历史记录表上。每天都可以反思每天的干扰次数以及内容。干扰数据能够是我们更有意识地关注时间效率的问题,促使我们通过重新计划,调整策略等等方式把干扰降到最低。比如对于电话太多的情况的一个有效的策略是,每天应该固定一段时间把电话放到留言,到会议室去办公,然后告诉其他同事,在紧急情况在哪里能够找到自己。而对于邮件太多的情况,可以多安排几个番茄时段集中处理邮件。

任务计划与估计

番茄技术的另一个好处是给我们提供了一种全新的估计和计划的手段。在任务列表上的每个任务都需要有一个规模估计值,这个值其实是标明完成该任务需要花的番茄时段的数目。由于每个时段都是不受干扰的“纯”投入的时间,因此可以通过番茄时段数目有效地把任务的规模与时间建立联系。通过把实际花费的番茄时段数目与估计值相比较,分析,可以帮助提高自身的估计能力。同时,通过分析历史记录中非计划任务的数目以及内容,也可以帮助我们对自身的时间利用情况有更好的了解,从而更有助于计划个人的时间。

转变时间的观念

番茄技术能够改变我们对时间的态度。时间变成了一个个番茄时段。每一段25分钟,滴答滴答从25分钟减到0。从而给我们一种紧迫感(Eustress),督促我们尽快完成任务,尽快做决定,从而有效的提高效率。效率的提高能够有效地提升自信心和成就感。

关于番茄技术的详细介绍可以参见它的网站(引用1)以及The Pragmatic Bookshelf的新书《Pomodoro Technique Illustrated》。

引用

  1. The Podomoro Technique
  2. The Pompatus of Pomodoro, PragPub Issue #5, November 2009
  3. Manage Your Effort Not Your Time, Harvard Business Review, October 2007
  4. Perfection: An Unrealistic Goal - The Challenge of Being Agile

作者简介:滕振宇(Daniel Teng),Irdeto BSS高级软件经理,CSP,敏捷教练。创建并领导Irdeto BSS上海研发团队,负责大型付费媒体计费以及客户管理系统软件产品的开发。


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

如何实现呢? 发表人 xu huisheng 发表于
Re: 如何实现呢? 发表人 Teng Daniel 发表于
Re: 如何实现呢? 发表人 xu huisheng 发表于
Re: 如何实现呢? 发表人 Cai John 发表于
Re: 如何实现呢? 发表人 wang sylar 发表于
Re: 如何实现呢? 发表人 Teng Daniel 发表于
Re: 如何实现呢? 发表人 Teng Daniel 发表于
Re: 如何实现呢? 发表人 Jun Ran 发表于
发表人 Cai John 发表于
跟个机器人一样 发表人 im Kevin 发表于
Re: 跟个机器人一样 发表人 Wu Junyin 发表于
那个工作日程表是用什么软件做出来的 发表人 xu huazai 发表于
这种方式很有效,关键在于坚持 发表人 Yao Sapphire 发表于
Re: 还是需要自己去实践 发表人 吕 新科 发表于
Re: 还是需要自己去实践 发表人 Wu Junyin 发表于
更多的还是看个人习惯吧 发表人 Lin Jason 发表于
Re: 更多的还是看个人习惯吧 发表人 Teng Daniel 发表于
计时好方法 发表人 chen jiajun 发表于
  1. 返回顶部

    如何实现呢?

    发表人 xu huisheng

    如何真的可以把每个任务都细化到25分钟就好了,准确的估算太难了。

  2. 返回顶部

    发表人 Cai John

    very good,一定要实践一下。

  3. 返回顶部

    跟个机器人一样

    发表人 im Kevin

    阅读个文章都得写到日程上去。。。做人这样累不累呀

  4. 返回顶部

    Re: 如何实现呢?

    发表人 Teng Daniel

    其实我自己的经验来说,我并不需要把每个任务细化到25分钟,我只是估计每个任务需要几个番茄时段能够做完。这一点跟Agile不太一样,粒度可能大一些,我觉得更有点儿类似User Story里面的Theme(主题故事),需要几个迭代才能完成的功能

  5. 返回顶部

    Re: 如何实现呢?

    发表人 xu huisheng

    如果是只做业务模块开发,熟悉的功能容易估算准确,在对陌生技术技术进行调研,试探性钻探的时候,具体时间尤其不好掌握。

  6. 返回顶部

    Re: 如何实现呢?

    发表人 Cai John

    我的理解是:跟在Agile中一样,估算“准确”是没必要也不可能的。

  7. 返回顶部

    Re: 如何实现呢?

    发表人 Jun Ran

    其实不一定非要25分钟,45分钟也可以,实际上我觉得45分钟更加可行;

    关键是有一段连续不受干扰的工作时间;

  8. 返回顶部

    Re: 如何实现呢?

    发表人 wang sylar

    不太好弄。

  9. 返回顶部

    那个工作日程表是用什么软件做出来的

    发表人 xu huazai

    虽然我不一定能100%按照日程表来做事,但能让事情比较清晰有条不紊的进行到是个不错的主意。

  10. 返回顶部

    Re: 如何实现呢?

    发表人 Teng Daniel

    每次去取最重要的任务,然后不受干扰的做25分钟(或者45分钟),这其实并不难

  11. 返回顶部

    Re: 如何实现呢?

    发表人 Teng Daniel

    XP里面的钻探试验Spike是有一个前提的就是一定要加上TimeBox,因此即使是钻探试验也是可预测的。Pomodoro Technique一样也是要有Timebox,有了Timebox就有了紧迫感,从而更容易的获得结果

    如果是只做业务模块开发,熟悉的功能容易估算准确,在对陌生技术技术进行调研,试探性钻探的时候,具体时间尤其不好掌握。

  12. 返回顶部

    这种方式很有效,关键在于坚持

    发表人 Yao Sapphire

    通常认为时间的预估难以准确,实际上一开始不需要准确,但是即使不准,也要预估,不论是熟悉的功能还是进行新技术难点的研究,都要进行,这个时间长了,就会有一种直觉,时间也会越来越准确。。。关键在于,你要坚持下去。

    此外,定时器的存在,前提是一定要有计划,定时的作用是你按阶段性的,非打扰性的休息,搞编程的人可能都有这样的经历,出去抽个烟,或者蹲个WC,往往会再一些难点上有一些idea出现,这个通常就是这个定时器的作用,到点一定要休息,短暂的非干扰性的休息,是非常有益的。

    总之,这个方法是有一定科学性的,麻烦的地方就在于开始实践的时候,比较难以树立信心和充满质疑。只要能顺利坚持过1-2个月,这其中的奥妙自然会有所体会。。

    另外,这个番茄的方法,是对编程提出的,事实上,有个比较一般的方法,和这个番茄性质一样,同仁们可以google之,关键字就是 (10+2)*5

  13. 返回顶部

    Re: 还是需要自己去实践

    发表人 吕 新科

    持怀疑的,不烦看完Pomodoro tech,然后尝试几天,或许你就会改变态度。鄙人实践了2周,觉得的确提高了自己的集中精力做完一件事情的能力。

  14. 返回顶部

    更多的还是看个人习惯吧

    发表人 Lin Jason

    不过全天任务的确定还是应该的

    太细节的话不一定安排好就能顺利执行
    被迫中断计划 感觉相当糟糕……

  15. 返回顶部

    Re: 更多的还是看个人习惯吧

    发表人 Teng Daniel

    不过全天任务的确定还是应该的

    太细节的话不一定安排好就能顺利执行
    被迫中断计划 感觉相当糟糕……

    我现在的体会是,不一定要把一天的任务全部都列出来,只要排好优先级,然后每次完成一个任务,到Activity Inventory里面取最高优先级的任务。这样更加有效,适应性更强,而且也不需要花很多功夫计划

  16. 返回顶部

    计时好方法

    发表人 chen jiajun

    决定去买个番茄,挺好

  17. 返回顶部

    Re: 跟个机器人一样

    发表人 Wu Junyin

    对,太细节,太计划性了。感觉有点过度计划了。

  18. 返回顶部

    Re: 还是需要自己去实践

    发表人 Wu Junyin

    严格要求自己同样会有所回报。
    不过我不喜欢“番茄”,所以我连尝试的想法都没有。

    不过我不排斥其他人尝试哈。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。