程序员你为什么这么忙?

去年中2shou经历了一次跳槽,重新回到了一线执行者的角色;新的岗位每天都要应对四面八方的需求,不时有火烧眉毛手忙脚乱的时候,往往在聊天工具、邮件、终端、IDE和报表多个窗口之间切换一个来回,就忘了刚开始是想做什么来着,恨不得立马给自己来上一榔头。尽管每天例行加班到十点后,仍然有一些需求忘了、慢了、缺了、坏了,有天晚上回到住处,疲惫到了极点,连打开电脑的力气都没有,一念间闪过一句古话,叫做抱薪救火,我这TMD就是抱着一捆柴往火坑里跳,越努力越快完蛋;当务之急是要从死磕的轮回里跳出来,确立一个指引工作的方法论。那一夜苦思只留下七字真言,我把这七个字写在办公室和住处的案头,瞅着对着摸着,结果后面两月工作顺了,领导赞了,产品服了,该拿的奖项也拿了,2shou也得以腾出时间写公众号,紧盯技术领域的新发展,闲暇时尽情享乐,简直痛快到不得了。你问哪七字真言?

目标比结果重要!目标比结果重要!目标比结果重要!

重要的事情说三遍。近期和不少技术人聊天,2shou发现这也是大家普遍存在的一个问题:因为忙无暇关注技术前沿;因为忙无暇写技术博客;因为忙无暇反思总结;因为忙无暇享受生活……我忍不住要呐喊出来,弟兄们,程序员可是一份用脑子的职业啊!2shou开始意识到把这七字真言,以及其衍生的四个小点分享出来是一个多么迫切的事情,迫切到比打鸡血更为重要,它将有助于推动程序员们去思考一个命题:怎样争取好的业绩,又不被累死?一点浅见,就当是一个小炮仗,希望在你的脑中炸开花来。

目标比结果重要

实在很难理解这么一种说法的流传:只要你认真做事,顺其自然就会有所回报。我认为这纯粹在掩盖思维上的懒惰,如果一个人没有目标,那么他最终哪儿都去不了。目标为什么比结果重要?因为结果是外部导向的,是被动的;结果达成了,不一定对你的技术、你的业绩和你的能力有积极的影响。好比原先我日常的一部分时间要花在和外包同事核对用户的投诉,这部分工作哪怕自己响应再快、核实再认真、流程再严格,都很难体现自己的个人价值(当然并不是说这类工作就不应该做好,只是优先级的问题)。所以不设立目标,只追求每个任务的结果,在高强度工作状况下必然会因小失大。我建议按月给自己设立一个目标,可以是职业上的目标,也可以是技术上的目标,目标必须能量化,而当月时间的60%要花在这个目标之上。

做好一件事,胜于做过十件事

第二个小点是聚焦,是做减法。人来人往看到过许多忙的程序员,但大部分是瞎忙,瞎忙就是没有目标没有重点没有优先级的忙。军事上有个老话叫,伤其十指不如断其一指。聚焦为什么那么重要?聚焦是专业性的体现。要赢得别人的尊重,最好的方法就是超出他的期望,把他关注的最主要事情做好做深做细。每天早晨,我都要写一个当天事项的优先级列表,而这个列表的惟一要求,就是其他任务可以草草了事,排行第一的任务必须在当天完美解决。把一个事情做深,还能让你对所负责的领域了解越发深入,自然对外也就越发自信,沟通也就越容易镇住场子。

设定最终期限,先完成再完美

拖延症是人类的天敌。尤其对那些模糊不清的任务(举个例子,写一个下半年工作计划),我们总是从心理上抵触,倾向于一拖再拖,如果外界没有最迟期限,也许就不了了之了。但是,正如伟大的创意也许是从粗糙的原型开始的,对于不那么重要的事情,好的应对策略是先用简单直接的方法做出来,再通过外界的反馈考虑是否需要进一步完善。这里引出优先级列表的另一个原则:列表上的事项必须在第三天之前解决,哪怕用最原始最粗糙最直接的方法。

减少犹豫,多开线程,多造工具

年底和组里的小朋友们玩了一阵的LOL,作为一个小学生级别的新手,总在犹豫里浪费了发育的时间,想不清究竟该带线还是GANK,草丛里蹲几次,级别就落下了。工作中也是如此,往往犹豫再三的,都是一下子很难完成的,像我们这一行都是讲究因果报应的,最终犹豫的都会变成你的技术债务,不还不死心。列表上的事项都要是具体可执行的,哪怕当下看来并不紧急,不犹豫,先做了再说。第二个就是多开线程,一些要等待的或者后面难变更的事项(比如Hive的查询、数据的埋点),要先启动,等待的期间再做其他的。第三个就是多造工具,减少重复低效的劳动,像查询用户信息这种活,给产品写个查询网页是绝对划算的生意,别在乎那么点时间的投入。

2016已经来了,希望2shou的朋友们都能不那么忙,就算忙也要忙在有价值的事情上,忙在有效率的事情上,忙在有提升的事情上。