新ThoughtWorker开发的头两件事
回到自己的办公室,与新同事结对开发。我对他做了两件事,让他列出要做的任务,抢走了他的鼠标。这也是我要教给新ThoughtWorker头两件事:分解任务和快捷操作。
分解任务,是一个好的工作习惯。把自己要做的事情一件一件的列出来,然后一件一件的做。Kent Beck在《测试驱动开发》中,为我们展示的就是这种工作方式。他称自己为拥有好习惯的程序员,这便是其中之一。
我之前很少这么做,总觉得我的脑子可以处理一切,但经常会出现,一件事并没有想清楚就开始动手,做着做着不知道自己该往哪走了,也有经常性的发散,走着走着忘了自己的目标。通过分解任务,我在动手之前,我就知道自己要做的有哪些事,然后一件一件解决,保证了自己的专一。一旦大脑发散,我会提醒自己在任务列表中增加一项,而不会影响继续工作在当前任务上。
任务要分解到什么程度呢?分解到心里有数。对于老手来说,可能就是要做的东西,对于新手而言,就要更细致一些,包括一些问题的解决方案。这样,新手即便一个人做,也不会走偏。
学会扔掉鼠标吧!写程序不会快捷键,在ThoughtWorks会被人嘲笑的,因为在你慢腾腾的在菜单里寻找重构选项的时候,我已经完成了这一切,开始解决下一个问题了。
第一次看一些ThoughtWorker用IntelliJ IDEA写Java程序,我惊呆了,平静的表面下,内心翻腾,惊讶于神乎其技。所以,我只能偷偷下功夫,以免让人嘲笑。后来,有人说,你写得太快了,我假装平静的说,这没什么。其实,我知道,和许多人比起来,我还是慢很多。
和别人结对的时候,我故意把pair的鼠标扔到一边,如果他需要做什么操作,我会告诉他快捷键是什么,做几次下来,快捷操作也就成了一种下意识的动作。IntelliJ IDEA还有一个专门的插件,叫Key Promoter,用来提示人快捷键是什么。
做好习惯的程序员,从分解任务和快捷操作开始。