清华大学出版社《Java程序员,上班那点事儿》作者:钟声
一个外行老板:
有一个朋友在一个国际知名的公司工作,这家公司在北京的中国公司是被一个国内电子商务公司控股的企业。
最近这家公司进行了人事调整,原来的外资管理层被中资管理层取代。
新来的中资管理人员是原来在其他行业的管理者,对IT行业并不是内行,他们上任以来提倡了多个工作作风,其中一项就是,软件技术人员工作必须是早9点上班到晚9点下班。
公司的管理制度所标识的“8小时”工作制度形同虚设,当然,你也可以晚6点离开公司,但是,很快会收到点名批评的邮件。
这是一个外行老板去领导内行的笑话,很明显,这位CEO的想法是,“做软件技术的怎么能不加班?不熬夜呢?”
他的这个想法恰恰是进入了一个职业的误区:“做软件开发必须要加班熬夜的工作”。
2.2.1 程序员们熬夜工作的借口
对软件开发职业的这个误解并非“空穴来风”,因为,我们确实看到很多的程序员在没有硬性规定的公司中加班熬夜的编程序。
正是这一个现象,旁观者们当然会很自然的联想到“程序员们的工作需要这样”的假设。作为程序员,“加班”是有的,但是这个“现象”本身是具有“偶然”性的,而不能成为一种“常态”。
程序员们总能找到熬夜工作的借口,我们来看看都有哪些。
2.2.1.1 代码一气呵成,一定要写完而后快
想一口气编完程序,是大部分程序员们自发加班的主要驱动力。比如,小张在开发一个图形显示组件的过程中,该组件程序已经接近收尾,一定要写完看到想要的效果才肯罢休。
这个加班的动力来自于程序员自身,这种工作的积极性来自于程序员发自内心的对其工作的热爱,是一腔热血使然。这个现象对程序员是有帮助的,对整个项目组也是有帮助的,并应该鼓励,只不过不要成为“常态”。
2.2.1.2 明天要做一个命题演示,一定要调试好程序
明天急着给客户做一个命题的程序演示,还差一点没有搞定,急得抓耳挠腮,这时候,还不加加班?大客户跑掉了,这个责任可承担不起。所以,一定是搞定了才肯回家,明天轻装上阵,顺利完成演示工作。
2.2.1.3 安静的工作环境
我们还听到程序员们抱怨“没有安静的工作环境”,一般两个方面:
其一,程序员这一天工作中,不仅仅需要编写程序,还要花费时间阅读并回复邮件,接电话处理各种问题的询问,协助HR面试,甚至审阅产品使用手册,等等,根本没有办法踏实下来一气呵成写完代码。
其二,来自于周围环境,如果程序员运气比较差,正好和商务部门或客服部门做邻居,那还真是存在这个问题,因为那里的电话与谈话声此起彼伏。
面对这两个问题,应该有各自的解决方案:
第一种情况,应该安排好自己的工作时间表,尽量将自己的时间合理的分配。
第二种情况,申请调换座位或心静如水、充耳不闻。
2.2.1.4 项目进度紧张,需要尽快完成任务
“项目进度紧张”经常成为“加班”的借口,一方面是项目经理要求程序员加班的借口,另一方面是部分工作拖沓的程序员的加班借口。
之所以这么说,是因为造成“项目进度紧张”的直接责任应该归咎于“项目经理”,而不是“程序员”。项目的进度应该由“项目经理”进行合理的安排与调配,“程序员”所需要做的是按照项目进度要求完成自己编码工作,如果编码工作是按照既定计划完成的,那么造成项目进度的紧张自然就是项目管理的问题。
不过还有另一个现象,“项目经理”安排的时间得当,某些程序员工作拖延,在没有完成既定任务的情况下,工作时间在做其它事情,反过头来造成项目进度紧张而“加班”。
所以,我们说凡是出现这个原因加班的情况,这一定是一个“警钟”,那就是,“项目出现了问题”,因此,这个加班现象就一定要避免了。
项目进度紧张而加班:
是项目或者你自身出现问题的信号。
2.2.2 常态加班的危害
偶然的加班是不会造成影响的,甚至有可能激发程序员的工作热情。但是当加班成为常态,则会给工作造成很大危害。
2.2.2.1 危害1:项目进度不升反降
加班成为常态以后,尤其是老板要求其工作必须超过12小时的时候,你会发现程序员将私人事情安排进工作时间。要不程序员该什么时候处理自己的私人事情?
2.2.2.2 危害2:工作积极性被严重磋商
本来加班是一种工作积极的表现,尤其是对于由于“代码一气呵成”原因而加班的程序员来说,更是为项目为公司努力工作的表现。然而,当被公司要求加班而不是自发加班的时候,这部分程序员的积极性可以说是完全被磋商。
2.2.2.3 危害3:程序员身体造成危害
8小时的工作时间是一个比较科学和合理的,如果一味的去拼命的使用身体,必将使身体受到损害,势必会造成如:工作没有精神,记忆力差,反应不敏捷,等现象,这些现象本身给项目造成的损害是更加致命的。
常态的加班危害巨大,有经验的项目经理或者睿智的管理者,是不会允许这个现象发生的,哪里出的问题从哪里找原因,千万不能通过增加工作时间来弥补事情的真实漏洞。
作为刚刚入行的程序员,也要清楚的认识到这些危害,不要陷入“加班熬夜”的工作误区。
2.2.3 控制好工作的一日时间表才是关键
前面提到程序员这一天工作中,不仅仅需要编写程序,还要花费时间阅读并回复邮件,接电话处理各种问题的询问,协助HR面试,甚至审阅产品使用手册,等等,根本没有办法踏实下来一气呵成写完代码,无法白天安心编码的问题。
我们程序员应该给自己定一个“一日时间表”,这个一日时间表可以更合理的安排时间,把主要精力放倒最重要的事情上去。
比如,下面这个时间表可供参考:
接满一杯热水,打开电脑,整理思路,阅读并回复昨晚下班后收到的邮件——0.5小时
专心软件开发工作——2.5小时
午餐休息——45分钟
阅读并回复邮件——15分钟
专心软件开发工作——4小时
处理其他事务如接电话等——1小时
阅读并回复邮件——10分钟
在一早来到公司到午餐前这2.5小时是一天中工作效率最高的时间段,应该在这个时间段中完全投入到开发工作,这段时间头脑清醒,思路敏捷,应该尽量避免去做其他事情,你会发现,这个时间的开发进度会事半功倍。
然后午餐,午餐回来后稍事休息,快到1点的时候,可以处理一下邮件。
之后,进入下午的开发时间,这个时间段效率最高的部分也是2.5小时,尽量投入全部精力在2.5小时以内开发编码。
电话等其他事务,会穿插于下午的工作时间中,尽量压缩在1个小时以内。
最后在下班前,阅读并回复邮件。
大家看,这样安排工作时间,是否就不会被繁复的其他工作搞得手忙脚乱了?用效率最高的时间去处理开发任务,用接近休息或者接近下班的时间去处理邮件,这样你还需要加班吗?
反之,如果整天被开发之外的事情搞得团团转,一行代码都没有写,这样的话,不加班都不行了。
时间策略:
好钢用在刀刃上。
2.2.4 “偏执与狂热”不等于加班加点
作为程序员如果想成功是需要“偏执与狂热”力量的,这部分“狂热”的力量促使着程序员永远在关注着最新技术的前沿,关注着最新产品的实现方法。
英特尔公司总裁“安迪·格罗夫”说“只有偏执狂才能成功”,抱定一个信念一直不屑的努力,最终走向成功的彼岸。对于程序员来说,这个“狂热与偏执”是一个持续努力的过程,首先成为软件开发技术的“发烧友”,结合国际与国内的技术形式给自己定位。
这个过程是艰辛的,但是不等于对“工作量”无限堆叠,不等于通过延长工作时间来达到其目标,这个过程是在不断的探索与思考中进行的。
狂热偏执不等于加班加点的工作,需要的是理智思考、开阔的眼界、持续的努力。
狂热与偏执:
强调思考的重要性,而不是延长工作时间。
钟声
《Java程序员,上班那点事儿》,前言,目录
欢迎大家讨论,加我为好友:http://student.csdn.net/invite.php?u=115781&c=312f5dd84b180fe8