我年轻的时候加过很多班,甚至怀着孩子的时候都加了不少班。但是有了孩子之后,特别是孩子小的时候,家里事情太忙了,根本做不到加班了,而且加班对家庭和对自己的身体都不好。所以我换工作的时候,一个重要的条件就是找个不用加班的地方。
面试的时候,我问面试我的两个Lead Developer,你们在这个公司这么多年,你对你们的工作最满意的是什么。他们俩都提到这是一个laid-back(轻松)的工作环境。我心想,那就是不用加班喽?行,就是它了。进入公司之后,果然同事们都不加班。
有人会问了,不是说作为亚裔,要付出比别人更多的努力,才能被提职加薪吗? 但我觉得这是一个迷思。公司愿意让你做领导,是因为你有能力,给你加薪,是因为你单位小时内给公司创造的价值高了,不是需要你用更多的时间来做到,这样就失去了加薪的意义,也会成为你继续向上走的阻力。
我这些年即使是工作再忙,责任再重的时候,都几乎没有加过班。那我是如何做到的呢? 我有两大法宝, prioritization和delegation。Prioritization是指做事要分清轻重缓急,delegation是指要把有些事合理地分给他人去做。
我们刚去一个新公司的时候,往往一开始不会加班,因为我们需要一段时间,熟悉新的工作环境,工具,和流程,老板对我们的期望也不会太高。一旦我们工作上手了,大家一定会感觉到会有更多更难的工作分给你做。我们老中因为文化的原因,大都会接受下来,因为不想辜负老板的期望,也不想被别人看低,于是就忙得加班加点地干。
其实这样做并不好,一方面是自己先会burnout,造成要换工作的局面,另一方面是自己做得越多,出错的机会就越多,甚至做不完的时候还会影响到整个项目的进度,老板肯定会不满意。所以我们对不合理的要求要学会说不。如果分给我们的很多项工作都要在相似的时间完成,我们不加班就完不成,我们就要找老板或是项目领导,请他帮我们prioritize, 把这些工作分出轻重缓急,有些工作要缓一缓,不能等的话,就要分给别人去做。当然我们的估算要准确,要有说服力。因为这些要求对公司对自己都有好处,一般通情达理的老板都会答应的。
还有就是你能力强,懂的多了之后,同事需要请你帮忙的时候也就多了。而如果你只能将将完成领导分配的工作,帮了同事,自己就又要加班了。一次两次还可以,次数多了就会形成惯性,会占用自己很多时间。所以对同事的要求我也是要委婉地说不的。如果我正在忙,同事来问问题,我会说,我正在忙,你这个有多急,不急的话,等我忙完了就来帮你。如果你着急的话,就找某某某,他也知道,或者你自己看看这段程序,或者这样这样操作一遍,就知道了。这样你既给他指了一条路,也没有耽误自己多少时间。
如果你不甘心只在下面写程序,想要领导一个项目,这时候就需要做delegation,只做自己必须做的事,把其它事情分给项目上的其他人去做。比如我领导一个项目的时候,我认为用户需求和总体设计最重要,而且我都需要做,我就没有时间写程序了。我只是找了很小的一个模块写程序,一是练练手,二是自己在程序里,更能准确地看到程序的质量和进度。领导项目也需要做prioritization。为了不为赶进度而加班,我会经常计算项目的进度,如果觉得做不完,我会要求把不太重要的部分放到下一个阶段做,或者要求加人。老板基本会响应我的要求,因为我一直在跟进项目,对项目的把握比老板要准确。
如果做到了一个小组的领导,就更要做到priorization和delegation. 我因为要处理的事情太多,几乎每天都要对事情分出轻重缓急。我把需要做的事情按照priority和用时长短放在我的Outlook Calendar上(但是没有把时间block住,别人还是可以在这个时间上schedule meeting的)。如果有临时会议,占了我的时间,我就把我自己的事情依次后推,先做今天要着急完成的事情,可以缓一缓的事情放到以后。我还学习其他人在时间管理上的经验,有一条是说如果是两分钟就可以完成的事情,就马上处理,因为把它记下来,将来再处理,花的时间肯定比两分钟多。我自己还有一些文件,记录和老板还有每个组员的谈话,如果因为一个Email或者会议,想到下一次要和老板或者组员谈什么,我会记下来,好记性不如烂笔头嘛。
至于delegation,那就是要动脑筋想一想哪些事情适合delegate出去,要如何delegate出去,要如何检查delegate的结果。我想这对每个人,每种工作都是不一样的。这个关键是看自己对这个组大方向的把握,什么事情最关键,自己的能力在哪里,喜欢做什么;组员的能力在哪里,哪些是他们需要做的,哪些是他们喜欢做的,哪些是对他们有挑战性,但是又是他们需要提高的地方。
总之,不需要加班,也是能把工作做得比别人更好,甚至向上走的。这样无论是对自己的工作和家庭,还是对公司,都是有利的。