小飞:我今天真失败!在办公室里坐了10个小时,但是真正能花在开发工作上的时间可能只有3个
小时,然后我的工作进展大概只有两个小时!
阿超:那你的时间都花到哪里去了?
小飞:就是我们以前说的"我没看见你在写软件,你到底在忙什么"上面列出来的那些破事儿。每一件随机事情看起来都是挺重要的,我就放下手里的开发工作。但是好不容易做完了,刚想进入状态,又一件随机事情来了......
阿超:你要硬着心肠,说"不"。当场景、功能都计划好的时候,要给员工足够多的时间,让他们投入到工作中去,而不要经常打断他们。要尽量减少非开发时间,不要动不动就开"全体会议"。团队成员们自我时间管理也很重要。由于MSF鼓励沟通,TFS也设置了不少提示(Alert)自动报告全体成员项目各方面的情况,因此团队的E-mail会特别多。在这种情况下,不要整天被E-mail牵着鼻子走。在Outlook上设置好邮件规则,按下面的规则把邮件自动分类到不同的邮件夹中:
(1)从直接老板来的,发给你一个人的--马上处理。
(2)从团队成员来的、和项目有关的事情,自动分配到一个叫"Team"的邮件夹中。
(3)从TFS来的状态信息,如团队的check-inE-mail,自动分配到一个叫"Check-In"的邮件夹中。
(4)从公司其他同事来的与工作无关的消息(如笑话、大减价的消息等),自动分配到一个叫"Other"的邮件夹中。最好每隔两三小时集中阅读和回复一下E-mail,对于短信、微信、微博等,也建议集中处理。
(5)有些优秀团队(例如Google公司的一些团队)规定一周有一天不能开会。
小飞:有些公司经常把所有人拉去做"封闭开发",这样是否就能避免干扰?
阿超:我们做开发软件,并不是让团队像被关在监狱里一样。要有大家自由交流的时间,团队成员们在无拘束的环境中,会更乐意提问和分享,这会比召开正式会议,强迫每个人分享要好得多。在"封闭开发"的情形下,领导也更有可能每小时跑来询问项目的进度,这种团队内部的干扰源,并不会因为团队搬到一个"监狱"里而消失。可还记得MSF的"充分的授权和信任"?
小飞:另外,我经常去看测试人员又发现了什么Bug,有时候就花时间研究和修复它们。
阿超:可以等第二天会诊之后再看看是否值得马上修复。
小飞:这样,新建的Bug要等到第二天会诊之后才能给开发人员处理,是不是会影响进度?
阿超:不一定。因为
(1)开发人员在开发阶段最重要的任务是完成规定的功能!
(2)在项目初期,可以不用集体会诊,开发/测试人员可以直接处理"缺陷",不必等待。
(3)在任何时候,测试人员都可以把"缺陷"交给开发人员,但是只有会诊的人员才能改变会诊决定。