庄周梦蝶

生活、程序、未来

声明:本博客所有文章,未经允许,禁止转载。谢谢。

节奏

| Comments

读过一些心理学或者谈工作效率书籍的朋友,可能都听说一个概念——“流态”。按照我的理解,就是工作处于全身心投入,无视时间流逝的状态。一般都会说,工作要尽量保持“流态”,尽量减少打断“流态”,这样才能提升工作效率。围绕种种保持“流态”的方式,提出很多方法。

如果我给自己挑选一个小优点,不得不说我的专注能力很强。不用耳机,不用音乐,哪怕外界很吵,当我全身心投入工作的时候,还是都可以将任何东西都忽略掉,全神贯注在工作上。过去我经常引以为豪,看到某本书上谈到这种状态,也洋洋自得。看,咱的工作效率多高呀。

去年还是前年,读到另一本书(《程序员的思维修炼》? 不确定),提出个相反的意见,认为这种“流态”不一定是有利的,反而有害。为何?因为在这种状态下,你可能很轻易地做出决策,只是为了效率,反而思虑不周,最终看起来工作的效率很高,但是后续反而会有太多的“无用功”——因为要“重构”你在“流态”下的“轻易”决策。

结合自身来说,我越来越感觉到这一点。在“流态”的状态下,我可以写出一打的代码(尝试过两天写一个表达式引擎,一周写出一个分布式MQ,都能符合生产质量要求),但是这些代码的很多“决策”——结构、模式、模块设计、API设计、类库选择等等,回头去看,并不是那么合理。因为在“流态”下,我的精神都关注在实现细节上,对整体的思考反而很缺乏。做到后来,我经常要推翻原来的设计,重构甚至重写代码。

后来,我慢慢有意思地控制“节奏”:在做一个东西之前,适当花一点时间画一个草图:大概几个模块,模块之间大概什么交互,模块的实现顺序和技术难点等等。我没有用什么UML,也不写任何文档,只是在白纸上列出一些点,画上几个图。这个工作也可以在大脑里进行。然后再动手写代码。每天将编码的工作分成了几段,每段都集中精力去写(一到两个小时),中间上上厕所,泡泡茶吃吃零食看看新闻,不搞连续几个小时甚至熬夜编程(好吧,其实是身体吃不消)。在每次push前,都去diff代码,review下阶段性成果,打断“流态”。总体来说,比较明显的减少了工作的“返工”。

声明:本博客所有文章,未经允许,禁止转载。谢谢。

Uncategorized, 开发心得

« 招人,找人 工作所得之一二 »