牛人总结的8个好习惯,让你受用一生
1、长期的任务,要尽早开始
一般来说,长期任务总是比较烦人,也有难度,而人心里总有逃避困难的趋势,最后的结果或者是最后干脆放弃,或者是剩下一点点时间手忙脚乱地赶工;我自己之前也有这样的教训,自欺欺人地说“要轻松生活,抛开烦扰”,到最后几天才着急办理,搞得狼狈不堪。
后来,我发现这做法其实是事与愿违的,如果调整好心理状态,尽早了解情况并不必然带来的心理压力,反而因为时间充裕,有信心把握进度,即便中间遇到突发的问题,也留有时间解决;更重要的是,尽早着手,可以充分利用边角余料的时间。
比如说,接到一份文档,需要在三天后给出意见,我一定会在当天大致浏览一遍,下面的三天里,就能在坐车、走路等等零碎的时间来思考,而且效果不错,如果没有尽早了解,这些时间就浪费了,什么有意义的事情也没干(阿基米德若不是之前遇到了问题,在澡盆里泡一万年也想不出办法检测皇冠的真伪)。
电子邮件的情况也是如此,我常看到有人讨论电子邮件是马上回好还是过一段再回好,我的经验是,收了电子邮件要尽快看,至少了解邮件里说了什么,如果不是着急的,等想清楚了再回。
2、时常想清楚自己正在做的事情
一般来说,我们做的工作总是有一个目的和意义的,但工作的形式又是非常具体的,忙起来往往就钻到死胡同里,忘记了真正的目的和意义,“想不清楚”自己真正要做什么了。
前几天,我需要搭建一个演示环境,手上有两套方案A和B,方案A估计要半小时,方案B估计要一小时,于是我选择了方案A,可是动手之后才发现服务器缺乏一个必要的组件,于是先费劲添加好这个组件,再编译自己需要用到的软件,又发现在64位环境下会编译出错(以前我只在32位机器上编译过),上网查发现需要打一个补丁,于是又四处去寻找这个补丁……
此时已经用掉一个多小时了,下面还不知道会有多少问题;我忽然想到,自己真正要做的无非是演示程序,解决打补丁、找软件之类的问题虽然很有意思,但其实从任务的角度考虑,是浪费时间,于是果断选择方案B,一小时后就顺利解决了。
据我观察,很多技术人员都热衷解决纯技术问题,温伯格称之为“hacking (神游)”;神游很好玩,容易上瘾,但我们都不是不食人间烟火的神人,要想真正做点事情,就不能放任神游。
关于这一条,还要补充一点:哪怕忙得昏天黑地,也不能没有头绪。工作的压力很大,忙得焦头烂额是常有的事情,许多人就在这种忙碌中失去了方向,往往忙了整天,下班了都不知道自己今天到底干了什么,有什么意义。
我的经验是,越是这种时候,越要打起精神想想(虽然这样很难):自己究竟要干什么,目前的安排是不是可以做些调整……持续的思考,才会产生感悟,才能有改观,否则,有可能一直陷入“瞎忙”的境地而不能自拔。
3、给自己设定明确的时间点
我承认自己也喜欢玩,没事的时候上Twitter、看看论坛、聊聊天,确实很有意思,信息不断更新,总有自己感兴趣的东西冒出来,可是这样守在电脑前,大量的时间就浪费了,什么有意义的事情也没有做,即便做了,效率也很低——专注才能保证效率。
摸索反思之后,我觉得比较合适的做法就是,给自己设定明确的时间点:比如现在八点二十,我可以告诉自己,上网玩二十分钟,八点四十开始学英语。因为有了明确的时间界限,反而会想在这二十分钟之内,尽可能高效地把自己感兴趣的内容都看了,而不会慢慢“浏览”;到设定的时间点,一定要令行禁止,专注地做之前决定的事情。
更重要的是,从小事开始给自己设定明确的时间点,对培养执行力很有好处——如果许多小事都能做到“说做就做”,慢慢的,复杂一些大一些的任务,也能够“说做就做”了,有惯性、也有信心去完成。
4、写日记
正规一点的网站,都有详细的访问日志(记录),即便不做数据挖掘,一旦网站的访问出现异常波动,就会在日志上体现出来,而且检查日志,可以发现问题所在;网站是这样,人也是这样。我从08年翻译温伯格的《技术领导之路》开始,也开始每天记日记,发现日记和网站的访问日志有相同的功能。
比如我一般到公司都在8:35左右,前后误差不超过5分钟,但上周有几天都在9:00左右,检查日记,就可以发现这种变化,而且可以找出变化的原因——是早上做事的顺序改变了。而且,根据日记,我还可以观察评估这种变化的影响,是好是坏。
日记也可以不断提醒鞭策自己,有段时间我发现自己时常处于无事可干的状态,如果没有日记,我多半只觉得“这段时间总是无事可干”,但日记里会写下“今天是感觉无事可干的第八天了”,这样,对自己督促压力会大很多,动力也会强得多。
关于日记还要多说一点,我以前总不理解,记了多年日记的人,日记为什么那么简单?只记录哪天做了什么,附加一点简单评论,而没有太多抒情。我从翻译《技术领导之路》开始到现在记了一年多的日记,逐渐明白了,持续的日记就需要这样记录:当天的主要行为,加上一点评论和反思。日记不太适合作为抒情的载体,更合适的功能是真实记录生活的痕迹,用以分析、反思,然后自己才有可能提高。
5、培养预见/规划能力
古话说“凡事,预则立,不预则废”,这是很对的。拿软件项目来说,尽管项目的开发时间很难预测,但有经验的技术人员往往能进行更准确的判断,从而做出更合适的规划,这就是因为他们具有预见能力:能预见到开发中会遇到的问题,据此作出的安排,时间上更充裕(也就能保证效率),心理上也更有准备。
另一方面,我也亲眼见到许多技术人员,只管完成手上本阶段的任务就万事大吉,从来不去预见这些问题:自己的程序能够负载多大的规模和压力,超出这个负载能力,会出现怎样的问题,应该怎样解决,这个问题,照目前的发展速度,大概多久会出现……
结果就是,等到问题真正出现了,手忙脚乱焦头烂额,“迭代开发”就成了“拆迁开发”——到某个时间点就要推倒全部重来过一次,质量无法保证不说,自己也累得苦不堪言。
软件行业有本名著叫《重构》,这本书的核心思想是,软件需要不停地重构,要不就会僵化(decay),如果仅仅满足于眼下没有问题,不进行预见和规划,持续的重构也无从说起。